周四,今天雪又开始下了,这些天最大的雪也就是今天了。昨天下午乒乓球课考试,b组淘汰赛三连胜。
今天下午开始,一片片雪花开始飘落,我们顶着风雪,来到第九实验楼,路上的雪已有六公分厚,还在不停的下,一直下。
又学了一些新的知识,不过好像现在我的web用不了,以后好好研究,为之后的开学考做准备。
seession是一个为了保存用户状态而创建的一个特殊的对象
其本质上相当于Map,里面可以存放多个键值对,是以key-value进行存放的(key必须是一个字符串,value是一个对象)
该对象主要保持相应数据的唯一性(一般用于存储主键)
session的常用方法
1、获取session对象的方法------request.getSession();
2、存放相关属性的方法------session.setAttribute(String s,Object o);
3、从session中获取存放的属性方法------session.getAttribute(String s);
4、删除session属性的方法------session.removeAttribute(String s);
5、得到session所对应的id------session.getId();
6、使得session立即无效------session.invalidate();
7、设置session存活的最长时间------session.setMaxInactiveInterval(int i);
实例
//mainServlet.java package com.example.servlet; 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; import java.io.IOException; import java.io.PrintWriter; @WebServlet("/mainServlet") public class mainServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); HttpSession session=req.getSession(); Object username=session.getAttribute("username"); PrintWriter pw=resp.getWriter(); if(username!=null){ pw.write("登录成功!"); }else{ pw.write("登录失败!"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
<!--index.jsp--> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>注册页面</title> </head> <body> <center> <form action="Session" method="post"> <tr> <td>用户名:</td> <td><input type="text" name="username" placeholder="请输入用户名"></td> </tr> <p> <tr> <td>密码:</td> <td><input type="text" name="password" placeholder="请输入密码"></td> </tr> <p> <tr> <button type="submit" value="提交">提交</button> </tr> </form> </center>
//Session.java package com.example.mapper; import com.example.pojo.User; 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; import java.io.IOException; import java.io.PrintWriter; @WebServlet("/Session") public class Session extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username=req.getParameter("username"); String password=req.getParameter("password"); if(username.equals("tom")&&password.equals("tom123")){ HttpSession session=req.getSession(); session.setMaxInactiveInterval(60*60*24); session.setAttribute("username",username); resp.sendRedirect(req.getContextPath()+"/mainServlet"); }else{ resp.setContentType("text/html;charset=utf-8"); PrintWriter pw=resp.getWriter(); pw.write("账号或密码错误!"); pw.write("<a href='"+req.getContextPath()+"/index.jsp'></a>"); } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
与Cookie的比较
可以看出来,与Cookie相比较的话,Session更具有安全性,范围更广,可以在不同页面共享数据,使用更为方便;
标签:12,14,resp,req,session,import,servlet,javax
From: https://www.cnblogs.com/kongxiangzeng/p/17919032.html