到底什么是session

Before going into the details of the HttpSessionBindingListener we should firstly know about the sessions. As we know that Http protocol is a "stateless" protocol. The term stateless means that it can't persist the information. It can't remember the previous transactions. Whenever a client makes a request for any resources to the server, the server receives the request and processes the request and sends back the response. After sending the response the server closes the connection and forgets about the previous requests. Whenever a client sends any request to the server, the server treats each request as a new request. To remove this we have been provided the facility of the session. In session tracking whenever a client sends a request to the server then server creates a unique id for that request and sends back the unique id to the client along with the response object, now whenever a client sends a request to the server it also sends a unique id with it so that the server can know from where the request is coming.

session其实就是一个类似于身份证号码式的字符串,附着到一个对象上,或者说由服务器强加到一个对象上。

This interface has two methods:
valueBound(HttpSessionBindingEvent event): It notifies the object that is being bound to a session and is responsible for identifying the session.
valueUnBound(HttpSessionBindingEvent event): It notifies the object that is being unbound from a session and is responsible for identifying the session.

package roseindia;

import javax.servlet.*;
import javax.servlet.http.*;

public class UserName implements HttpSessionBindingListener {
	ServletContext context;

	public UserName(ServletContext context) {
		this.context = context;
	}

	public void valueBound(HttpSessionBindingEvent event) {
		context.log("The value bound is " + event.getName());
	}

	public void valueUnbound(HttpSessionBindingEvent event) {
		context.log("The value unbound is " + event.getName());
	}
}

package roseindia;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SessionBindingListenerExample extends HttpServlet {
	public void doGet(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		res.setContentType("text/html");
		PrintWriter out = res.getWriter();
		// Get the current session object, create one if necessary
		HttpSession session = req.getSession();
		// Add a UserName
		session.setAttribute("name", new UserName(getServletContext())); 
		out.println("This is the example of HttpSessionBindingListener");
	}
}

<servlet>
		<servlet-name>obama</servlet-name>
		<servlet-class>roseindia.SessionBindingListenerExample</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>obama</servlet-name>
		<url-pattern>/gplus</url-pattern>
	</servlet-mapping> 

原文: http://www.roseindia.net/servlets/SessionBindingListenerExample.shtml

源代码:http://pan.baidu.com/share/link?shareid=471680&uk=3878681452

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值