如何过滤不同的 url 以便与相同的 servlet 一起工作?
Posted
技术标签:
【中文标题】如何过滤不同的 url 以便与相同的 servlet 一起工作?【英文标题】:How to filter different url in order work with same servlets? 【发布时间】:2015-10-26 00:52:14 【问题描述】:假设我的代码中有一些名为 /servlet1、/servlet2 等的 servlet。
我的目标是使用同一组 servlet 为两个不同的应用程序提供服务:
/myapp1/servlet1 -> 使用 /login 和一个名为 myapp1 的参数
/myapp2/servlet2 -> 使用 /login 和一个名为 myapp2 的参数
我想我必须使用过滤器和过滤器映射,但到目前为止我还没有成功。
【问题讨论】:
【参考方案1】:这里是一个过滤器的例子:
公共类 LoginFilter 实现过滤器
public LoginFilter()
// TODO Auto-generated constructor stub
public void destroy()
// TODO Auto-generated method stub
public String clean(String s)
s=s.replaceAll("[^a-zA-Z0-9]", "");
s=s.trim();
return s;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse resp=(HttpServletResponse) response;
String user=req.getParameter("username");
String pass=req.getParameter("password");
req.removeAttribute("username");
req.removeAttribute("password");
user=clean(user);
pass=clean(pass);
req.setAttribute("username", user);
req.setAttribute("password", pass);
chain.doFilter(req, response);
public void init(FilterConfig fConfig) throws ServletException
这里是 web.xml
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>pack.LoginFilter</filter-class> </filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/some-url-patter</url-pattern> </filter-mapping>
您必须具有与 servlet 相同的 url 模式,也可以添加过滤器。你可以有任意数量的过滤器。 它的工作原理是这样的:filter1->filter2->filter3->...->servlet
【讨论】:
以上是关于如何过滤不同的 url 以便与相同的 servlet 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS WKWebView 中过滤来自不同 URL 的确认对话框