JSP中用filter 过滤某个包中的所有servlet 10
2017-11-08 · 【免费测试,验证码5秒必达】
web.xml中这样配置:
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.zq.servlet.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/servlet/Login</url-pattern>
</servlet-mapping>
或者不配置web.xml在servlet中写注解:
@WebServlet("/servlet/Login")
配置fliter可以在web.xml中这样写:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.zy.filter.UserLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
或者不配置web.xml在filter中写注解:
@WebFilter(filterName="/MyFilter",urlPatterns="/servlet/*")
即在所有想过滤的servlet名字前加上“/setvlet”在过滤的时候过滤路径就可以写成“/servlet/*”这样就能过滤所有的Servlet。
2、后台定义一个过滤器继承Filter.java
3、在过滤器中的doFilter方法中,将参数ServletRequest转化为HttpServletRequest
4、利用HttpServletRequest.getParameter();方法即可获取对应输入域的value值。
示例:
在Jsp页面:
<form>
<input type="text" name="username" value="zhangsan"/>
</form>
后台过滤器:
public class TestFilter implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filter) throws IOException, ServletException {
HttpServletRequest res = (HttpServletRequest) request;
//获取页面的username输入框的值
String username = request.getParameter("username");
return;
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
2017-11-08
可以将servlet的路径统一加一个前缀/f/*servlet
然后过滤f下所有文件即可,否则只能将所有servlet路径一个一个配置进去
然后在web.xml中将CommentFilter的过滤范围配置成 /* ,过滤所有的请求,
最后在过滤器中获得请求的URL,在将含有Servlet的字符的URL处理处理掉,这样就达到过滤的效果了