Session 案例:简单完成登录功能
1,LoginServlet.java 登录Servlet 用Session保存登陆成功用户,代码如下:
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; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String username = request.getParameter("username"); String password = request.getParameter("password"); User user=DB.find(username, password); if(user==null){ out.write("用户名或密码有误."); return; } request.getSession().setAttribute("user", user);//让用户Session中存一标记登陆成功 response.sendRedirect("/MyWebStart/index.jsp"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
2,User类存储用户名和密码,代码如下:
public class User { private String username; private String password; public User() { super(); } public User(String username, String password) { super(); this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
3,DB类,模拟数据库实现简单的存储用户名和密码,代码如下:
import java.util.ArrayList; import java.util.List; public class DB { private static List<User> list = new ArrayList(); static{ list.add(new User("aaa","123")); list.add(new User("bbb","123")); list.add(new User("ccc","123")); } public static User find(String username,String password){ for(User user:list){ if(user.getUsername().equals(username)&&user.getPassword().equals(password)){ return user; } } return null; } }
4,Login.html
<body> <form action="/MyWebStart/servlet/LoginServlet" method="post"> 用户名:<input type="text" name="username"></br> 密码:<input type="password" name="password"></br> <input type="submit" value="提交"> </form> </body>
5,index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.lich.sample.login.User"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Index.jsp</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 欢迎您:<% User user = (User)session.getAttribute("user"); if(user!=null)out.write(user.getUsername()); %> 来访网站</br> <a href="/MyWebStart/Login.html">登陆</a> </body> </html>