httpsession

导读:本篇文章讲解 httpsession,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:
一个浏览器独占一个session对象
(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

Session和Cookie的主要区别在于:

Cookie是把用户的数据写给用户的浏览器。

Session技术把用户的数据写到用户独占的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>

运行效果:

打开地址栏输入:

httpsession

打开地址栏输入:

 httpsession

 再打开另一个不同浏览器浏览器页面:

httpsession

上面这些显示同一浏览器可以共享同个session对象,不同浏览器不能共用同一个session对象,他们的sessionID表明这一特性。 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94173.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!