拦截器的初始化配置方法:
在web.xml文件当中添加下面的代码
<filter>
<filter-name>SetEncodeFilter</filter-name>
<filter-class>com.pk.mylogin.filter.SetEncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SetEncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
filter-name拦截器的名称,filter-class拦截器的java类,必须是包名+java名称;
filter-mapping当中配置标签当中,filter-name必须和filter标签当中的name一致;
url-pattern表示浏览器访问的地址
1、filter当中对应的java类应当实现(implements)filter类,import javax.servlet.Filter; 注
意filter类是哪个
2、在dofilter方法当中添加下面的代码:
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
3、要想实现对post和get请求都有效那么在tomcat服务器修改配置文件添加
具体的filter文件为:
package com.pk.mylogin.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetEncodeFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("拦截器被调用");
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
也可以再filter当中控制没有登录的用户,自动跳转到登录页面
在filter文件当中添加跳转
User user = (User) request.getAttribute("user");
if (user == null) {
request.getRequestDispatcher("/login.jsp").forward(request, response);
return ;
}