相关疑难解决方法(0)

如何在Java中使用servlet过滤器来更改传入的servlet请求URL?

如何使用servlet过滤器来更改传入的servlet请求URL

http://nm-java.appspot.com/Check_License/Dir_My_App/Dir_ABC/My_Obj_123

至

http://nm-java.appspot.com/Check_License?Contact_Id=My_Obj_123

?


更新:根据BalusC的以下步骤,我想出了以下代码:

public class UrlRewriteFilter implements Filter {

    @Override
    public void init(FilterConfig config) throws ServletException {
        //
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest) req;
        String requestURI = request.getRequestURI();

        if (requestURI.startsWith("/Check_License/Dir_My_App/")) {
            String toReplace = requestURI.substring(requestURI.indexOf("/Dir_My_App"), requestURI.lastIndexOf("/") + 1);
            String newURI = requestURI.replace(toReplace, "?Contact_Id=");
            req.getRequestDispatcher(newURI).forward(req, res);
        } else {
            chain.doFilter(req, res);
        }
    }

    @Override
    public void destroy() {
        //
    }
}
Run Code Online (Sandbox Code Playgroud)

相关条目web.xml如下所示: …

java url servlets request servlet-filters

179
推荐指数
3
解决办法
21万
查看次数

如何在不同端口后面的单个Tomcat实例上运行不同的应用程序?

目前我在Tomcat 6上运行了2个web应用程序app1和app2:

我想配置Tomcat,以便它们在不同端口后面的根上下文中运行:

需要做什么?

port tomcat tomcat6

57
推荐指数
2
解决办法
7万
查看次数

在单个JBoss实例上设置多个端口?

问题背景

这是情况.我们正在从战争中运行模拟器servlet.我们正在模拟的servlet在一台机器上有许多实例,这些实例由端口号区分.我们只想部署一个可以被许多端口访问的单一战争.

我们到目前为止

使用java Filter(参见下面的web.xml),我们可以根据端口号转发到每个servlet实现(通过添加额外的连接器来添加端口deploy/jbossweb.sar/server.xml).这适用于所有Web服务调用,但不适用于wsdl请求,例如http://localhost:8092/simulator/sim?wsdl8092是许多模拟器的所需版本(8091,8092,8093,8094).在该请求上,正确返回wsdl(每个模拟器实现略有不同),但URL soap:address标记始终使用端口8091.

注意:我们使用的是JBoss 5.0

web.xml的相关部分:

  <filter>
      <filter-name>SimFilter</filter-name>
      <filter-class>com.example.filter.MyFilter</filter-class>
  </filter>

  <filter-mapping>
      <filter-name>SimFilter</filter-name>
      <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher>
      <dispatcher>INCLUDE</dispatcher>
      <dispatcher>FORWARD</dispatcher>
  </filter-mapping>  
Run Code Online (Sandbox Code Playgroud)

jboss wsdl jboss5.x

1
推荐指数
1
解决办法
6123
查看次数

标签 统计

java ×1

jboss ×1

jboss5.x ×1

port ×1

request ×1

servlet-filters ×1

servlets ×1

tomcat ×1

tomcat6 ×1

url ×1

wsdl ×1