•
在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:
一个浏览器独占一个session对象
(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。
在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:
一个浏览器独占一个session对象
(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。
•
Session和Cookie的主要区别在于:
Session和Cookie的主要区别在于:
–
Cookie是把用户的数据写给用户的浏览器。
Cookie是把用户的数据写给用户的浏览器。
•
Session技术把用户的数据写到用户独占的session中。
Session技术把用户的数据写到用户独占的session中。
•
Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。
Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。
从上面的概述中可以总结出,同一个浏览器用户可以共享session,不同浏览器用户不能共享其中的session。
session1.java代码:
package com.haidi8.session1;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class session1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//
String name = request.getParameter("name");
//得到一个session对象
HttpSession session= request.getSession();
session.setAttribute("name", name);
response.getWriter().write(session.getId());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
session2.java代码:
package com.haidi8.session1;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class session2 extends HttpServlet {
public 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();
String name = (String) session.getAttribute("name");
if(name!=null){
out.print(name);
}else{
out.print("你不能直接访问资源");
}
out.print(session.getId());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
web.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<servlet>
<servlet-name>session1</servlet-name>
<servlet-class>com.haidi8.session1.session1</servlet-class>
</servlet>
<servlet>
<servlet-name>session2</servlet-name>
<servlet-class>com.haidi8.session1.session2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>session1</servlet-name>
<url-pattern>/session1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>session2</servlet-name>
<url-pattern>/session2</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
运行效果:
打开地址栏输入:
打开地址栏输入:
再打开另一个不同浏览器浏览器页面:
上面这些显示同一浏览器可以共享同个session对象,不同浏览器不能共用同一个session对象,他们的sessionID表明这一特性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94173.html