自定义Filter,引入struts1项目(二)
来源:互联网 发布:网络教育需要多少钱 编辑:程序博客网 时间:2024/05/21 06:44
1. Filter自定义:
import j_mongoDB.JMongoDB;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;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 javax.servlet.http.HttpSession;import com.db.po.User;public class LogFilter implements Filter {private Set<String> nofilterSet;// private static final String LOGON_URI = "LOGON_URI";private String logon_page;public void destroy() {// TODO Auto-generated method stub}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;res.setContentType("text/html");res.setCharacterEncoding("utf-8");PrintWriter out = res.getWriter();/** * 获取当前url */String cUrl = req.getRequestURI();/** * 获取当前session */HttpSession session = req.getSession();/** * 从session中取到当前用户user */User user = (User) session.getAttribute("user");List<String> priilegeList = new ArrayList<String>();System.out.println("当前连接-URL:" + cUrl);if (nofilterSet.contains(cUrl)) {chain.doFilter(request, response);return;} else {if (user != null && !"".equals(user)) {try {System.out.println("当前用户名:" + user.getUsername()+ ";当前用户ID:" + user.getId());priilegeList = JMongoDB.getUserPrivilegeList(user.getId(),true);System.out.println("当前用户权限:" + priilegeList);if (priilegeList.contains(cUrl)) {chain.doFilter(request, response);} else {out.println("没有权限访问该链接!!!");return;}} catch (Exception e) {e.printStackTrace();}} else {res.sendRedirect(logon_page);}}}@SuppressWarnings("unchecked")public void init(FilterConfig filterConfig) throws ServletException {/** * 通用连接 */nofilterSet = (Set<String>) filterConfig.getServletContext().getAttribute("nofilter");if (nofilterSet == null) {nofilterSet = new HashSet<String>();nofilterSet.add("/z_WebTest/");nofilterSet.add("/z_WebTest/login.do");filterConfig.getServletContext().setAttribute("nofilter",nofilterSet);}logon_page = filterConfig.getInitParameter("LOGON_URI");}}2. Web.xml配置自定义Filter
<filter> <filter-name>logFilter</filter-name> <filter-class>com.web.filter.LogFilter</filter-class> <init-param> --><param-name>LOGON_URI</param-name> <param-value>/z_WebTest/</param-value> </init-param> </filter> <filter-mapping> <filter-name>logFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
0 0
- 自定义Filter,引入struts1项目(二)
- 项目中引入音乐-自定义按钮
- angularjs学习笔记(二) 自定义filter
- 自定义Filter
- 自定义Filter
- maven项目引入spring boot依赖之后filter不生效的问题
- 如何在项目中引入oscache(二)
- Vue项目实战(二)- 引入JQuery等第三方库
- 自定义Struts1转换器Converter
- struts1.3自定义标签
- struts1自定义标签
- struts1和struts2的标签引入
- Struts1.2.4学习心得!(二)
- Struts1.x(二)
- struts1学习笔记二
- Struts1进阶(二)
- 创建struts1项目
- Struts1.X 项目
- Delphi中实现java中new Date().getTime()方法
- poj1860 bellman ford
- flex tree的实现
- android ninepatch 文本域问题
- Redis综述
- 自定义Filter,引入struts1项目(二)
- Android开发出现Emulator without GPU emulation detected 的解决办法
- 实现多服务器共享 SESSION 数据
- 识海日志——时间都去哪了(20141202)
- 代码质量控制插件于eclipse3.4.2、eclipse3.7、eclipse4.3.0版本中的安装详解
- MyEclipse常用快捷键整理
- use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command
- uva11806Cheerleaders--容斥原理
- tomcat启动时检测到循环继承而栈溢出的问题