login.html代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<form action="/day04/servlet/LoginServlet" method="POST">
用户名:<input type="text" name="username"/>
密 码:<input type="password" name="password"/>
<input type="submit" value="登录"/>
</form>
<body>
This is my Login.html <br>
</body>
</html>
LoginServlet代码
package cn.itcast;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
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 doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//前三句防乱码+获取流
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
//再拿用户名和密码
String username=request.getParameter("username");
String password=request.getParameter("password");
List<User> list=Db1.getAll();
for (User user : list) {
if (user.getUsername().equals(username)&&user.getPassword().equals(password)) {
request.getSession().setAttribute("user", user);//帐号密码正确存入标记
response.sendRedirect("/day04/index.jsp");
return;
}
}
out.write("帐号或密码错误!");
}
}
class Db1{
public static List list=new ArrayList();
static{
list.add(new User("aaa","123"));
list.add(new User("bbb","456"));
list.add(new User("ccc","789"));
}
public static List getAll(){
return list;
}
}
User代码
package cn.itcast;
public class User {
private String username;
private String password;
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;
}
}
index.jsp代码
<%@ page language="java" import="java.util.*,cn.itcast.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
This is my Index JSP page. <br>
<%
User user = (User)session.getAttribute("user");
if(user!=null)
out.write("欢迎您:"+user.getUsername());
%>
<a href="/day04/Login.html">登录</a>
<a href="/day04/servlet/LogoutServlet">注销</a>
欢迎您:${user.username }
</body>
</html>
LogoutServlet代码
package cn.itcast;
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;
public class LogoutServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//前三句防乱码+获取流
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
HttpSession session=request.getSession(false);
if (session==null) {
out.print("session is null");
response.sendRedirect("/day04/index.jsp");
return;
}
//移除或者摧毁
session.removeAttribute("user");
//session.invalidate();response.sendRedirect("/day04/index.jsp");}}