小編給大家分享一下JSP Session如何處理,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)是一家集成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站制作公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。ASP程序員經(jīng)常要在global.asa文件內(nèi)處理Application_start,Session_Start等
事件,如:用戶驗(yàn)證、重定向不同編碼頁(yè)面等,十分方便,然而一向頗受歡迎的JSP并不很支持這種處理,除了商業(yè)化服務(wù)器JRun支持global.jsa以外,竟連應(yīng)用率極高的開放源碼服務(wù)器tomcat都不支持,這給JSP的開發(fā)造成不小障礙,雖然早期Tomcat(5.0以前版本)下可以通過(guò)以下方式實(shí)現(xiàn)Session-start事件處理
1. 添加Session
session.put(“bind.listener”,new MyListener(getservletContext())
2. 定義MyListener類
import Javax.servlet.http.*;
import javax.servlet.*;
public class MyListener implements HttpSessionBindingListener
{
ServletContext context;
public ODSessionListener(ServletContext context)
{
this.context=context;
}
public void valueBound(HttpSessionBindingEvent event)
{
System.out.println(“bound”);
}
public void valueUnBound(HttpSessionBindingEvent event)
{
System.out.println(“unbound”);
}
}
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
但處理前提是Session已經(jīng)建立,并且不能在Session創(chuàng)建時(shí)處理驗(yàn)證等事件,通過(guò)研究Servlet 2.4(Tomcat5.0內(nèi)建)終于找到一種可行方法,實(shí)現(xiàn)方法如下:
//---------------------- SessionListener.java----------------------------------------------------
package listeners;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
// ServletRequestListener為Servlet2.4新增接口
import javax.servlet.ServletRequestListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.http.HttpServletRequest;
public final class SessionListener
implements HttpSessionListener,ServletRequestListener {
private HttpServletRequest request;
public void requestDestroyed(ServletRequestEvent sre) { }
public void requestInitialized(ServletRequestEvent sre)
{
request=(HttpServletRequest)sre.getServletRequest();
}
public void sessionCreated(HttpSessionEvent event) {
String logMsg=event.getSession().getId()
+"' '"+request.getRemoteAddr()
+":"+request.getRemotePort();
log("sessionCreated('" + logMsg + "')");
}
public void sessionDestroyed(HttpSessionEvent event) {
log("sessionDestroyed('" + event.getSession().getId() + "')");
}
private void log(String message) {
System.out.println("SessionListener: " + message);
}
}
在開始接到客戶端請(qǐng)求(requestInitialized)時(shí),獲得當(dāng)前的HttpRequest對(duì)象保存在私有成員 request 中,這樣在Session創(chuàng)建時(shí)可以實(shí)現(xiàn)對(duì)Session用戶進(jìn)行驗(yàn)證,以及關(guān)閉Session,限制IP地址訪問(wèn)等,這里僅以記錄Session來(lái)源為例(SessionListener.java)
編譯這個(gè)類后還要在web.xml的host元素內(nèi)加入以下行:
以上是“JSP Session如何處理”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
分享文章:JSPSession如何處理-創(chuàng)新互聯(lián)
分享鏈接:http://jinyejixie.com/article34/dpoise.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、外貿(mào)建站、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容