登录案例,登陆成功之后跳转到一个个人主页,欢迎您 xxx
1.通过cookie实现
结构:
代码:
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/app/loginz" method="post">
<input type="text" name="username"><br>
<input type="password" name="password"><br>
<input type="submit">
</form>
</body>
</html>
LoginServlet.java
@WebServlet("/loginz")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
//不做任何校验,只要输入就当作登录成功
Cookie cookie = new Cookie("username", username);
cookie.setMaxAge(180);
cookie.setPath(request.getContextPath() + "/infog");
response.addCookie(cookie);
response.getWriter().println("登录成功,即将跳转至个人主页....");
response.setHeader("refresh", "2;url=" + request.getContextPath() + "/infog");
//Context域不可以
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
InfoServlet.java
@WebServlet("/infog")
public class InfoServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//
String username = "";
Cookie[] cookies = request.getCookies();
if(cookies != null){
for (Cookie cookie : cookies) {
if("username".equals(cookie.getName())){
username = cookie.getValue();
cookie.setMaxAge(0);
cookie.setPath(request.getContextPath() + "/info");
response.addCookie(cookie);
}
}
}
response.setContentType("text/html;charset=utf-8");
response.getWriter().println("<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>Title</title>\n" +
"</head>\n" +
"<body>");
response.getWriter().println("欢迎您," + username);
response.getWriter().println("</body>\n" +
"</html>");
}
}
结果:
从另一浏览器直接访问:
DelCookieServlet.java(删除cookie)
@WebServlet("/dell")
public class DelCookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//通过访问该servlet,将cookie信息删除
Cookie[] cookies = request.getCookies();
if(cookies != null){
for (Cookie cookie : cookies) {
if("username".equals(cookie.getName())){
cookie.setMaxAge(0);
//需要把这个告诉给浏览器
response.addCookie(cookie);
}
}
}
}
}
结果:
2.通过session实现(关闭浏览器仍然可以访问到session中的数据功能)
结构:
代码:
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/app/loginz" method="post">
<input type="text" name="username"><br>
<input type="password" name="password"><br>
<input type="submit">
</form>
</body>
</html>
LoginServlet.java
@WebServlet("/loginz")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
//不做任何校验,只要输入就当作登录成功
Cookie cookie = new Cookie("username", username);
cookie.setMaxAge(180);
cookie.setPath(request.getContextPath() + "/infog");
response.addCookie(cookie);
response.getWriter().println("登录成功,即将跳转至个人主页....");
response.setHeader("refresh", "2;url=" + request.getContextPath() + "/infog");
//Context域不可以
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
InfoServletSession.java
@WebServlet("/infos")
public class InfoServletSession extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//
String username = (String) request.getSession().getAttribute("username");
if (username==null){
username="";
}
response.setContentType("text/html;charset=utf-8");
response.getWriter().println("<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>Title</title>\n" +
"</head>\n" +
"<body>");
response.getWriter().println("欢迎您," + username);
response.getWriter().println("</body>\n" +
"</html>");
}
}
结构:
进入Tomcat管理界面:(点击关闭项目)
进入部署目录: