现在有个应用   http://10.0.0.4:8080/app/login.jsp
   由于防火请8080端口不能打开,我想再部署一个应用http://10.0.0.4:80/test/index.jsp,通过
   request.getRequestDispatcher("http://10.0.0.4:8080/app/login.jsp").forward(request,response);来实现不知道行不行

解决方案 »

  1.   

    使用多个tomcat可以  一个tomcat只能运行一个项目
      

  2.   

    ServletContext.getRequestDispatcher(String url)和ServletRequest.getRequestDispatcher(String url)
    只能把请求转移到同一个Web App中的地址。
    如果需要把请求转移到另外一个Web App中的某个地址,可以按下面的做法:
    1. 获得另外一个Web App的ServletConext对象(currentServletContext.getContext(uripath)).
    2. 调用ServletContext.getRequestDispatcher(String url)方法。 
      

  3.   

     对,我装了两个tomcat,现在问题是request.getRequestDispatcher只能服务器内部跳转,而如果用response.sendRedirect()客户端跳转防火墙又没打开8080,
      

  4.   

      条件允许我早这么做了,我只想确定一下能否绕开防火墙限制,通过访问80端口的/test/index.jsp,返回8080端口/app/login.jsp的内容
      

  5.   

    1. 获得另外一个Web App的ServletConext对象(currentServletContext.getContext(uripath)). 
    这个具体怎么做的,如果在获得另一个web app的ServletContext对象
      

  6.   

    -_-都不在一个jvm里,用一般的手段是没办法获得不同tomcat中的servletContext滴。建议lz考虑一下其他方案。
      

  7.   

    currentServletContext.getContext(uripath)
    ==========================================
    这个不就是获得其他servletContext的方法么?
    currentServletContext是当前的servletContext;
    uripath是另一个servletContext的URL
      

  8.   

     一个webapp 只有一个servletcontext吧
      

  9.   

    xyz20003  说的对,
     currentServletContext.getContext(uripath)  
    只有当两个app在同一个server里时才可以访问另一个sevlertContext的内容,我现在是架了两个tomcat,应该不行