IDEA(2020版)sevlet+session模拟用户登录
查看全文:IDEA(2020版)sevlet+session模拟用户登录 – 每天进步一点点
-
【任务目标】
通过所学Session知识,使用Session技术模拟用户登录。
当用户访问某个网站的首页时,首先会判断用户是否登录,如果已经登录,则在首页中显示用户登录信息,否则进入登录页面,实现用户登录功能,然后显示用户登录信息。
源代码下载(访问密码: 6429):https://url47.ctfile.com/f/64055047-1497444695-231929?p=6429
1.创建实体类
右击entity文件夹,选择New—>Java Class,名字为User

代码参考如下:
package cn.itcast.session.entity;public class User {private String username;private String 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;}
}
2.创建Servlet
右击Servlet,选择New—>Create New Servlet,名字为IndexServlet

IndexServlet.java参考代码如下:
package cn.itcast.session.servlet;
import cn.itcast.session.entity.User;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet(name = "IndexServlet",urlPatterns="/IndexServlet")
public class IndexServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {// 解决乱码问题response.setContentType("text/html;charset=utf-8");// 创建或者获取保存用户信息的Session对象HttpSession session = request.getSession();User user = (User) session.getAttribute("user");if (user == null) {response.getWriter().print("您还没有登录,请<a href='/chapter05/login.html'>登录</a>");} else {response.getWriter().print("您已登录,欢迎你," + user.getUsername() + "!");response.getWriter().print("<a href='/chapter05/LogoutServlet'>退出</a>");// 创建Cookie存放Session的标识号Cookie cookie = new Cookie("JSESSIONID", session.getId());cookie.setMaxAge(60 * 30);cookie.setPath("/chapter05");response.addCookie(cookie);}}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}
然后创建第二个LoginServlet,代码参考如下:
package cn.itcast.session.servlet;
import cn.itcast.session.entity.User;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet(name = "LoginServlet",urlPatterns="/LoginServlet")
public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");String username = request.getParameter("username");String password = request.getParameter("password");PrintWriter pw = response.getWriter();//假设正确的用户名 是itcast 密码是123if (("itcast").equals(username) && ("123").equals(password)) {User user = new User();user.setUsername(username);user.setPassword(password);request.getSession().setAttribute("user", user);response.sendRedirect("/chapter05/IndexServlet");} else {pw.write("用户名或密码错误,登录失败");}}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}
最后创建一个Servlet,名字为LogoutServlet,代码参考如下:
package cn.itcast.session.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;@WebServlet(name = "LogoutServlet",urlPatterns="/LogoutServlet")
public class LogoutServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {// 将Session对象中的User对象移除request.getSession().removeAttribute("user");response.sendRedirect("/chapter05/IndexServlet");}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}
创建完的结构如下:

3.创建登录页面
右击web文件夹,选择New—>HTML File,名字为login.html
查看全文:IDEA(2020版)sevlet+session模拟用户登录 – 每天进步一点点
