- 浏览: 185926 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xoxoj:
如果发现input输入框里包含这些全角的内容,jquery应该 ...
全角正则 -
TJYCHYANGCHENHUI:
不对吧!你的第一句话说错了好吧,在没有开启事务的情况下,sa ...
hibernate入门(三)Session中的主要方法 -
leonardleonard:
好帖
js公共函数(utils.js) -
xyqqjy:
朋友你和我的现状很像啊!
我离职快一年了,一直没有再做开发这一 ...
浮躁,我 -
djy1135:
确实需要静一下心! 一样一样来吧。 东西学不半扔了,跟没学差 ...
浮躁,我
一、使浏览器不缓存页面的过滤器
一、使浏览器不缓存页面的过滤器 import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 用于的使 Browser 不缓存页面的过滤器 */ public class ForceNoCacheFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { ((HttpServletResponse) response).setHeader(“Cache-Control”,”no-cache”); ((HttpServletResponse) response).setHeader(“Pragma”,”no-cache”); ((HttpServletResponse) response).setDateHeader (“Expires”, -1); filterChain.doFilter(request, response); } public void destroy() { } public void init(FilterConfig filterConfig) throws ServletException { } } 二、检测用户是否登陆的过滤器 import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.util.List; import java.util.ArrayList; import java.util.StringTokenizer; import java.io.IOException; /** * 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面 * 配置参数 * checkSessionKey 需检查的在 Session 中保存的关键字 * redirectURL 如果用户未登录,则重定向到指定的页面,URL不包括 ContextPath * notCheckURLList 不做检查的URL列表,以分号分开,并且 URL 中不包括 ContextPath */ public class CheckLoginFilter implements Filter { protected FilterConfig filterConfig = null; private String redirectURL = null; private List notCheckURLList = new ArrayList(); private String sessionKey = null; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession(); if(sessionKey == null) { filterChain.doFilter(request, response); return; } if((!checkRequestURIIntNotFilterList(request)) && session.getAttribute(sessionKey) == null) { response.sendRedirect(request.getContextPath() + redirectURL); return; } filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { notCheckURLList.clear(); } private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) { String uri = request.getServletPath() + (request.getPathInfo() == null ? “” : request.getPathInfo()); return notCheckURLList.contains(uri); } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; redirectURL = filterConfig.getInitParameter(“redirectURL”); sessionKey = filterConfig.getInitParameter(“checkSessionKey”); String notCheckURLListStr = filterConfig.getInitParameter(“notCheckURLList”); if(notCheckURLListStr != null) { StringTokenizer st = new StringTokenizer(notCheckURLListStr, “;”); notCheckURLList.clear(); while(st.hasMoreTokens()) { notCheckURLList.add(st.nextToken()); } } } } 三、字符编码的过滤器 import javax.servlet.*; import java.io.IOException; /** * 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题 */ public class CharacterEncodingFilter implements Filter { protected FilterConfig filterConfig = null; protected String encoding = “”; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { if(encoding != null) servletRequest.setCharacterEncoding(encoding); filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { filterConfig = null; encoding = null; } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter(“encoding”); } } 四、资源保护过滤器 package catalog.view.util; import javax.servlet.Filter; import javax.servlet.FilterConfig; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.Iterator; import java.util.Set; import java.util.HashSet; // import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * This Filter class handle the security of the application. * * It should be configured inside the web.xml. * * @author Derek Y. Shen */ public class SecurityFilter implements Filter { //the login page uri private static final String LOGIN_PAGE_URI = “login.jsf”; //the logger object private Log logger = LogFactory.getLog(this.getClass()); //a set of restricted resources private Set restrictedResources; /** * Initializes the Filter. */ public void init(FilterConfig filterConfig) throws ServletException { this.restrictedResources = new HashSet(); this.restrictedResources.add(“/createProduct.jsf”); this.restrictedResources.add(“/editProduct.jsf”); this.restrictedResources.add(“/productList.jsf”); } /** * Standard doFilter object. */ public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { this.logger.debug(“doFilter”); String contextPath = ((HttpServletRequest)req).getContextPath(); String requestUri = ((HttpServletRequest)req).getRequestURI(); this.logger.debug(“contextPath = ” + contextPath); this.logger.debug(“requestUri = ” + requestUri); if (this.contains(requestUri, contextPath) && !this.authorize((HttpServletRequest)req)) { this.logger.debug(“authorization failed”); ((HttpServletRequest)req).getRequestDispatcher(LOGIN_PAGE_URI).forward(req, res); } else { this.logger.debug(“authorization succeeded”); chain.doFilter(req, res); } } public void destroy() {} private boolean contains(String value, String contextPath) { Iterator ite = this.restrictedResources.iterator(); while (ite.hasNext()) { String restrictedResource = (String)ite.next(); if ((contextPath + restrictedResource).equalsIgnoreCase(value)) { return true; } } return false; } private boolean authorize(HttpServletRequest req) { //处理用户登录 /* UserBean user = (UserBean)req.getSession().getAttribute(BeanNames.USER_BEAN); if (user != null && user.getLoggedIn()) { //user logged in return true; } else { return false; }*/ } }
二、检测用户是否登陆的过滤器
import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.util.List; import java.util.ArrayList; import java.util.StringTokenizer; import java.io.IOException; /** * 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面 * 配置参数 * checkSessionKey 需检查的在 Session 中保存的关键字 * redirectURL 如果用户未登录,则重定向到指定的页面,URL不包括 ContextPath * notCheckURLList 不做检查的URL列表,以分号分开,并且 URL 中不包括 ContextPath */ public class CheckLoginFilter implements Filter { protected FilterConfig filterConfig = null; private String redirectURL = null; private List notCheckURLList = new ArrayList(); private String sessionKey = null; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession(); if(sessionKey == null) { filterChain.doFilter(request, response); return; } if((!checkRequestURIIntNotFilterList(request)) && session.getAttribute(sessionKey) == null) { response.sendRedirect(request.getContextPath() + redirectURL); return; } filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { notCheckURLList.clear(); } private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) { String uri = request.getServletPath() + (request.getPathInfo() == null ? “” : request.getPathInfo()); return notCheckURLList.contains(uri); } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; redirectURL = filterConfig.getInitParameter(“redirectURL”); sessionKey = filterConfig.getInitParameter(“checkSessionKey”); String notCheckURLListStr = filterConfig.getInitParameter(“notCheckURLList”); if(notCheckURLListStr != null) { StringTokenizer st = new StringTokenizer(notCheckURLListStr, “;”); notCheckURLList.clear(); while(st.hasMoreTokens()) { notCheckURLList.add(st.nextToken()); } } } }
三、字符编码的过滤器
i
mport javax.servlet.*; import java.io.IOException; /** * 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题 */ public class CharacterEncodingFilter implements Filter { protected FilterConfig filterConfig = null; protected String encoding = “”; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { if(encoding != null) servletRequest.setCharacterEncoding(encoding); filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { filterConfig = null; encoding = null; } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter(“encoding”); } }
四、资源保护过滤器
package catalog.view.util; import javax.servlet.Filter; import javax.servlet.FilterConfig; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.Iterator; import java.util.Set; import java.util.HashSet; // import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * This Filter class handle the security of the application. * * It should be configured inside the web.xml. * * @author Derek Y. Shen */ public class SecurityFilter implements Filter { //the login page uri private static final String LOGIN_PAGE_URI = “login.jsf”; //the logger object private Log logger = LogFactory.getLog(this.getClass()); //a set of restricted resources private Set restrictedResources; /** * Initializes the Filter. */ public void init(FilterConfig filterConfig) throws ServletException { this.restrictedResources = new HashSet(); this.restrictedResources.add(“/createProduct.jsf”); this.restrictedResources.add(“/editProduct.jsf”); this.restrictedResources.add(“/productList.jsf”); } /** * Standard doFilter object. */ public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { this.logger.debug(“doFilter”); String contextPath = ((HttpServletRequest)req).getContextPath(); String requestUri = ((HttpServletRequest)req).getRequestURI(); this.logger.debug(“contextPath = ” + contextPath); this.logger.debug(“requestUri = ” + requestUri); if (this.contains(requestUri, contextPath) && !this.authorize((HttpServletRequest)req)) { this.logger.debug(“authorization failed”); ((HttpServletRequest)req).getRequestDispatcher(LOGIN_PAGE_URI).forward(req, res); } else { this.logger.debug(“authorization succeeded”); chain.doFilter(req, res); } } public void destroy() {} private boolean contains(String value, String contextPath) { Iterator ite = this.restrictedResources.iterator(); while (ite.hasNext()) { String restrictedResource = (String)ite.next(); if ((contextPath + restrictedResource).equalsIgnoreCase(value)) { return true; } } return false; } private boolean authorize(HttpServletRequest req) { //处理用户登录 /* UserBean user = (UserBean)req.getSession().getAttribute(BeanNames.USER_BEAN); if (user != null && user.getLoggedIn()) { //user logged in return true; } else { return false; }*/ } }
发表评论
-
Android开源git40个App源码
2019-04-26 10:48 573(JamsMusicPlayer)很棒的音乐播放器( ... -
Quartz的cron表达式
2019-03-22 11:48 4041. Seconds 2. ... -
JAVA JS 身份证正则表达式
2012-03-28 16:36 1274String pattern = "( ... -
生产者消费者问题实现
2011-10-31 14:16 802这是个线程同步的经典例子,源代码如下: /** *经 ... -
设计模式----观察者模式Observer
2011-10-19 10:06 838Observer模式 Observer模式的功用,是希望两个 ... -
META-INF中的MANIFEST.MF的作用
2011-03-03 16:50 2019MANIFEST中的配置信息共 ... -
JAVA日期时间小结
2011-03-01 11:30 2200Java 语言的Calendar,GregorianCalen ... -
java读取Properties文件六种方法
2011-01-28 10:15 8901。使用java.util.Properties类的load( ... -
ireport相关之jasper
2010-11-09 13:57 1526ireport是工具,jasper才是核心。没有ireport ... -
用java实现发邮件
2010-08-06 22:49 1010用java实现发邮件的原理非常简单,首先建立和邮件服务器的So ... -
Java 实现文件分割合并
2010-08-06 22:37 1185import java.io.*; class Fen{ ... -
java写的des加密解密
2010-08-06 22:02 1299首先说一下什么是DES加密 DES算法为密码体制中的对称密码 ... -
Jasper Report总结
2010-07-30 12:43 1758下载 Jasper: ... -
java给图片加水印,文字
2010-07-19 22:59 1001import java.awt.AlphaComposite; ... -
JSP中的EL表达式
2010-07-11 23:19 757一、JSP EL语言定义 ... -
Java生成gif动画
2010-07-09 21:17 1395BufferedImage src = ImageI ... -
简捷强大的单文件XML操作工具类
2010-07-09 21:13 1018这个是XML操作工具类,只有一个类文件,使用的全部是JDK ... -
Java连接各种数据库
2010-07-09 21:08 7251、Oracle8/8i/9i数据库(thin模式) C ... -
java采集csdn论坛源码
2010-07-09 17:15 1322import java.io.BufferedReader; ... -
java ThreadLocal
2010-06-25 17:41 745一:ThreadLocal的设计与实现 早在Java 1.2 ...
相关推荐
本项目旨在设计和实现一个基于协同过滤算法的电影推荐系统。通过上述技术的选择和技术栈的搭建,不仅能够有效管理大量的电影信息和用户数据,还能提供个性化的电影推荐服务。此外,系统采用了B/S架构和MVC架构,使得...
- 过滤器和监听器增强了Web应用的功能,如登录验证、日志记录等。 8. **Web前端技术**: - HTML、CSS、JavaScript是构建网页的基础,DreamWeaver是前端开发工具。 - AJAX(Asynchronous JavaScript and XML)...
万能的 GitHub 上连个能用的 Java 社区系统都找不到,Sym 填补了这个宇宙级空白 做最 NB 的开源社区系统,预计几年以后 82% 的社区都将是 Sym 搭建的 作者技痒,炫技之作,Ruby/Python/Node.js/(特别是)PHP ...
在这个场景中,我们讨论的是如何将Spring 2.5.4、Hibernate 3.2.6、Struts2以及jbpm 3.2.2这四个组件集成到一个项目中。下面将分别介绍这些组件以及它们在整合过程中的配置细节。 1. **Spring 2.5.4**: Spring 是...
本项目以"springboot493"为核心技术,结合Java编程语言,构建了一个高效、易用的美食信息推荐系统,旨在提升用户体验,增加用户粘性。 一、技术栈介绍 1. SpringBoot:SpringBoot是Spring框架的简化版,它简化了...
1. **系统架构**:系统采用了典型的MVC(Model-View-Controller)架构模式,将模型、视图和控制器三个部分分离,使得各个组件之间职责明确,易于维护和扩展。 2. **前端界面**:前端使用HTML、CSS和JavaScript等技术...
在OSGi环境中,每个组件都是一个独立的模块,有自己的类加载器,可以单独安装、卸载、启动和停止,极大地增强了软件的灵活性和可维护性。 一、OSGi基础知识 1. 模块系统:OSGi的基础是它的模块系统,每个模块称为...
3. 日志过滤器:Filter接口可以用于筛选日志信息,实现更精细的控制。 4. 层次结构:Logger之间存在层次关系,子Logger会继承父Logger的配置,但也可以覆盖特定配置。 五、日志性能优化 1. 日志级别控制:合理设置...
控制层的实现分为主控制器、过滤器、请求辅助类和命令处理类Command四个部分。主控制器作为总体控制类,负责接收和分发用户请求至各部分控制类;过滤器负责请求预处理或后处理工作,如安全检查、日志记录等;请求...
状态栏上设置了四个快捷按钮,依次为脱机浏览,当前窗口使用自动过滤,激活新窗口,简易文本搜集面版。 简易搜集面版。用来暂存文本信息和图片。可拖放文本图片到状态栏按钮或搜集面版 上将文本图片保存起来。...
这四个对象分别代表全局应用程序、会话、请求和当前页面的范围。 4. **漏洞扫描**:漏洞扫描工具通过TCP/IP协议向远程主机的多个端口发送请求,以探测可能存在的漏洞。 5. **网络拓扑**:网络拓扑描述了网络中节点...
这四个域对象分别代表了不同的作用范围:pageContext 只在当前页面有效,request 在一次请求内有效,session 在用户会话期间有效,application 在整个应用程序生命周期内有效。 2. 表达式 4+5 \ 6* 7 / 8 Mod 9 的...
在IT行业中,Java Enterprise Edition(J2EE)是企业级应用开发的重要平台,它提供了丰富的功能和服务,使得开发者能够构建可扩展、安全且...这份"J2EE编程技巧集锦"是宝贵的参考资料,值得每个J2EE开发者收藏和研读。
综上,这个项目不仅涵盖了Java后端开发、微信小程序前端设计,还涉及到数据库设计、安全策略以及性能优化等多个方面的知识,是学习和实践SSM、SpringBoot以及微信小程序开发的宝贵资源。通过该项目,开发者可以深入...
- **实体过滤器**:用于筛选显示特定类型的实体(如函数、类等)。 - **实体定位器**:快速查找特定实体。 - **即时搜索**:快速定位代码中的特定文本或模式。 - **文件查找**:在项目中搜索特定文件或字符串。 ...
- **功能实现**:集成搜索、收藏、评论等功能,提供个性化推荐机制。 ##### 3. 后端服务 - **接口设计**:根据小程序的需求设计RESTful API,实现前后端分离。 - **数据处理**:使用Spring Boot搭建服务端,结合...
- **web.xml**:Web应用程序的核心配置文件,定义了Struts2的核心过滤器和其他Web应用的初始化参数。 - **FilterDispatcher**:定义了Struts2的核心控制器`FilterDispatcher`,负责拦截所有的用户请求,并根据配置...
本系统以Spring、SpringMVC、MyBatis(简称SSM)框架为基础,构建了一个强大的个性化美食推荐系统。下面将详细介绍该系统的架构设计、核心技术和实现流程。 一、系统架构设计 1.1 技术选型:SSM框架是Java企业级...
光影娱乐后台毕业设计是一个以娱乐为主题的项目,涵盖了前端用户界面以及后台管理系统,为用户提供一个集休闲、互动于一体的在线平台。这个项目可能包含了多种技术栈,如前端开发、后端服务、数据库管理等,旨在帮助...