下面我们用一个Java Bean来实现用户Session数据。
cd /usr/local/resin/doc/WEB-INF/classes/net/zixia
在我们的HelloWorld.java基础上进行修改,以便让用户可以定义自己的greeting语句。
JavaBean: HelloWorld.java:
package net.zixia;
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
public class HelloWorld implements HttpSessionBindingListener{
private String m_strMsg;
public HelloWorld(){
m_strMsg = new String();
}
public void set(String s){
m_strMsg = s;
}
public String greeting(){
return m_strMsg;
}
/** 每次新建立一个用户Session,valueBound都会被调用。
* System.out.println的信息会被resin记录在/usr/local/resin/log/stdout.log中
*/
public void valueBound( HttpSessionBindingEvent event ){
System.out.println(
"valueBound" );
}
/** 每个用户Session过期的时候,valueUnbound都会被调用。
* System.out.println的信息会被resin记录在/usr/local/resin/log/stdout.log中
*/
public void valueUnbound( HttpSessionBindingEvent event ){
System.out.println(
"valueUnbound" );
}
}
JSP Page: HelloWorld.jsp
<jsp:useBean id="HelloWorld"
class="net.zixia.HelloWorld" scope=session/>
<html>
<body>
<h1>
<%
String Msg = request.getParameter("Msg");
if( null==Msg ){
out.println( HelloWorld.greeting() );
out.println( "Greeted!" );
}else{
HelloWorld.set( Msg );
out.println( "Greeting message
saved!" );
}
%>
</h1>
</body>
</html>
查看结果:
浏览http://ur-resin-host:8080/HelloWorld.jsp
null Greeted!
因为HelloWorld Bean中的m_strMsg还没有存入具体的值。

浏览http://ur-resin-host:8080/HelloWorld.jsp?Msg=SweetHeart
Greeting message saved!
现在HelloWorld Bean中的m_strMsg的值为SweetHeart。

浏览http://ur-resin-host:8080/HelloWorld.jsp
SweetHeart Greeted!
将HelloWorld Bean中的m_strMsg读取出来显示。