javaweb之Session完成用户登录
2014-03-10 16:35
405 查看
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>首页</title> </head> <body> <!-- ${user.username}取出session域中的user对象,显示它的username --> 欢迎您:${user.username} <a href="/day07/login.jsp">登录</a> <a href="/day07/servlet/LogoutServlet">注销</a> <br /> <br /> <br /> </body> </html>
package test.login; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; //用户登陆servlet public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); List<User> list = DB.getAll(); for (User user : list) { // 如果用户登录成功 if (user.getUsername().equals(username) && user.getPassword().equals(password)) { HttpSession session = request.getSession(); // 手动设置session的有效期为30分钟 String sessionId = session.getId(); Cookie cookie = new Cookie("JSESSIONID", sessionId); cookie.setMaxAge(60 * 30); cookie.setPath(request.getContextPath()); response.addCookie(cookie); // 登录成功后要存入用户的登录状态,key是用户对象的String形式value就是用户对象(model)!!别的页面应该能用到 session.setAttribute("user", user); // 重定向到首页,URL重写方式 String url = response.encodeRedirectURL(request .getContextPath() + "/index.jsp"); response.sendRedirect(url); return; } } response.setCharacterEncoding("UTF-8"); response.setHeader("Content-type", "text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print("用户名或密码错误"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } // 模拟存储用户的数据库 class DB { private static List<User> list = new ArrayList<User>(); static { list.add(new User("aaa", "123")); list.add(new User("bbb", "123")); list.add(new User("ccc", "123")); } public static List<User> getAll() { return list; } }
package test.login; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; //注销servlet public class LogoutServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setHeader("Content-type", "text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(false); if (session == null) { // 没登录,重定向到首页 String url = response.encodeRedirectURL(request.getContextPath() + "/index.jsp"); response.sendRedirect(url); return; } // 从session中移除登录状态 session.removeAttribute("user"); // 重定向到首页,URL重写方式 String url = response.encodeRedirectURL(request.getContextPath() + "/index.jsp"); response.sendRedirect(url); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>用户登录</title> </head> <body> <form action="/day07/servlet/LoginServlet" method="post"> 用户名:<input type="text" name="username" /><br> 密码:<input type="password" name="password" /><br> <input type="submit" value="登录" /> </form> </body> </html>
相关文章推荐
- javaWeb_session案例一:09-利用session完成用户登陆
- java web session+cookie实现用户自动登录
- javaweb session完成用户登入
- JavaWeb_03_session_用户登录
- 通用的用户登录过滤器(SessionFilter)--【web.xml中配置】
- 利用Session完成用户的登录和注销 .
- javaweb登录页面验证码验证以及session中验证码值获取不同步的问题
- javaweb项目实现用户进行预约时对你弹窗提醒,离线登录后也可以进行弹窗
- 利用Session完成用户的登录和注销
- javaweb开发关于用户重复登录的问题
- Session小案例------完成用户登录
- Java设置session超时(失效)的时间 在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session 具体设置的方法有三种:
- JavaWeb 基于Session的用户登陆注销实现
- java_web用户的自动登录模块的实现
- JavaWeb登录、注销、退出、记住用户名和密码-session
- JavaWeb拦截器,查看用户是否登录过,未登录禁止访问页面并且跳转到登录页面
- Java web应用用户是否登录验证过滤处理机制
- java_web用户的自动登录模块的实现
- javaweb 同名用户登录剔除退出功能
- 利用Session完成用户的登录和注销(1)