䗮䖛 5.3.3 㡖Ёⱘҟ㒡ˈsession Tomcat ᳡ࡵ఼Ё咬䅸ⱘ᳔ડᑨᯊ䯈ᰃ 30 ߚ䩳ˈ䖭㸼
⼎ session ⱘᄬڣҎⱘ⫳ੑϔḋ᳝ᯊ䯈䰤ࠊˈᢹ᳝⡍⅞ⱘ⫳ੑ਼ᳳDŽ
session⬅Ѣ JSP ᆍ఼ЁӮ㞾ࡼ߯ᓎˈৃҹ䗮䖛䇗⫼ session ᇍ䈵ⱘ isNew()ᮍ⊩ᴹ߸ᮁ
ᔧࠡ session ᰃ৺ЎᮄᓎDŽ᠔䇧ᮄᓎ session ህᰃ Web Server ϔડᑨᅶ᠋ッˈ㒭⌣㾜఼䖨ಲ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>JSP Page</title>
<jsp:include page="inc_AllPages.jsp"/>
<font color="red"> <%=error%> </font>
<form action="lesson5d6_valid.jsp" method="post">
<table>
%JCRVGT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="validbean" class="org.me.afro.ValidateUP"/>
<jsp:setProperty name="validbean" property="*"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Valid Page</title>
public void setUsername(String username) { this.username = username;
%JCRVGT
public void setPassword(String password) { this.password = password;
}
private boolean validate() {
if (password != null && username != null) {
if (username.equalsIgnoreCase("afro") && password.equals("1a2b3C")
|| username.equalsIgnoreCase("bee") && password.equals("A1b2c3")) { this.blValid = true;
} else {
this.blValid = false;
}
}
return blValid;
}
/**
* @return the blValid */
public boolean isBlValid() { return validate();
} }
lesson5d6a.jsp义䴶 A ҷⷕ˖
<%@page contentType="text/html" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>A Page</title>
</head>
<%
String aName = (String) session.getAttribute("username");
if (aName == null) {
request.setAttribute("error", "䇋ᙼܜⱏᔩݡ䆓䯂ʽ");
request.getRequestDispatcher("index.jsp").forward(request, response);
} %>
%JCRVGT
<body>
<jsp:include page="inc_AllPages.jsp"/>
<font style="color:red">Welcome <%=aName%> to A!</font>
<%
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>B Page</title>
<jsp:include page="inc_AllPages.jsp"/>
<form>
<font style="color:green">Welcome <%=bName%> to B!</font>
Do u remember ur password?
<input type="submit" value="Yes" name="viewPass" />
</form>
<%
if (request.getParameter("viewPass") != null&&request.getParameter
%JCRVGT
("viewPass").equals("Yes")) { %>
<i><%=session.getAttribute("password").toString()%></i>
<%
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>inc_AllPage</title>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
%JCRVGT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>inc_AllPage</title>
</head>
<body>
<h1>
<table border="1">
<tr>
<td><a href="index.jsp">䖨ಲⱏᔩ义䴶</a></td>
</tr>
<tr>
<td><a href="lesson5d6a.jsp">A义䴶</a></td>
</tr>
<tr>
<td><a href="lesson5d6b.jsp">B义䴶</a></td>
</tr>
<tr>
<td><a href="lesson5d6_closeSession.jsp">Close_Session</a></td>
</tr>
</table>
</h1>
</body>
</html>
՟ 5-6index.jsp ⱏᔩ义䴶ⱘ䖤㸠㒧ᵰབ 5-13 ᠔⼎ˈlesson5d6a.jsp 义䴶ⱘ䖤㸠㒧ᵰབ
5-14᠔⼎DŽ
5-13 ⱏᔩ义䴶 5-14 义䴶 A
lesson5d6b.jsp义䴶ⱘ䖤㸠㒧ᵰབ 5-15 ᠔⼎ˈlesson5d6_closeSession.jsp ݇䯁Ӯ䆱义ⱘ䖤 㸠㒧ᵰབ 5-16 ᠔⼎DŽ
%JCRVGT
5-15 义䴶 B 5-16 ݇䯁 session 义
݇䯁 session Пৢˈݡ䏇䕀ࠄ义䴶 A Bˈᰒ⼎㒧ᵰབ 5-17 ᠔⼎DŽ
5-17 session 㹿䫔↕ˈ䆄ᔩⱘᇍ䈵ϔᑊ㾷䰸
͘ភፅࠀᄣզ٨
⬅Ѣ session ᳝⫳ᄬᯊ䰤ˈֱᄬ session 㓧ᄬЁⱘᇍ䈵᭄ᇚᰃЈᯊᗻⱘˈᶤѯᚙމ ϟˈ䳔㽕ᡞЈᯊᄬټ session Ёⱘᇍ䈵 session 㒧ᴳᯊᣕЙ࣪ഄᄬټࠄ᭛ӊ㋏㒳᭄ᑧЁ˗
ϔ⾡ᚙމᰃˈᇍ䈵 session ݇㋏㋻ᆚˈᇍ䈵ⱘ↣ϔᬍব䛑䳔㽕䗮ⶹ session ঞᯊ䆄ᔩֱᄬˈ 䖭ህ䳔㽕䙷ѯ䳔㽕ᕫࠄ session ेᯊ⢊ᗕⱘᇍ䈵Ϟ㒥ᅮϔϾⲥ఼ˈҹϞϸ⾡ᚙމথ⫳ᯊˈ ѻ⫳ϔϾџӊ Event ᴹⲥ㾚Ӯ䆱DŽ
Ӯ䆱㒥ᅮⲥ఼ᰃ Servlet ᦤկⱘϔϾষˈষৡЎ HttpSessionBindingListenerˈ䆹ষ
ࣙҹϟϸϾᢑ䈵ᮍ⊩˖
public void valueBound(HttpSessionBindingEvent event);
public void valueUnbound(HttpSessionBindingEvent event);
ᔧᇍ䈵䳔㽕ᄬܹ session ᯊˈӮ㞾ࡼ䇗⫼ valueBound()ᮍ⊩ˈ㢹 session 㹿䫔↕ˈӮ㞾ࡼ䇗
⫼ valueUnbound()ᮍ⊩DŽ
Ӯ䆱ⲥⱘЏ㽕ӬѢϡㅵᅶ᠋ッᰃЏࡼ݇䯁 Web ᑨ⫼䖬ᰃӮ䆱䍙ᯊˈӮ䆱ⲥ఼
ষӮ䖙䗳خߎডᑨˈৠᯊгӮಲᬊ session ᄬᯊऴ⫼ⱘ㋏㒳䌘⑤DŽ
%JCRVGT
ࠄΓࠄဘ
䗮䖛ᴀゴⱘᄺдˈ5.1 㡖ᓩܹⱘ CHERRYONE ݀ৌ䳔㽕ᬍ㡃ⱘࠡҷॳൟˈ䇏㗙ᰃ৺㛑ḍ
5.1 㡖㒭ߎⱘࡳ㛑䳔∖㞾㸠ᅲ⦄ਸ਼˛ϟ䴶ᴹⳟϔϟ Zac ᓔথಶ䯳ᰃབԩᅲ⦄䆹ॳൟⱘDŽ ᦤ⼎˖·ჃಬैᅖྑಾၽဈܜԈৃ࠘ੋචަ Cookie ԅࠄೌֺ֥ēω̟ზै 5-3 ԅಬຣֺ
ēဈ EL ᆴนζӦᄯࣅߑ value ೫ԅᄔēලನඔ٢ဈܜ༓ྑͬӉ Cookie ԅನdၽ୶ ժඹڶྡྷّ Servlet ճဈܜԅ Cookie ைௐࠩ҉सē௶܊ඹڶ response.sendRedirect()ֺ֥ණᅧ Ӿອԅပဈܜဴཝܬࡂԅྚੋᄯd
˸ᮥ
1ˊ㾷䞞 Java Web ⱘӮ䆱ㅵ⧚ᴎࠊDŽ
2ˊCookies ᡔᴃ JSP Ё session ⱘऎ߿ᰃҔМ˛
3ˊJSP ⱘ 4 ⾡Ӯ䆱䎳䏾ᡔᴃᰃાѯ˛
4ˊㅔ䗄 JSP Ё session ⱘ⫳ੑ਼ᳳDŽ 5ˊJSP 㔥义ЁЎҔМ䳔㽕ᓩܹӮ䆱˛