我的一个servlet在其初期化时调用一个java类
在这个java类里边需要用URL dU= new URL(aurl); InputStream in = dU.openStream()
读取我站点的一个jsp文件。我写的是相对路径 /xxx/aaa.jsp
结果读取该url失败,改成http://localhost:8888/xxx/aaa.jsp才行请问,我想使用相对路径怎么弄?(前提:要使用new URL(aurl)的java类里边没有request等对象,即servlet没有传递相关请求对象给该java类)

解决方案 »

  1.   

    servlet 的 init()
    String real_path = this.getServletContext().getRealPath("");
    Test test = new Test(real_path);
    Test.java 
    private String real_path = "";public Test(String path)
    {
       this.real_path = path;
    }
    public conUrl()
    {
    String url  = this.real_path + "/xxx/aaa.jsp";
    URL dU= new URL(url); 
    InputStream in = dU.openStream()
    }
      

  2.   

    没有request,没有servletcontext,恐怕没辙,只能用全路径,要不你连个协议都没有,谁知道是http还是file?
      

  3.   


    既然是servlet的init方法调用,则servlet肯定知道啊,作为参数传过去呢。
      

  4.   

    java类自己在java类中path属性,直接在servlet中set进去就是了么!
      

  5.   

    一楼的this.getServletContext().getRealPath("")得到的是文件的地址如D:\workspace\webapps\myapp\
    这样且不是变成D:\workspace\webapps\myapp/xxx/aaa.jsp这样怎么能得到执行结果呢
      

  6.   

    web.xml
      <servlet>
        <servlet-name>...</servlet-name>
        <servlet-class>...</servlet-class>
          <init-param>
          <param-name>Url</param-name>
          <param-value>http://www.domin.com</param-value>
         </init-param>
      </servlet>servlet init();String domain_name = this.getServletConfig().getInitParameter("Url");
    Test test = new Test(domain_name);Test.java private String domain_name = "";
    public Test(String domain)
    {
      this.domain_name = domain;
    }
    public conUrl()
    {
    String url = this.domain_name + "/xxx/aaa.jsp";
    URL dU= new URL(url); 
    InputStream in = dU.openStream()
    }