到底什么是session

来源:互联网 发布:淘宝联盟中的优惠券 编辑:程序博客网 时间:2024/06/04 17:48

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 necessaryHttpSession session = req.getSession();// Add a UserNamesession.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

原创粉丝点击