测试语句为:http://localhost:8080/week09_day02Demo/login.jsp
login.jsp
<body>
<form action="LoginServlet" action="post">
用户名:<input type="text" name="userName" value="${cookie.cookieUserName.value }" /><br/><br/>
密 码:<input type="text" name="pwd" /><br/><br/>
<input type="submit" value="提交"/>
</form>
</body>
index.jsp
<body>
<%
String userName=(String)session.getAttribute("userName");
if(userName==null || "".equals(userName)){
response.sendRedirect(request.getContextPath()+"/login.jsp");
}else{
out.print(userName+"用户已登录");
}
%>
<a href="LoginOutServlet">退出</a>
</body>
error.jsp
<body>
用户名或者密码错误!
</body>
LoginServlet
package com.zhiyou.session.demo;
import java.io.IOException;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String userName=req.getParameter("userName");
String pwd=req.getParameter("pwd");
// String uName=URLDecoder.decode(userName);
if("张三".equals(userName) && "123456".equals(pwd)){
HttpSession session=req.getSession();
session.setAttribute("userName", userName);
//Cookie的使用
String uName=URLEncoder.encode(userName);
Cookie cookie=new Cookie("cookieUserName",uName);
resp.addCookie(cookie);
// req.setAttribute("userName", userName);
System.out.println("req.getContextPath():"+req.getContextPath());
resp.sendRedirect(req.getContextPath()+"/index.jsp");
}else{
resp.sendRedirect(req.getContextPath()+"/error.jsp");
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
}
LoginOutServlet
package com.zhiyou.session.demo;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/LoginOutServlet")
public class LoginOutServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session=req.getSession();
session.invalidate();
resp.sendRedirect(req.getContextPath()+"/login.jsp");
}
}