java旅行--第五站--servlet与JSP--java过滤器与session的小例子
来源:互联网 发布:java怎么求质数 编辑:程序博客网 时间:2024/06/06 03:11
首先看看不加拦截器时候的效果,如下,可以访问到action=dianming
然后定义一个过滤器,拦截action != login的action,如下
HttpServletRequest httpRequest = (HttpServletRequest)request;request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String action = httpRequest.getParameter("action");if(!("login".equals(action))) {String isLogin = (String)httpRequest.getSession().getAttribute("isLogin");if(isLogin == null || isLogin.isEmpty()) {httpRequest.getRequestDispatcher("/index.jsp").forward(request, response);}}// pass the request along the filter chainchain.doFilter(request, response);再看看效果
接着进行登录,发现可以登录成功
然后因为我设置了session的有效期为一分钟,代码如下
//判断用户是否登陆成功private boolean loginSuccess(HttpServletRequest request,HttpServletResponse response) {// TODO Auto-generated method stubif(username != null && password != null) {//System.out.println(username + "::::" + password);for(User user : userList) {if(username.equals(user.getUsername()) && password.equals(user.getPassword())) {request.getSession().setAttribute("isLogin", username);HttpSession session = request.getSession();session.setMaxInactiveInterval(60);return true;}}}return false;}
一分钟后刷新页面,发现,返回到登录页面了
下面是对注册登录后,往数据库增加用户和查询用户的操作
//查询用户public ArrayList<User> getUserList() {if(conn == null) {conn = MysqlPool.getConn();}try {pstmt = conn.prepareStatement("select * from user");rs = pstmt.executeQuery();while(rs.next()) {user = new User();user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));userList.add(user);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if(rs != null) {rs.close();rs = null;}if(pstmt != null) {pstmt.close();pstmt = null;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return userList;}//添加用户public void addUser(String name, String password) {if(conn == null) {conn = MysqlPool.getConn();}try {pstmt = conn.prepareStatement("insert into user(username, password) values(?,?)");pstmt.setString(1, name);pstmt.setString(2, password);pstmt.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if(rs != null) {rs.close();rs = null;}if(pstmt != null) {pstmt.close();pstmt = null;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
在servlet类中判断是注册还是登录操作
if(action != null) {if("login".equals(action)) {if(loginSuccess(request,response)) {request.getRequestDispatcher("/main.jsp").forward(request, response);} else {request.getRequestDispatcher("/index.jsp").forward(request, response);}} else if("register".equals(action)) {if(registerSuccess(request,response)) {request.getRequestDispatcher("/success.jsp").forward(request, response);} else {request.getRequestDispatcher("/index.jsp").forward(request, response);}} else if("dianming".equals(action)) {if(dianmingSuccess(request,response)) {request.getRequestDispatcher("/main.jsp").forward(request, response);} else {request.getRequestDispatcher("/main.jsp").forward(request, response);}} else {request.getRequestDispatcher("/index.jsp").forward(request, response);}} else {request.getRequestDispatcher("/index.jsp").forward(request, response);}
调用注册登录方法
//判断是否注册成功private boolean registerSuccess(HttpServletRequest request,HttpServletResponse response) {// TODO Auto-generated method stubif(username != null && password != null && !("".equals(username)) && !("".equals(password))) {//System.out.println("username:"+user.getUsername());for(User user : userList) {if(username.equals(user.getUsername())) {return false;}}return true;}return false;}//判断用户是否登陆成功private boolean loginSuccess(HttpServletRequest request,HttpServletResponse response) {// TODO Auto-generated method stubif(username != null && password != null) {//System.out.println(username + "::::" + password);for(User user : userList) {if(username.equals(user.getUsername()) && password.equals(user.getPassword())) {request.getSession().setAttribute("isLogin", username);HttpSession session = request.getSession();session.setMaxInactiveInterval(60);return true;}}}return false;}
0 0
- java旅行--第五站--servlet与JSP--java过滤器与session的小例子
- AJAX与java servlet结合使用的小例子
- jsp 与servlet 过滤器
- Servlet&JSP 第五章 进阶API、过滤器与监听器
- Java Servlet 与 jsp
- java旅行--第七站--springAOP的小例子
- Java Servlet 与 JSP 的比较
- JSP与Java Servlet的关系
- 小程序与java的session问题
- java web与servlet jsp
- java web servlet 过滤器filter与过滤器链filterchain的执行过程分析与验证
- Java之Servlet与JSP的区别与关系
- 自定义JSP与Servlet中文乱码过滤器
- Java Servlet与Applet、CGI、JSP的比较
- 【Java基础】第十讲 JSP与Servlet
- java web 过滤器开发步骤和简单的小例子
- servlet 过滤器 基本小 例子
- java之 Cookie与Session小应用
- 博客初衷
- Android -- 无线网络配置信息的管理者WifiConfigStore简介
- 通用CentOS 6 服务器安全配置指南
- LeetCode23 – Merge k Sorted Lists (Java)
- call(), apply(), bind()三个晦涩函数
- java旅行--第五站--servlet与JSP--java过滤器与session的小例子
- CSS基础之CSS选择器
- CSS中易迅网三角形的制作
- 域名
- linux ssh/sftp
- 类类型的大小
- Poedu_计算机基础_lesson04_20160830_磁盘
- Android设计模式之单例模式
- JavaScript之类型、值和变量