初学者提问: HttpSession类是干嘛用的?(200分)

  • 主题发起人 主题发起人 panwen
  • 开始时间 开始时间
P

panwen

Unregistered / Unconfirmed
GUEST, unregistred user!
我在java文档中找却怎么也找不到这个类,清各位高手指导一下。
还有,我在学习在JBuilder中开发Struts应用,但是书中的例子我看不太懂,能给讲一讲Struts的大概的原理吗?
 
在J2EE中,HttpSession是个接口
javax.servlet.http
Interface HttpSession
--------------------------------------------------------------------------------
public interface HttpSession
Provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user.
The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persists for a specified time period, across more than one connection or page request from the user. A session usually corresponds to one user, who may visit a site many times. The server can maintain a session in many ways such as using cookies or rewriting URLs.
This interface allows servlets to
View and manipulate information about a session, such as the session identifier, creation time, and last accessed time
Bind objects to sessions, allowing user information to persist across multiple user connections
When an application stores an object in or removes an object from a session, the session checks whether the object implements HttpSessionBindingListener. If itdo
es, the servlet notifies the object that it has been bound to or unbound from the session. Notifications are sent after the binding methods complete. For session that are invalidated or expire, notifications are sent after the session has been invalidatd or expired.
When container migrates a session between VMs in a distributed container setting, all session atributes implementing the HttpSessionActivationListener interface are notified.
A servlet should be able to handle cases in which the clientdo
es not choose to join a session, such as when cookies are intentionally turned off. Until the client joins the session, isNew returns true. If the client chooses not to join the session, getSession will return a different session on each request, and isNew will always return true.
Session information is scoped only to the current web application (ServletContext), so information stored in one context will not be directly visible in another.

See Also:
HttpSessionBindingListener, HttpSessionContext
--------------------------------------------------------------------------------
Method Summary
java.lang.Object getAttribute(java.lang.String name)
Returns the object bound with the specified name in this session, or null if no object is bound under the name.
java.util.Enumeration getAttributeNames()
Returns an Enumeration of String objects containing the names of all the objects bound to this session.
long getCreationTime()
Returns the time when this session was created, measured in milliseconds since midnight January 1, 1970 GMT.
java.lang.String getId()
Returns a string containing the unique identifier assigned to this session.
long getLastAccessedTime()
Returns the last time the client sent a request associated with this session, as the number of milliseconds since midnight January 1, 1970 GMT, and marked by the time the container recieved the request.
int getMaxInactiveInterval()
Returns the maximum time interval, in seconds, that the servlet container will keep this session open between client accesses.
ServletContext getServletContext()
Returns the ServletContext to which this session belongs.
HttpSessionContext getSessionContext()
Deprecated. As of Version 2.1, this method is deprecated and has no replacement. It will be removed in a future version of the Java Servlet API.
java.lang.Object getValue(java.lang.String name)
Deprecated. As of Version 2.2, this method is replaced by getAttribute(java.lang.String).
java.lang.String[] getValueNames()
Deprecated. As of Version 2.2, this method is replaced by getAttributeNames()
void invalidate()
Invalidates this session then
unbinds any objects bound to it.
boolean isNew()
Returns true if the clientdo
es not yet know about the session or if the client chooses not to join the session.
void putValue(java.lang.String name, java.lang.Object value)
Deprecated. As of Version 2.2, this method is replaced by setAttribute(java.lang.String, java.lang.Object)
void removeAttribute(java.lang.String name)
Removes the object bound with the specified name from this session.
void removeValue(java.lang.String name)
Deprecated. As of Version 2.2, this method is replaced by removeAttribute(java.lang.String)
void setAttribute(java.lang.String name, java.lang.Object value)
Binds an object to this session, using the name specified.
void setMaxInactiveInterval(int interval)
Specifies the time, in seconds, between client requests before the servlet container will invalidate this session.
 
我也来学习
 
我也正好在用它的。
HttpSession,即会话对象,也就是WEB环境下的Session,我们可以向这个Session写入一些对象,以供后继处理用,当然,Session还有标识连接的作用的。
Struts模式你可以到http://www.cn-java.com/community/去看看,
还有IBM中国网站也有一个学Java的好地方,具体网站,我一时找不着的。
Struts模式是一个MVC模式,主要过程如下:(说得不全请原谅)
一个ActionServlet,它是控制器,负责把WEB页上合适的请求发给合适的处理对象。一般程序员不需要对它进行于处理。
处理对象是一个Action的子类,程序员要对继承它并重载它的execute方法,在这个方法中,程序员要对请求的数据进行处理,这个处理通常是调用一些业务处理的Bean,当处理完之后,还要返回一个ActionMapping对象,告诉系统,现在要跳到哪一个页面。
在JSP页面上,通常应该没有java代码的,要表现出Action的execute方法处理得到的数据,应该用标签库来显示,比如Struts-bean,Struts-html,Struts-logic。
至于ActionMapping对象,它包含了一些映射规则的,比如什么样的请求对象到什么样处理类(即Action的子类),以及包含用户请求的数据的类,还在跳转的页面等。这些ActionMapping对象通常在Struts-config.xml中进行配置。
以后有时间再谈,Struts本身也在变化,以上就有说漏的地方的。
 
to:dedema
不好意思,积分分配反了,呵呵
 
后退
顶部