如下面这段代码:
package test;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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 TestWithBean extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession(true);
Bean bean= (Bean) session.getAttribute("bean");
if (bean==null) {
bean=new Bean();
}
bean.setSessionId(session.getId());
bean.setSessionIsNew(session.isNew());
bean.setSessionLastAccessedTime(session.getLastAccessedTime());
bean.setSessionMaxInactiveInterval(session.getMaxInactiveInterval());
bean.setRequestedSessionIdFromCookie(request.isRequestedSessionIdFromCookie());
bean.setRequestedSessionIdFromURL(request.isRequestedSessionIdFromURL());
bean.setRequestedSessionIdValid(request.isRequestedSessionIdValid());
bean.setSessionCreationTime(session.getCreationTime());
session.setAttribute("bean",bean);
String jspAddress="/WEB-INF/share/show.jsp";
RequestDispatcher dispatcher=request.getRequestDispatcher(jspAddress);
dispatcher.forward(request,response);
}
}
package test;
public class Bean {
String sessionId;
long sessionCreationTime;
long sessionLastAccessedTime;
int sessionMaxInactiveInterval;
boolean sessionIsNew;
boolean requestedSessionIdFromCookie;
boolean requestedSessionIdFromURL;
boolean requestedSessionIdValid;
public void setSessionId(String sessionId){
this.sessionId = sessionId;
}
public void setSessionCreationTime(long sessionCreationTime){
this.sessionCreationTime = sessionCreationTime;
}
public void setSessionLastAccessedTime(long sessionLastAccessedTime){
this.sessionLastAccessedTime = sessionLastAccessedTime;
}
public void setSessionMaxInactiveInterval(int sessionMaxInactiveInterval){
this.sessionMaxInactiveInterval = sessionMaxInactiveInterval;
}
public void setRequestedSessionIdValid(boolean requestedSessionIdValid) {
this.requestedSessionIdValid = requestedSessionIdValid;
}
public void setSessionIsNew(boolean sessionIsNew) {
this.sessionIsNew = sessionIsNew;
}
public void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie) {
this.requestedSessionIdFromCookie = requestedSessionIdFromCookie;
}
public void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL) {
this.requestedSessionIdFromURL = requestedSessionIdFromURL;
}
public boolean isSessionIsNew() {
return sessionIsNew;
}
public boolean isRequestedSessionIdFromCookie() {
return requestedSessionIdFromCookie;
}
public boolean isRequestedSessionIdFromURL() {
return requestedSessionIdFromURL;
}
public boolean isRequestedSessionIdValid() {
return requestedSessionIdValid;
}
public String getSessionId() {
return sessionId;
}
public long getSessionCreationTime() {
return sessionCreationTime;
}
public long getSessionLastAccessedTime() {
return sessionLastAccessedTime;
}
public int getSessionMaxInactiveInterval() {
return sessionMaxInactiveInterval;
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN" >
<jsp:useBean id="bean" class="test.Bean" scope="session"/>
<html>
<head>
<title>Test</title>
</head>
<body>
<ul>Session Information
<li>SessionId:<jsp:getProperty property="sessionId" name="bean"/>
<li>SessionCreationTime:<jsp:getProperty property="sessionCreationTime" name="bean"/>
<li>SessionLastAccessedTime:<jsp:getProperty property="sessionLastAccessedTime" name="bean"/>
<li>SessionMaxInactiveInterval:<jsp:getProperty property="sessionMaxInactiveInterval" name="bean"/>
<li>SessionIsNew:<jsp:getProperty property="sessionIsNew" name="bean"/>
</ul>
<ul>Request Information
<li>IsRequestedSessionIdFromCookie:<jsp:getProperty property="requestedSessionIdFromCookie" name="bean"/>
<li>IsRequestedSessionIdFromURL:<jsp:getProperty property="requestedSessionIdFromURL" name="bean"/>
<li>IsRequestedSessionIdValid:<jsp:getProperty property="requestedSessionIdValid" name="bean"/>
</ul>
</body>
</html>
可以看到jsp页面中用到了Bean,请注意,id那里和servlet中的session.setAttribute方法的第一个参数相同。如果不同的话,就不会得到正确的结果。我刚开始让id那里和第一个参数不一样,结果会得到bean是空的错误。