关于servlet过滤器的简单使用
过滤器简单例子
servlet的过滤器通常用在对用户是否登陆进行跳转页面等其他需要统一处理的事务
,它能过滤所有客户端访问的页面首先经过doFilter方法,之后传输到客户端的浏览器上
首先要设置web.xml:
<filter>
<filter-name>RoleFilter</filter-name> //类
<filter-class>com.java.tips.RoleFilter</filter-class> //路径
<init-param>
<param-name>LegalIP</param-name>
<param-value>192.168.13.15</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RoleFilter</filter-name>
<url-pattern>/test1/*</url-pattern> //这里的不能允许路径和. 同时出现 举例 /test1/*.jsp 是不允许的
</filter-mapping>
引入需要的类
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;;
public class RoleFilter implements Filter {
private FilterConfig config = null;
public void init(FilterConfig config) throws ServletException { //初始化
this.config = config;
}
public void destroy() { //退出之后需要释放
this.config = null;
}
public void doFilter(ServletRequest request, ServletResponse servletresponse,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpservletresponse = (HttpServletResponse)servletresponse;
HttpServletRequest httpservletrequest = (HttpServletRequest)request;
if(requestUri.endsWith("test1.jsp")){
httpservletresponse.sendRedirect( "/test/index.jsp");
return;
}else {
return;
}
note: 在处理跳转的时候,最好访问页面和跳转页面不要在同一目录。 需要过过滤的页面最好多统一的放在一个目录
这样比较容易设置<url-pattern>