导航:首页 > 编程语言 > jspsession超时

jspsession超时

发布时间:2024-06-11 11:24:04

jsp 中设置session中 某一值的过期时间

jsp中设置session的超时时间是固定的,不能针对某一变量设置。
方法一:在web.xml中配置超时时内间:
<web-app ...>
容<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>

方法二:在应用程序中用setMaxInactiveInterval()方法设置:
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);

java:怎么在jsp页面实现超时退出

在页头部分判断session是否已经为空或这session中包含的用户属性是否为空,如果为空则跳转至首页或登录页。


For example:

====================


<%
StringonlySession=(String)request.getParameter("user");
%>
<scripttype="text/javascript">
varonlySession="<%=user%>";

if(onlySession=="null"||onlySession==""){
alert("用户超时,请重新登录!");
}

varindexPath="<c:urlvalue='/index.jsp'/>";//indexpageURL
if(window.parent){
if(window.parent.parent){
if(window.parent.parent.parent){
window.parent.parent.parent.location=indexPath;
}else{
window.parent.parent.location=indexPath;
}
}else{
window.parent.location=indexPath;
}
}else{
window.location=indexPath;
}
</script>

如whatismvc 所述一般的项目会添加过滤器,判断是session是否为空。但如果只单纯测试JSP的写法,上面的即可。

③ 鎻愬崌JSP椤甸潰鍝嶅簲閫熷害鐨勪竷澶х樼睄缁濇嫑


鏂规硶涓锛氬湪servlet鐨刬nit()鏂规硶涓缂撳瓨鏁版嵁
褰撳簲鐢ㄦ湇鍔″櫒鍒濆嬪寲servlet瀹炰緥涔嬪悗锛屼负瀹㈡埛绔璇锋眰鎻愪緵鏈嶅姟涔嬪墠锛屽畠浼氳皟鐢ㄨ繖涓猻ervlet鐨刬nit()鏂规硶銆傚湪涓涓猻ervlet鐨勭敓鍛藉懆鏈熶腑锛宨nit()鏂规硶鍙浼氳璋冪敤涓娆°傞氳繃鍦╥nit()鏂规硶涓缂撳瓨涓浜涢潤鎬佺殑鏁版嵁鎴栧畬鎴愪竴浜涘彧闇瑕佹墽琛屼竴娆$殑銆佽楁椂鐨勬搷浣滐紝灏卞彲澶уぇ鍦版彁楂樼郴缁熸ц兘銆
渚嬪傦紝閫氳繃鍦╥nit()鏂规硶涓寤虹珛涓涓狫DBC杩炴帴姹犳槸涓涓鏈浣充緥瀛愶紝鍋囪炬垜浠鏄鐢╦dbc2.0鐨凞ataSource鎺ュ彛鏉ュ彇寰楁暟鎹搴撹繛鎺ワ紝鍦ㄩ氬父鐨勬儏鍐典笅锛屾垜浠闇瑕侀氳繃JNDI鏉ュ彇寰楀叿浣撶殑鏁版嵁婧愩傛垜浠鍙浠ユ兂璞″湪涓涓鍏蜂綋鐨勫簲鐢ㄤ腑锛屽傛灉姣忔SQL璇锋眰閮借佹墽琛屼竴娆JNDI鏌ヨ㈢殑璇濓紝閭g郴缁熸ц兘灏嗕細鎬ュ墽涓嬮檷銆傝В鍐虫柟娉曟槸濡備笅浠g爜锛屽畠閫氳繃缂撳瓨DataSource锛屼娇寰椾笅涓娆SQL璋冪敤鏃朵粛鐒跺彲浠ョ户缁鍒╃敤瀹冿細
浠ヤ笅鏄寮曠敤鐗囨碉細
public class ControllerServlet extends HttpServlet{
private javax.sql.DataSource testDS = null;
public void init(ServletConfig config) throws ServletException銆{
super.init(config);
Context ctx = null;
try{
ctx = new InitialContext();
testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS");
}catch(NamingException ne){ne.printStackTrace();}
}catch(Exception e){e.printStackTrace();}
}銆
public javax.sql.DataSource getTestDS(){銆
return testDS;銆
}銆
...
...
}
鏂规硶 2:绂佹servlet鍜孞SP 鑷鍔ㄩ噸杞(auto-reloading)
Servlet/JSP鎻愪緵浜嗕竴涓瀹炵敤鐨勬妧鏈锛屽嵆鑷鍔ㄩ噸杞芥妧鏈锛屽畠涓哄紑鍙戜汉鍛樻彁渚涗簡涓涓濂界殑寮鍙戠幆澧冿紝褰撲綘鏀瑰彉servlet鍜孞SP椤甸潰鍚庤屼笉蹇呴噸鍚搴旂敤鏈嶅姟鍣ㄣ傜劧鑰岋紝杩欑嶆妧鏈鍦ㄤ骇鍝佽繍琛岄樁娈靛圭郴缁熺殑璧勬簮鏄涓涓鏋佸ぇ鐨勬崯鑰楋紝鍥犱负瀹冧細缁橨SP寮曟搸鐨勭被瑁呰浇鍣(classloader)甯︽潵鏋佸ぇ鐨勮礋鎷呫傚洜姝ゅ叧闂鑷鍔ㄩ噸杞藉姛鑳藉圭郴缁熸ц兘鐨勬彁鍗囨槸涓涓鏋佸ぇ鐨勫府鍔┿
鏂规硶 3: 涓嶈佹互鐢℉ttpSession
鍦ㄥ緢澶氬簲鐢ㄤ腑锛屾垜浠鐨勭▼搴忛渶瑕佷繚鎸佸㈡埛绔鐨勭姸鎬侊紝浠ヤ究椤甸潰涔嬮棿鍙浠ョ浉浜掕仈绯汇備絾涓嶅垢鐨勬槸鐢变簬HTTP鍏锋湁澶╃敓鏃犵姸鎬佹э紝浠庤屾棤娉曚繚瀛樺㈡埛绔鐨勭姸鎬併傚洜姝や竴鑸鐨勫簲鐢ㄦ湇鍔″櫒閮芥彁渚涗簡session鏉ヤ繚瀛樺㈡埛鐨勭姸鎬併傚湪JSP搴旂敤鏈嶅姟鍣ㄤ腑锛屾槸閫氳繃HttpSession瀵瑰儚鏉ュ疄鐜皊ession鐨勫姛鑳界殑锛屼絾鍦ㄦ柟渚跨殑鍚屾椂锛屽畠涔熺粰绯荤粺甯︽潵浜嗕笉灏忕殑璐熸媴銆傚洜涓烘瘡褰撲綘鑾峰緱鎴栨洿鏂皊ession鏃讹紝绯荤粺鑰呰佸瑰畠杩涜岃垂鏃剁殑搴忓垪鍖栨搷浣溿備綘鍙浠ラ氳繃瀵笻ttpSession鐨勪互涓嬪嚑绉嶅勭悊鏂瑰紡鏉ユ彁鍗囩郴缁熺殑鎬ц兘銆
濡傛灉娌℃湁蹇呰侊紝灏卞簲璇ュ叧闂璊SP椤甸潰涓瀵笻ttpSession鐨勭己鐪佽剧疆銆 濡傛灉浣犳病鏈夋槑纭鎸囧畾鐨勮瘽锛屾瘡涓狫SP椤甸潰閮戒細缂虹渷鍦板垱寤轰竴涓狧ttpSession銆傚傛灉浣犵殑JSP涓涓嶉渶瑕佷娇鐢╯ession鐨勮瘽锛岄偅鍙浠ラ氳繃濡備笅鐨凧SP椤甸潰鎸囩ず绗︽潵绂佹㈠畠锛
浠ヤ笅鏄寮曠敤鐗囨碉細
锛%@ page session="false"%锛
涓嶈佸湪HttpSession涓瀛樻斁澶х殑鏁版嵁瀵瑰儚锛氬傛灉浣犲湪HttpSession涓瀛樻斁澶х殑鏁版嵁瀵瑰儚鐨勮瘽锛屾瘡褰撳瑰畠杩涜岃诲啓鏃讹紝搴旂敤鏈嶅姟鍣ㄩ兘灏嗗瑰叾杩涜屽簭鍒楀寲锛屼粠鑰屽炲姞浜嗙郴缁熺殑棰濆栬礋鎷呫備綘鍦℉ttpSession涓瀛樻斁鐨勬暟鎹瀵瑰儚瓒婂ぇ锛岄偅绯荤粺鐨勬ц兘灏变笅闄嶅緱瓒婂揩銆
褰撲綘涓嶉渶瑕丠ttpSession鏃讹紝灏藉揩鍦伴噴鏀惧畠锛氬綋浣犱笉鍐嶉渶瑕乻ession鏃讹紝浣犲彲浠ラ氳繃璋冪敤HttpSession.invalidate()鏂规硶鏉ラ噴鏀惧畠銆傚敖閲忓皢session鐨勮秴鏃舵椂闂磋惧緱鐭涓鐐癸細鍦↗SP搴旂敤鏈嶅姟鍣ㄤ腑锛屾湁涓涓缂虹渷鐨剆ession鐨勮秴鏃舵椂闂淬傚綋瀹㈡埛鍦ㄨ繖涓鏃堕棿涔嬪悗娌℃湁杩涜屼换浣曟搷浣滅殑璇濓紝绯荤粺浼氬皢鐩稿叧鐨剆ession鑷鍔ㄤ粠鍐呭瓨涓閲婃斁銆傝秴鏃舵椂闂磋惧緱瓒婂ぇ锛岀郴缁熺殑鎬ц兘灏变細瓒婁綆锛屽洜姝ゆ渶濂界殑鏂规硶灏辨槸灏介噺浣垮緱瀹冪殑鍊间繚鎸佸湪涓涓杈冧綆鐨勬按骞炽
鏂规硶 4: 灏嗛〉闈㈣緭鍑鸿繘琛屽帇缂
鍘嬬缉鏄瑙e喅鏁版嵁鍐椾綑鐨勪竴涓濂界殑鏂规硶锛岀壒鍒鏄鍦ㄧ綉缁滃甫瀹戒笉澶熷彂杈剧殑浠婂ぉ銆傛湁鐨勬祻瑙堝櫒鏀鎸乬zip(GNU zip)杩涜屾潵瀵笻TML鏂囦欢杩涜屽帇缂╋紝杩欑嶆柟娉曞彲浠ユ垙鍓фу湴鍑忓皯HTML鏂囦欢鐨勪笅杞芥椂闂淬傚洜姝わ紝濡傛灉浣犲皢servlet鎴朖SP椤甸潰鐢熸垚鐨凥TML椤甸潰杩涜屽帇缂╃殑璇濓紝閭g敤鎴峰氨浼氳夊緱椤甸潰娴忚堥熷害浼氶潪甯稿揩銆備絾涓嶅垢鐨勬槸锛屼笉鏄鎵鏈夌殑娴忚堝櫒閮芥敮鎸乬zip鍘嬬缉锛屼絾浣犲彲浠ラ氳繃鍦ㄤ綘鐨勭▼搴忎腑妫鏌ュ㈡埛鐨勬祻瑙堝櫒鏄鍚︽敮鎸佸畠銆備笅闈㈠氨鏄鍏充簬杩欑嶆柟娉曞疄鐜扮殑涓涓浠g爜鐗囨碉細
浠ヤ笅鏄寮曠敤鐗囨碉細
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
OutputStream out = null;
String encoding = request.getHeader("Accept-Encoding");
if (encoding != null
encoding.indexOf("gzip") != -1){
request.setHeader("Content-Encoding" , "gzip");
out = new GZIPOutputStream(request.getOutputStream());
}銆
else if (encoding != null
encoding.indexOf("comdivss") != -1){
request.setHeader("Content-Encoding" , "comdivss");
out = new ZIPOutputStream(request.getOutputStream());
}else{
out = request.getOutputStream();
}銆
...銆
...
}
鏂规硶 5: 浣跨敤绾跨▼姹
搴旂敤鏈嶅姟鍣ㄧ己鐪佸湴涓烘瘡涓涓嶅悓鐨勫㈡埛绔璇锋眰鍒涘缓涓涓绾跨▼杩涜屽勭悊锛屽苟涓哄畠浠鍒嗘淳service()鏂规硶锛屽綋service()鏂规硶璋冪敤瀹屾垚鍚庯紝涓庝箣鐩稿簲鐨勭嚎绋嬩篃闅忎箣鎾ゆ秷銆傜敱浜庡垱寤哄拰鎾ゆ秷绾跨▼浼氳楄垂涓瀹氱殑绯荤粺璧勬簮锛岃繖绉嶇己鐪佹ā寮忛檷浣庝簡绯荤粺鐨勬ц兘銆備絾鎵骞哥殑鏄鎴戜滑鍙浠ラ氳繃鍒涘缓涓涓绾跨▼姹犳潵鏀瑰彉杩欑嶇姸鍐点
鍙﹀栵紝鎴戜滑杩樿佷负杩欎釜绾跨▼姹犺剧疆涓涓鏈灏忕嚎绋嬫暟鍜屼竴涓鏈澶х嚎绋嬫暟銆傚湪搴旂敤鏈嶅姟鍣ㄥ惎鍔ㄦ椂锛屽畠浼氬垱寤烘暟閲忕瓑浜庢渶灏忕嚎绋嬫暟鐨勪竴涓绾跨▼姹狅紝褰撳㈡埛鏈夎锋眰鏃讹紝鐩稿簲鍦颁粠姹犱粠鍙栧嚭涓涓绾跨▼鏉ヨ繘琛屽勭悊锛屽綋澶勭悊瀹屾垚鍚庯紝鍐嶅皢绾跨▼閲嶆柊鏀惧叆鍒版睜涓銆傚傛灉姹犱腑鐨勭嚎绋嬩笉澶熷湴璇濓紝绯荤粺浼氳嚜鍔ㄥ湴澧炲姞姹犱腑绾跨▼鐨勬暟閲忥紝浣嗘婚噺涓嶈兘瓒呰繃鏈澶х嚎绋嬫暟銆傞氳繃浣跨敤绾跨▼姹狅紝褰撳㈡埛绔璇锋眰鎬ュ墽澧炲姞鏃讹紝绯荤粺鐨勮礋杞藉氨浼氬憟鐜扮殑骞虫粦鐨勪笂鍗囨洸绾匡紝浠庤屾彁楂樼殑绯荤粺鐨勫彲浼哥缉鎬с
鏂规硶 6: 閫夋嫨姝g‘鐨勯〉闈㈠寘鍚鏈哄埗
鍦↗SP涓鏈変袱绉嶆柟娉曞彲浠ョ敤鏉ュ寘鍚鍙︿竴涓椤甸潰锛
1銆佷娇鐢╥nclude鎸囩ず绗
浠ヤ笅鏄寮曠敤鐗囨碉細
锛%@ includee file=鈥漷est.jsp鈥 %锛
2銆佷娇鐢╦sp鎸囩ず绗
浠ヤ笅鏄寮曠敤鐗囨碉細
锛渏sp:includee page=鈥漷est.jsp鈥 flush=鈥漷rue鈥/锛
鍦ㄥ疄闄呬腑鍙戠幇锛屽傛灉浣跨敤绗涓绉嶆柟娉曠殑璇濓紝鍙浠ヤ娇寰楃郴缁熸ц兘鏇撮珮銆
鏂规硶 7:姝g‘鍦扮‘瀹歫avabean鐨勭敓鍛藉懆鏈
JSP鐨勪竴涓寮哄ぇ鐨勫湴鏂瑰氨鏄瀵筳avabean鐨勬敮鎸併傞氳繃鍦↗SP椤甸潰涓浣跨敤jsp:useBean鏍囩撅紝鍙浠ュ皢javabean鐩存帴鎻掑叆鍒颁竴涓狫SP椤甸潰涓銆傚畠鐨勪娇鐢ㄦ柟娉曞備笅锛
浠ヤ笅鏄寮曠敤鐗囨碉細
锛渏sp:useBean id="name" scope="page|request|session|application"
class="package.className" type="typeName"锛
锛/jsp:useBean锛
鍏朵腑scope灞炴ф寚鍑轰簡杩欎釜bean鐨勭敓鍛藉懆鏈熴傜己鐪佺殑鐢熷懡鍛ㄦ湡涓簆age銆傚傛灉浣犳病鏈夋g‘鍦伴夋嫨bean鐨勭敓鍛藉懆鏈熺殑璇濓紝瀹冨皢褰卞搷绯荤粺鐨勬ц兘銆
涓句緥鏉ヨ达紝濡傛灉浣犲彧鎯冲湪涓娆¤锋眰涓浣跨敤鏌愪釜bean锛屼絾浣犲嵈灏嗚繖涓猙ean鐨勭敓鍛藉懆鏈熻剧疆鎴愪簡session锛岄偅褰撹繖娆¤锋眰缁撴潫鍚庯紝杩欎釜bean灏嗕粛鐒朵繚鐣欏湪鍐呭瓨涓锛岄櫎闈瀞ession瓒呮椂鎴栫敤鎴峰叧闂娴忚堝櫒銆傝繖鏍蜂細鑰楄垂涓瀹氱殑鍐呭瓨锛屽苟鏃犺皳鐨勫炲姞浜咼VM鍨冨溇鏀堕泦鍣ㄧ殑宸ヤ綔閲忋傚洜姝や负bean璁剧疆姝g‘鐨勭敓鍛藉懆鏈燂紝骞跺湪bean鐨勪娇鍛界粨鏉熷悗灏藉揩鍦版竻鐞嗗畠浠锛屼細浣跨敤绯荤粺鎬ц兘鏈変竴涓鎻愰珮銆
鍏跺畠涓浜涙湁鐢ㄧ殑鏂规硶
1銆佸湪瀛楃︿覆杩炴帴鎿嶄綔涓灏介噺涓嶄娇鐢ㄢ+鈥濇搷浣滅︼細鍦╦ava缂栫▼涓锛屾垜浠甯稿父浣跨敤鈥+鈥濇搷浣滅︽潵灏嗗嚑涓瀛楃︿覆杩炴帴璧锋潵锛屼絾浣犳垨璁镐粠鏉ユ病鏈夋兂鍒拌繃瀹冨眳鐒朵細瀵圭郴缁熸ц兘閫犳垚褰卞搷鍚?鐢变簬瀛楃︿覆鏄甯搁噺锛屽洜姝JVM浼氫骇鐢熶竴浜涗复鏃剁殑瀵瑰儚銆備綘浣跨敤鐨勨+鈥濊秺澶氾紝鐢熸垚鐨勪复鏃跺瑰儚灏辫秺澶氾紝杩欐牱涔熶細缁欑郴缁熸ц兘甯︽潵涓浜涘奖鍝嶃傝В鍐崇殑鏂规硶鏄鐢⊿tringBuffer瀵瑰儚鏉ヤ唬鏇库+鈥濇搷浣滅︺
2銆侀伩鍏嶄娇鐢⊿ystem.out.println()鏂规硶锛氱敱浜嶴ystem.out.println()鏄涓绉嶅悓姝ヨ皟鐢锛屽嵆鍦ㄨ皟鐢ㄥ畠鏃讹紝纾佺洏I/O鎿嶄綔蹇呴』绛夊緟瀹冪殑瀹屾垚锛屽洜姝ゆ垜浠瑕佸敖閲忛伩鍏嶅瑰畠鐨勮皟鐢ㄣ備絾鎴戜滑鍦ㄨ皟璇曠▼搴忔椂瀹冨張鏄涓涓蹇呬笉鍙灏戠殑鏂逛究宸ュ叿锛屼负浜嗚В鍐宠繖涓鐭涚浘锛屾垜寤鸿浣犳渶濂戒娇鐢↙og4j宸ュ叿( )锛屽畠鏃㈠彲浠ユ柟渚胯皟璇曪紝鑰屼笉浼氫骇鐢烻ystem.out.println()杩欐牱鐨勬柟娉曘
3銆丼ervletOutputStream 涓 PrintWriter鐨勬潈琛★細浣跨敤PrintWriter鍙鑳戒細甯︽潵涓浜涘皬鐨勫紑閿锛屽洜涓哄畠灏嗘墍鏈夌殑鍘熷嬭緭鍑洪兘杞鎹涓哄瓧绗︽祦鏉ヨ緭鍑猴紝鍥犳ゅ傛灉浣跨敤瀹冩潵浣滀负椤甸潰杈撳嚭鐨勮瘽锛岀郴缁熻佽礋鎷呬竴涓杞鎹㈣繃绋嬨傝屼娇鐢⊿ervletOutputStream浣滀负椤甸潰杈撳嚭鐨勮瘽灏变笉瀛樺湪涓涓闂棰橈紝浣嗗畠鏄浠ヤ簩杩涘埗杩涜岃緭鍑虹殑銆傚洜姝ゅ湪瀹為檯搴旂敤涓瑕佹潈琛′袱鑰呯殑鍒╁紛銆
鎬荤粨
鏈鏂囩殑鐩鐨勬槸閫氳繃瀵箂ervlet鍜孞SP鐨勪竴浜涜皟浼樻妧鏈鏉ユ瀬澶у湴鎻愰珮浣犵殑搴旂敤绋嬪簭鐨勬ц兘锛屽苟鍥犳ゆ彁鍗囨暣涓狫2EE搴旂敤鐨勬ц兘銆傞氳繃杩欎簺璋冧紭鎶鏈锛屼綘鍙浠ュ彂鐜板叾瀹炲苟涓嶆槸鏌愮嶆妧鏈骞冲彴(姣斿侸2EE鍜.NET涔嬩簤)鍐冲畾浜嗕綘鐨勫簲鐢ㄧ▼搴忕殑鎬ц兘锛岄噸瑕佹槸浣犺佸硅繖绉嶅钩鍙版湁涓涓杈冧负娣卞叆鐨勪簡瑙o紝杩欐牱浣犳墠鑳戒粠鏍规湰涓婂硅嚜宸辩殑搴旂敤绋嬪簭鍋氫竴涓浼樺寲銆

④ 怎么设置页面会话超时返回登录页面

首先需要在web.xml中设置项目中session超时时间,通常都是半小时:
<session-config><session-timeout>30</session-timeout></session-config>;
之后设置监听器回(Linstener),用来监听登录时候的用户答名和密码session是否还存活,如果不存活的话,直接跳转到登录页面。
1、不变地址栏:request.getRequestDispatcher("url").forward(request, response);
2、改变地址栏:response.sendRedirect("url");

阅读全文

与jspsession超时相关的资料

热点内容
今日头条安卓21 浏览:464
电脑店u盘启动盘制作工具v61 浏览:766
9月19订的苹果6splus 浏览:270
网络人绿色版 浏览:450
linux服务器启动oracle 浏览:621
win10怎么语音呼唤小娜 浏览:456
qq飞车银天使 浏览:612
骑车赚钱app 浏览:111
怎么从电脑上下编程 浏览:508
linux如何复制到其他文件夹 浏览:70
碧蓝航线文件找不到怎么办 浏览:937
苹果备份的文件夹怎么恢复 浏览:941
看小黄APP有哪些 浏览:206
怎样在手机看264文件 浏览:80
常熟有哪里学编程的 浏览:162
我的下载的文件在哪里 浏览:563
文本显示器编程教程 浏览:942
电脑应用如何设置密码 浏览:336
怎么编程搜狗指南 浏览:155
代聊微信号 浏览:623

友情链接