首页 javaWEB JAVA 过滤器 demo

JAVA 过滤器 demo

过滤器。。 RequestFilter.java import java.io.IOException; import …

过滤器。。

RequestFilter.java

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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.activiti.engine.impl.util.json.JSONObject;

import com.alibaba.druid.support.json.JSONUtils;
import com.bcxcore.modules.util.JsonUtil;

/**
 * @ClassName: RequestFilter
 * @Description:filter的三种典型应用: 1、可以在filter中根据条件决定是否调用chain.doFilter(request,
 *                             response)方法, 即是否让目标资源执行
 *                             2、在让目标资源执行之前,可以对request\response作预处理,再让目标资源执行
 *                             3、在目标资源执行之后,可以捕获目标资源的执行结果,从而实现一些特殊的功能
 */
public class RequestFilter implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		//System.out.println("----过滤器初始化----");
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {

		HttpServletRequest req = (HttpServletRequest) request;
                HttpServletResponse res = (HttpServletResponse) response;
		// 对request和response进行一些预处理
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");

		System.out.println("执行前!!!");
		//处理url加密 问题
		if (req.getMethod().equals("POST")){
			System.out.println("post请求");
		}else{
			System.out.println("post请求");
		}

	        int code=0;
		String jsonStr=request.getParameter("jsonData");
		JSONObject json = new JSONObject(jsonStr);
		if(json!=null&&json.get("date")!=null&&json.get("token")!=null){
		  String  currentTime=json.getString("date");
		  String  token=json.getString("token");
		  code=JsonUtil.getVerification(currentTime,token);
		}
		request.setAttribute("code", code);
		chain.doFilter(request, response); // 让目标资源执行,放行
		System.out.println("RequestFilter执行后!!!");
	}

	@Override
	public void destroy() {
		System.out.println("----过滤器销毁----");
	}
}

web.xml 配置

<!--配置过滤器-->
<filter>
<filter-name>RequestFilter</filter-name>

<filter-class>com.javaweb.topmon.filter.RequestFilter</filter-class>
</filter>

<!--映射过滤器-->
<filter-mapping>
<filter-name>RequestFilter</filter-name>
<!--“/*”表示拦截所有的请求 -->
<url-pattern>/q/*</url-pattern>
</filter-mapping>

不是很难。。

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

nodejs 整理记录

nodejs 整理记录

下载包 https://blog.csdn.net/m0_59878114/article/details/120274...
websocket测试html

websocket测试html

<!DOCTYPE html> <html> <head> <meta cha...
bigdemical两个数比较大小

bigdemical两个数比较大小

/*int result = bigdemical1.compareTo(bigdemical2) result = -...
Beetl2.7 中文文档

Beetl2.7 中文文档

Beetl目前版本是2.7.23,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等...
纯CSS实现多个便签在一行展示,拖动滚动

纯CSS实现多个便签在一行展示,拖动滚动

div <h2>请注意需要在移动端预览,PC端拖拽无效果</h2> <div class=...
返回顶部