什么是Session;request.getSession().setAttribute()

您所在的位置:网站首页 用户名null是什么意思 什么是Session;request.getSession().setAttribute()

什么是Session;request.getSession().setAttribute()

2024-07-15 08:53| 来源: 网络整理| 查看: 265

Session:会话控制,是服务器为了保存用户状态而创建的一个特殊的对象。=>用于存储信息的一个对象

 

 

 当我们在服务端使用session时,首先要获取session,下面这个图就对服务器获取session的一些情况进行了说明。

 

 

 

Session常用方法

————————————————————————————————resquest.getSession():得到请求游览器(客户端)对应的session。如果没有,那么就创建应该新的session。如果有那么就返回对应的session

setAttribute(String s, Object o):在session存放属性

getAttribute(String s):从session中得到s所对应的属性

========================================================

removeAttribute(String s):从session中删除s对应的属性

getId():得到session所对应的id

invalidate():使session立即无效

setMaxInactiveInterval(int i):设置session最大的有效时间。注意,这个有效时间是两次访问服务器所间隔的最大时间,如果超过最大的有效时间,那么这个session就失效了。

以房产管理系统登陆界面举例【login.jsp】

登录 #cont { text-align: center; margin-left: 240px; padding: 20px; } 用户名:; ; ;密码:; 客户 经纪人 管理员 ;;;;;; ;;;;;;;; ${mes}

【LoginServlet.java】

@WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 设置对客户端请求进行重新编码,防止乱码 req.setCharacterEncoding("UTF-8"); //它是一种获取参数的方法,把jsp文件中的数据读取出来,然后就可以封装利用 String type = req.getParameter("type"); // 校验 System.out.println(type); if (type == null) { /* 在学习jsp与后台数据交互内容时,我们会接触到两种类型的跳转 客户首先发送一个请求到服务器端,服务器端发现匹配的servlet,并指定它去执行,当这个servlet执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的test.jsp 即在servlet中调用转发语句 假设你去办理某个执照, 重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。 转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。 */ req.getRequestDispatcher("/WEB-INF/login.jsp").forward(req, resp); } switch (type) { case "trueLogin": { // 接收信息,得到用户名和密码 String userName = req.getParameter("username"); String passWord = req.getParameter("password"); String state = req.getParameter("state"); if (userName == null || passWord == null || "".equals(userName.trim()) || "".equals(passWord.trim())) { req.getSession().setAttribute("mes", "您的账号或密码不能为空!"); resp.sendRedirect("/LoginServlet"); return; } if (state.equals("客户")) { CustomerServiceImpl customerService = new CustomerServiceImpl(); Customer customer = customerService.login(userName); if (customer == null) { req.getSession().setAttribute("mes", "您的账号不正确!请重新输入..."); resp.sendRedirect("/LoginServlet"); return; } if (customer.getPassword().equals(passWord)) { req.getSession().setAttribute("customer", customer); resp.sendRedirect("/Customer?type=toIndividual"); } else { req.getSession().setAttribute("mes", "您的密码不正确!请重新输入..."); resp.sendRedirect("/LoginServlet"); } } if (state.equals("经纪人")) { RealestateServiceImpl realestateService = new RealestateServiceImpl(); Realestate realestate = realestateService.login(userName); if (realestate == null) { req.getSession().setAttribute("mes", "您的账号不正确!请重新输入..."); resp.sendRedirect("/LoginServlet"); return; } if (realestate.getPassword().equals(passWord)) { req.getSession().setAttribute("realestate", realestate); resp.sendRedirect("/Property?type=toToIndividual"); return; } else { req.getSession().setAttribute("mes", "您的密码不正确!请重新输入..."); resp.sendRedirect("/LoginServlet"); } } if (state.equals("管理员")) { AdminService adminService = new AdminServiceImpl(); AdminEntity adminEntity = adminService.getAdminByUserName(userName); if (adminEntity == null) { req.getSession().setAttribute("mes", "您的账号不正确!请重新输入..."); resp.sendRedirect("/LoginServlet"); return; } if (adminEntity.getPwd().equals(passWord)) { req.getSession().setAttribute("adminEntity", adminEntity); resp.sendRedirect("/AdminServlet?type=admin"); return; } else { req.getSession().setAttribute("mes", "您的密码不正确!请重新输入..."); resp.sendRedirect("/LoginServlet"); return; } } break; } case "toRes": { req.getRequestDispatcher("/WEB-INF/register.jsp").forward(req, resp); break; } case "trueRes": { String userName = req.getParameter("username"); String passWord = req.getParameter("password"); String z_passWord = req.getParameter("z_password"); Integer state = Integer.valueOf(req.getParameter("state")); if (state == null || "".equals(state) || userName == null || passWord == null || z_passWord == null || userName.trim().equals("") || passWord.trim().equals("") || z_passWord.trim().equals("")) { req.getSession().setAttribute("mes", "您的账号、密码、确认密码不能为空!"); req.getRequestDispatcher("/WEB-INF/register.jsp").forward(req, resp); } else if (passWord.equals(z_passWord)) { AdminService adminService = new AdminServiceImpl(); AdminEntity adminEntity = new AdminEntity(); adminEntity.setUserName(userName); adminEntity.setPwd(passWord); adminEntity.setState(state); boolean b = adminService.addUser(adminEntity); if (b) { req.getSession().setAttribute("mes", "注册成功..."); resp.sendRedirect("/LoginServlet"); } } else { req.getSession().setAttribute("mes", "您输入的两次密码不一致!"); req.getRequestDispatcher("/WEB-INF/register.jsp").forward(req, resp); } break; } case "loginExit": { resp.sendRedirect("/LoginServlet"); } } } }

 

参考链接:https://blog.csdn.net/m0_51545690/article/details/123384986

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3