简述一下过程,文件命名挺乱的,说一下访问流程
1.首先在浏览器中访问LoginCookie这个Servlet,当访问时这个Servlet首先会判断一下浏览器中是否有cookie,若是存在则对其进行验证,验证通过再将其保存到session中,进行跳转到shopping.jsp这个文件中,否则,login.jsp页面中进行登录;
2.假如没有cookie,它会跳转到login.jsp页面中让你登录,表单会提交到Login.java这个Servlet中,它会对数据进行验证,若验证通过,则新建cookie,并将用户名和密码保存到浏览器的cookie中,直到下一次访问,再进行1;
Login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>login</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/login" align="center" method="post">
姓名:<input name="userName" type="text" >
<br>
密码:<input name="userPwd" type="password">
<br>
不保存用户名:<input type="radio" name="ch" value="0" checked="checked"><br>
保存用户名:<input type="radio" name="ch" value="60">一分钟
<input type="radio" name="ch" value="3600">一小时
<input value="提交" type="submit">
</form>
</body>
</html>
Login.java
import java.io.IOException;
import java.io.PrintWriter;
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;
public class Login extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
HttpSession session = request.getSession();
String ch = request.getParameter("ch");
int flag = Integer.parseInt(ch);
String userName = request.getParameter("userName");
String userPwd = request.getParameter("userPwd");
if ("admin".equals(userName)&&"123".equals(userPwd)) {
if(flag>0){
Cookie c1 = new Cookie("userName", userName);
Cookie c2 = new Cookie("userPwd", userPwd);
c1.setMaxAge(flag);
c2.setMaxAge(flag);
response.addCookie(c1);
response.addCookie(c2);
}
session.setAttribute("userName", userName);
response.sendRedirect(request.getContextPath()+"/shopping.jsp");
}else{
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
LoginCookie.java
import java.io.IOException;
import java.io.PrintWriter;
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;
public class LoginCookie extends HttpServlet {
String userName;
String userPwd;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
HttpSession session = request.getSession();
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(Cookie cookie :cookies){
if("userName".equals(cookie.getName())){
userName = cookie.getValue();
}else if("userPwd".equals(cookie.getName())){
userPwd = cookie.getValue();
}
}
if ("admin".equals(userName)&&"123".equals(userPwd)) {
session.setAttribute("userName", userName);
response.sendRedirect(request.getContextPath()+"/shopping.jsp");
}else{
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
}else{
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}