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>  
原文地址:https://www.cnblogs.com/lichone2010/p/3128178.html