




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
过滤器在项目开发中的应用javaee过滤器在项目怒开发中通常有三种应用:应用一:统一项目的字符编码:我们新建一个名为Encode.java的文件,内容是:package filter;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;public class Encode implements Filter public void destroy() / TODO Auto-generated method stubpublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException request.setCharacterEncoding(utf-8); response.setCharacterEncoding(utf-8); chain.doFilter(request, response);public void init(FilterConfig arg0) throws ServletException / TODO Auto-generated method stub程序在dofilter的方法中设置了request和response的编码为utf-8,这样便可以解决开发中的乱码问题,配置文件web.xml这样写: encoding filter.Encode encoding /* 应用二:限制所有未经登陆的用户通过地址直接请求资源。我们的项目文件结构如图:所有的页面文件都在pages的文件夹下(包括第一个登陆页面)。先建一个Unlogin,java,内容为:package filter;/防止未登录访问页面的过滤器import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.RequestDispatcher;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;public class Unlogin implements Filter public void destroy() / TODO Auto-generated method stubpublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException RequestDispatcher dispatcher = request.getRequestDispatcher(/pages/login.jsp);/这里设置如果没有登陆将要转发到的页面 HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; HttpSession session = req.getSession(true); /排除登陆页面不被过滤 String request_uri = req.getRequestURI(); String ctx_path = req.getContextPath(); /这里假设是排除登陆页面login.jsp 。排除文件夹是一样的,例如排除admin文件夹:/admin if(request_uri.substring(ctx_path.length().equals( /pages/login.jsp) chain.doFilter(request,response); return; / 从session里取的用户名信息 String username = (String) session.getAttribute(name);/这里获取session,为了检查session里有没有保存用户信息,没有的话回转发到登陆页面 System.out.println(username); / 判断如果没有取到用户信息,就跳转到登陆页面 if (username = null | .equals(username) / 跳转到登陆页面 dispatcher.forward(request,response); / System.out.println(用户没有登陆,不允许操作); res.setHeader(Cache-Control,no-store); res.setDateHeader(Expires,0); res.setHeader(Pragma,no-cache); else / 已经登陆,继续此次请求 chain.doFilter(request,response); / System.out.println(用户已经登陆,允许操作); public void init(FilterConfig arg0) throws ServletException / TODO Auto-generated method stub注意在doFilter方法中先进行了对象的强制转换。设置好未登录将被转发到的请求页面,然后排除login.jsp不被过滤,注意这种用法,也可用于排除某个目录不被过滤。Web.xml这样配置: unlogin filter.Unlogin unlogin /pages/*表示所有对pages下的页面请求都会接受过滤。应用三:防止已经登陆的用户越权访问不该自己访问的目录。新建一个Bosscheck.java,用于拦截普通用户强行访问管理员的页面。管理员的页面在pages/usermanage文件夹下,内容如下:package filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.RequestDispatcher;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;public class Bosscheck implements Filter public void destroy() / TODO Auto-generated method stubpublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; HttpSession session = req.getSession(true); String user=(String)session.getAttribute(usertype); if(boss.equals(user) chain.doFilter(request,response); return; RequestDispatcher dispatcher = request.getRequestDisp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州贵阳机场股份公司质量安全部呼叫中心96967实习生招聘1人笔试历年参考题库附带答案详解
- 2025贵州毕节市水务投资集团有限责任公司及所属金沙弘禹供水有限责任公司招聘笔试历年参考题库附带答案详解
- 2025安徽芜湖市鸠江区招聘区属国有企业领导人员拟聘用人员考前自测高频考点模拟试题及答案详解(网校专用)
- 2025福建南平委党校教师招聘8人模拟试卷及一套答案详解
- 2025浙江省衢州市衢江区国有企业春季引才活动笔试人员等笔试历年参考题库附带答案详解
- 2025广东韶关市新丰县招聘暨选聘公办教师30人(编制)考前自测高频考点模拟试题含答案详解
- 2025广东广州花都城投西城经济开发有限公司第二次招聘项目用工人员23人笔试历年参考题库附带答案详解
- 2025江苏无锡市锡山区卫生健康系统招聘事业编制卫生人才15人(校园招聘)考前自测高频考点模拟试题带答案详解
- 2025广东肇庆市怀集县卫生健康局赴高校招聘卫生专业技术人员52人考前自测高频考点模拟试题完整参考答案详解
- 2025年吉安市青原区两山人力资源服务有限公司面向社会公开招聘临聘人员的模拟试卷及完整答案详解
- 教育培训机构合作培训协议
- 苹果电脑macOS效率手册
- 职称英语A级词汇大全
- 某光伏发电工程EPC总承包投标文件技术文件
- (正式版)JBT 2603-2024 电动悬挂起重机
- JJG(交通) 133-2023 落锤式弯沉仪
- 工厂主管人员值班表
- 消防安全周巡查记录表
- 第三章 护理伦理学基本原则规范和范畴
- 能源化学与能源化工概论-第一章 能源简介
- FZ/T 52058-2021低熔点聚乳酸(LMPLA)/聚乳酸(PLA)复合短纤维
评论
0/150
提交评论