过滤器
作用:拦截,阻止直接在地址栏输入地址跳过注册或登录页面直接进入其他页面
代码案例:
创建过滤器:
public class UserFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { HttpServletRequest request = (HttpServletRequest) req; HttpSession session = request.getSession();
Object user = session.getAttribute("user");
if(user != null){
chain.doFilter(req, resp);//该语句的作用是放行
}
}}
注册过滤器
<filter> <filter-name>UserFilter</filter-name> <filter-class>com.njdf.filter.UserFilter</filter-class> </filter> <filter-mapping> <filter-name>UserFilter</filter-name> <url-pattern>/add</url-pattern> <url-pattern>/ds</url-pattern> <url-pattern>/as</url-pattern> <url-pattern>/ast</url-pattern> <url-pattern>/add.jsp</url-pattern> <url-pattern>/Success.jsp</url-pattern> <url-pattern>/update.jsp</url-pattern> </filter-mapping>
如果想指定拦截对象,<url-pattern>/*</url-pattern>写法格式与servlet一样
- 全路径匹配 以 / 开始
- 以目录匹配 以 / 开始 以 * 结束
- 以后缀名匹配 以 * 开始 以后缀名结束
cookie的显示上次登录时间案例
登录页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %><html><% String oldTime = ""; Cookie[] cookies = request.getCookies(); for(int i = 0; i<cookies.length;i++){ if(cookies[i].getName().equals("lastTime")){ oldTime = oldTime+cookies[i].getValue(); } }%><head> <title>登录</title></head><body> <h1>上次登录时间为:<%= oldTime%></h1> <form action="es" method="get"> 账号:<input type="text"><br> 密码:<input type="password"><br> <input type="submit"> </form></body></html>
servlet代码:
public class enterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Date date = new Date();
String time = "yyyy年MM月dd日hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(time);
String format = sdf.format(date);
System.out.println(format);
Cookie cookie = new Cookie("lastTime",format); cookie.setMaxAge(60*60*24*7);
cookie.setPath("/");
response.addCookie(cookie); request.getRequestDispatcher("OK.jsp").forward(request,response); }}
顺便在此给大家推荐一个Java方面的交流学习群:4112676,里面会分享一些高级面试题,还有资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系,主要针对Java开发人员提升自己,突破瓶颈,相信你来学习,会有提升和收获。在这个群里会有你需要的内容 朋友们请抓紧时间加入进来吧
评论前必须登录!
立即登录