1、session是什么?

会话技术,保存共享的会话数据至服务器端

2.session和cookie的区别;

cookie:服务器创建,保存在浏览器
session:服务器创建,保存在服务器

3.session原理:

浏览器访问服务器,服务器创建session对象和ID属性, session对象存储在服务器,ID属性带回浏览器(用cookie带回去),浏览器再次访问服务器,就带着ID过来,服务器选择相应的session对象进行“服务”
session借助于cookie实现

4、sessior的API

获取或者创建session: request.getSession(boolean create)
request.getSession ()
获得session的ID属性:session. getID()

5.设置session生存时长

HttpSession session=request. getSession();
//设置保存ID属性的cookie的生存时长
Cookie cookie=new Cookie( name:"JSESSIONID", session.getId());
cookie. setMaxAge(60);
out.print(session.getId());
response.addCookie(cookie);

6.session域的应用

session域的应用:共享数据、传递数据、—个存一个取------域范围一次会话

setAttribute(String name.Objeet obj)存数据
getAttribute(String name)取数据

SessionServlet

@WebServlet("/SessionServlet")
public class SessionServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        //获取session对象
        HttpSession session=request.getSession();
        //存入数据
        session.setAttribute("student","yrq");
//        response.addCookie(cookie);
        response.sendRedirect("/GetSessionServlet");
    }
}

GetSessionServlet

@WebServlet("/GetSessionServlet")
public class GetSessionServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        //获取session对象
        HttpSession session=request.getSession();
        out.print(session.getAttribute("student"));
    }
}

超链接

(1)在SessionServlet中

session.setAttribute(name,value);存值的时候;
value可以是一个url

session.setAttribute("Blog","https://blog.csdn.net/YANG_xiao_QI");

#将url存入servlet对象中

(2)在GetSessionServlet中获取存的value

  String url=(String)session.getAttribute("Blog");
        out.print("<a href='"+url+"'>我的博客</a>");

#定义一个url存放获取到的值(即存入的url)
#页面显示超链接

#注意< a href=’"+url+"’>我的博客< /a>
+号是连接符,+号后面跟着的url是getAttribute()获取到的网址
< a href=" # "> 是超链接标签的格式,=号后本应该加双引号;
但双引号中间不能嵌套双引号,连接url时已经用了双引号;
"+url+"所以用单引号代替< a href=’ #’>

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐