编码过滤器
package com.bjsxt.filter;
import javax.servlet.*;
import java.io.IOException;
/**
* @program: JavaEE
* @description
*
* @author: wuhao
* @create: 2019-12-12 15:48
**/
//编码的过滤
public class EndFilter implements Filter {
String endcoding;
@Override
public void init(FilterConfig config) throws ServletException {
//先获得全局
endcoding = config.getServletContext().getInitParameter("endcoding");
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
//处理请求
req.setCharacterEncoding(endcoding);
//放行
chain.doFilter(req, resp);
//处理响应
}
@Override
public void destroy() {
}
}
WEB.xml的配置
<context-param>
<param-name>endcoding</param-name>
<param-value>UTF-8</param-value>
</context-param>
<filter>
<filter-name>EndFilter</filter-name>
<filter-class>com.bjsxt.filter.EndFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EndFilter</filter-name>
<url-pattern>/servlet/*</url-pattern> //只要是这个路径的请求都会经过编码的过滤器
</filter-mapping>
package com.bjsxt.filter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @program: JavaEE * @description * @author: wuhao * @create: 2019-12-12 16:54 **/ public class LoginFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//先转换 获得 req和resp HttpServletRequest req=(HttpServletRequest)servletRequest; HttpServletResponse resp=(HttpServletResponse)servletResponse; //判断session是否为空 Object employee = req.getSession().getAttribute("employee"); String requestURI = req.getRequestURI(); String queryString = req.getQueryString(); //先判断是否是登陆的请求是的话就放行 if ("/sxtoa/login.jsp".equals(requestURI)||"/sxtoa/servlet/EmplpyeeServlet?method=login".equals(requestURI+"?"+queryString)){ //放行 filterChain.doFilter(req,resp); }else { if (employee==null){ //重定向到登陆页面 resp.sendRedirect(req.getContextPath()+"/login.jsp"); }else { //放行 filterChain.doFilter(req,resp ); } } } @Override public void destroy() { } }
Web.xml的配置
<filter> <filter-name>LoginFilter</filter-name> <filter-class>com.bjsxt.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/servlet/*</url-pattern> <url-pattern>*.jsp</url-pattern> <url-pattern>*.html</url-pattern> </filter-mapping>
原文:https://www.cnblogs.com/ww103/p/12079152.html