java 过滤器Filter
一、首先在web.xml里进行拦截过滤
<filter>
<filter-name>platformServiceAgreementFilter</filter-name>
<filter-class>com.yingle.web.lawyer.filter.PlatformServiceAgreementFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>platformServiceAgreementFilter</filter-name>
<url-pattern>/faces/pc/secure/v/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>platformServiceAgreementFilter</filter-name>
<url-pattern>/faces/mobile/secure/v/*</url-pattern>
</filter-mapping>
二、在com.yingle.web.lawyer.filter.PlatformServiceAgreementFilter包里处理响应
PlatformServiceAgreementFilter extends HttpFilter
/**
*
*/
@Override
public void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session,
FilterChain chain) throws ServletException, IOException {
Integer userProfileId = LoggedUserUtil.getLoggedUserProfileId();
try {
LawyerProfile lawyer = null;
if (null != userProfileId) {
lawyer = lawyerProfileService.getById(userProfileId);
}
Page page = pageConfig.getLatest(PageConfig.PLATFORM_SERVICE_AGREEMENT);
if (null != lawyer && null != page) {
Date publishTime = page.getPublishTime();
if (null == lawyer.getAcceptServiceAgreementTime()
|| lawyer.getAcceptServiceAgreementTime().compareTo(publishTime) <= 0) {
String userAccessEnvironment = FacesEnvironmentContextListener.getUserAccessEnvironment(request);
String originRequesetURL = request.getRequestURL().toString();
String queryString = request.getQueryString();
if (StringUtil.isNotEmpty(queryString)) {
if (queryString.indexOf("faces-redirect") >= 0) {
originRequesetURL = originRequesetURL + "?" + queryString;
} else {
originRequesetURL = originRequesetURL + "?faces-redirect=true&" + queryString;
}
} else {
originRequesetURL = originRequesetURL + "?faces-redirect=true";
}
session.setAttribute(SessionKey.REQUEST_URL_BEFORE_AGREEMENT_KEY, originRequesetURL);
String redirectPagePath =
request.getContextPath()
+ String.format(PLATFORM_SERVICE_AGREEMENT_URL, userAccessEnvironment);
ServletUtil.redirect(response, redirectPagePath);
}
}
} catch (ApplicationServiceException e) {
throw new ServletException("encounter error while showing platform service agreement", e);
}
chain.doFilter(request, response);
}
java 过滤器Filter的更多相关文章
- java 过滤器(Filter)与springMVC 拦截器(interceptor)的实现案例
java 过滤器Filter: package com.sun.test.aircraft.filter;import javax.servlet.*;import java.io.IOExcepti ...
- java过滤器Filter笔记
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静 ...
- java 过滤器Filter中chain.doFilter()之前和之后代码的执行顺序
过滤器拦截到响应url的请求后会先执行doFilter()方法中chain.doFilter()之前的代码,然后执行下一个过滤器或者servelt.紧接着执行chain.doFilter()之后的代码 ...
- XSS过滤JAVA过滤器filter 防止常见SQL注入
Java项目中XSS过滤器的使用方法. 简单介绍: XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩 ...
- java过滤器filter使用
一:filter:过滤器,拦截servlet的请求和响应. 1. package jd.com.filter; import javax.servlet.*; import java.io.IOExc ...
- 防止常见XSS 过滤 SQL注入 JAVA过滤器filter
XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往W ...
- java 过滤器filter使用案例
主要需要 过滤器类 和配置文件 1.过滤器类 SessionFilter package com.service; import javax.servlet.*; import javax.serv ...
- Java过滤器—Filter用法简介
一.什么是Filter? Filter译为过滤器. 由于年,Sun公司在Servlet2.3规范中添加了Filter功能,并在Servlet2.4中对Filter进行了细节上的补充. 二.运行原理: ...
- Java 过滤器Filter,Java Filter 不拦截某些请求 Java 过滤器支持Ajax请求
================================ ©Copyright 蕃薯耀 2020-01-10 https://www.cnblogs.com/fanshuyao/ 一.Java ...
- Java过滤器Filter使用详解
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6374212.html 在我的项目中有具体应用:https://github.com/ygj0930/Coupl ...
随机推荐
- C# 金钱 小写转大写的算法
调用 ConvertMoney的ConvertMoneyToWords(decimal money)方法即可 using System; using System.Collections.Generi ...
- android Acitivity之间的几种传值方式(^_^)
对于开发app 来说,数据的传递肯定是少不了的啦,其实app 的本质就是用来呈现数据的. 好的 方式一 Intent.putExtra(TAG,DATA); 应用场景 对于传送单一数据,而又只在 ...
- 配置oozie4.10+hadoop2.5.2
终于将这个神秘的寻象人 oozie 安装配置成功了,这个困扰我好几天, 当看到如下的画面, 我觉得值! 废话少说,看我如何编译和安装过程: (已经将hadoop2.5.2HA 的环境搭建起来了,hiv ...
- 【Java并发系列02】Object的wait()、notify()、notifyAll()方法使用
一.前言 对于并发编程而言,除了Thread以外,对Object对象的wati和notify对象也应该深入了解其用法,虽然知识点不多. 二.线程安全基本知识 首先应该记住以下基本点,先背下来也无妨: ...
- 浅谈WEB前后端分离
重审业务逻辑 用过MVC的童鞋都知道业务逻辑(Bussiness Logic),但是大多对这概念又是模棱两可,业务逻辑从来都是这样难以理解,谈论前后端分离之前这个概念非常有必要探讨一下! 在简单的CR ...
- 【leetcode】Remove Nth Node From End of List
题目简述: Given a linked list, remove the nth node from the end of list and return its head. For example ...
- F#之旅2 - 我有特别的学F#技巧
原文地址:https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/learning-fsharp/ Learning F#Functio ...
- 学习微信小程序之css4设置颜色,单位表示,字体样式
颜色的设置可以通过RGB设置 可以直接通过英文单词设置 可以通过16进制来设置 长度单位: 字体样式: 设置字体样式 字体粗细 设置字体风格 设置字间距
- activemq 控制面板里的 Number Of Pending Messages、 Messages Enqueued、Messages Dequeued含义
Number Of Consumers 消费者 这个是消费者端的消费者数量 Number Of Pending Messages 等待消费的消息 这个是当前未出队列的数量.可以理解为总接收数-总出队 ...
- js数组操作大全
原文(http://www.cnblogs.com/webhotel/archive/2010/12/21/1912732.html) 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简 ...