¸üÐÂʱ¼ä:2016Äê08ÔÂ26ÈÕ11ʱ41·Ö À´Ô´:ÀÖÓã²¥¿ÍJAVAÅàѵѧԺ ä¯ÀÀ´ÎÊý:
ͨ¹ýHttpSession°¸Àý·ÖÎö£¬ÎÒÃÇÒѾ¶Ô±£´æÓû§ÐÅÏ¢°¸ÀýµÄ¹¦ÄÜÐèÇóÓÐÁËÒ»¶¨µÄÁ˽⣬ÏÂÃæÎÒÃǾÍÀ´Íê³É¸Ã°¸Àý£¬°¸ÀýÏêÇéÇë²Î¿¼HttpSessionµÚ¶þÀý²½ÖèÏê½â£¬µã»÷´Ë´¦
ÏÂÔØ°¸ÀýÔ´´úÂ룬¾ßÌå²Ù×÷²½ÖèÈçÏÂËùʾ£º
(1)н¨Ò»¸öwebÓ¦Óã¬Example22£¬ÔÚWebRootĿ¼ÏÂн¨Ò»¸öĿ¼session£¬²¢ÔÚ¸ÃĿ¼ÏÂн¨Ò»¸öjspÎļþ£¬Ãû³ÆÎªlogin.jsp£¬Ö÷Òª´úÂëÈçÀý1-1Ëùʾ£º
Àý1-1 login .jsp
<body>
<form action="/Example22/LoginServlet" method="post">
Óû§Ãû£º<input type="text" name="username"/><br/>
ÃÜ¡¡Â룺<input type="password" name="password"/><br/>
<input type="submit" value="怬"/>
</form>
</body>
Àý1-1ÖУ¬form±íµ¥µÄÌá½»·½Ê½ÊÇpost£¬Ìá½»µÄ·¾¶£º“/Example22/LoginServlet“£¬ÆäÖД/LoginServlet“ÊÇServletÀàµÄ·ÃÎÊ·¾¶£¬ºóÃæ»á˵Ã÷¡£
(2)ÔÚsessionĿ¼ÏÂÔÙн¨Ò»¸öjspÎļþ£¬succ1.jsp¡£
(3)ÔÚsessionĿ¼ÔÙн¨Ò»¸öjspÎļþ£¬succ2.jsp¡£
(4)ÔÚsrcĿ¼ÏÂн¨Ò»¸öServletÀ࣬Ãû³ÆÎªLoginServlet£¬Æä·ÃÎÊ·¾¶ÅäÖÃΪ“/LoginServlet”£¬Ö÷Òª´úÂëÈçÀý1-3Ëùʾ£º
Àý1-3 LoginServlet.java
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*
* 1. »ñÈ¡±íµ¥Êý¾Ý
*/
// ´¦ÀíÖÐÎÄÎÊÌâ
request.setCharacterEncoding("utf-8");
// »ñÈ¡
String username = request.getParameter("username");
String password = request.getParameter("password");
/*
* 2. УÑéÓû§ÃûºÍÃÜÂëÊÇ·ñÕýÈ·
*/
if(!"itcast".equalsIgnoreCase(username)) {//µÇ¼³É¹¦
/*
* 3. Èç¹û³É¹¦
* > ±£´æÓû§ÐÅÏ¢µ½sessionÖÐ
* > ÖØ¶¨Ïòµ½succ1.jsp
*/
HttpSession session = request.getSession();//»ñÈ¡session
session.setAttribute("username", username);//ÏòsessionÓòÖб£´æÓû§Ãû
response.sendRedirect("/Example22/session/succ1.jsp");
} else {//µÇ¼ʧ°Ü
/*
* 4. Èç¹ûʧ°Ü
* > ±£´æ´íÎóÐÅÏ¢µ½requestÓòÖÐ
* > ת·¢µ½login.jsp
*/
request.setAttribute("msg", "Óû§Ãû»òÃÜÂë´íÎó!");
RequestDispatcher qr=
request.getRequestDispatcher("/session/login.jsp");//µÃµ½×ª·¢Æ÷
qr.forward(request, response);//ת·¢
}
}
}
Àý1-3ÖУ¬Ê×ÏÈ»ñµÃÇëÇó²ÎÊý£¬ÒòΪ±íµ¥Ìá½»µÄ·½Ê½ÊÇpost£¬ËùÒÔ¶ÔÓÚÇëÇó²ÎÊýµÄÂÒÂëÎÊÌâ¿ÉÒÔʹÓÃrequestµÄsetCharacterEncoding("utf-8")·½·¨´¦ÀíÂÒÂë¡£»ñÈ¡µÄÓû§ÃûÈç¹ûÊÇ“itcast”¾ÍÈÃËüµÇ¼ʧ°Ü£¬½«´íÎóÐÅÏ¢“Óû§Ãû»òÃÜÂë´íÎó”±£´æÔÚrequestÓò£¬È»ºóÔÙת·¢µ½login.jspÒ³Ãæ¡£Èç¹û²»ÊÇ“itcast”¾Í±íʾµÇ¼³É¹¦£¬½«Óû§Ãû±£´æÔÚsessionÓòÖУ¬È»ºóÖØ¶¨Ïòµ½succ1.jspÒ³Ãæ¡£
(5)¶Ôlogin.jspÒ³Ãæ×öһЩ²¹³ä£¬¾ßÌåÈçÀý1-4Ëùʾ£º
Àý1-4 login.jsp
<body>
<%
String message = "";
String msg = (String)request.getAttribute("msg");//»ñÈ¡requestÓòÖеÄÃûΪmsgµÄÊôÐÔ
if(msg != null) {
message = msg;
}
%>
<font color="red"><b><%=message %> </b></font>
... ...´Ë´¦Ê¡ÂÔÀý1-1ÖеĴúÂë
</body>
Àý1-4ÖУ¬ÔÚlogin.jspÒ³ÃæÖУ¬´ÓrequestÓòÖÐÈ¡³ö´íÎóÐÅÏ¢£¬Õâ¸öʱºòÎÒÃÇÒª¿¼Âǵ½Ò»¸öÎÊÌ⣬Èç¹ûÖ±½Ó½«´íÎóÐÅÏ¢Êä³öµ½ä¯ÀÀÆ÷¶Ë£¬»áÓÐÒ»¸öÎÊÌ⣬µ±Óû§Ö±½Ó·ÃÎÊlogin.jspÒ³ÃæÊ±£¬requestÓòÖл¹Ã»Óдæ·ÅmsgÊôÐÔ£¬Òò´ËmsgµÄֵΪ¿Õ£¬ËùÒÔä¯ÀÀÆ÷¶Ë»áÊä³önull¡£Òò´ËÎÒÃÇÒªÏÈÅжÏmsgÊÇ·ñΪ¿Õ£¬Èç¹û²»Îª¿ÕÔÙ½«ËüÊä³öµ½ä¯ÀÀÆ÷¶Ë¡£
(6)succ1.jspÒ³ÃæÐÅÏ¢ÈçÀý1-5Ëùʾ£º
Àý1-5 succ1.jsp
<body>
<h1>succ1</h1>
<%
String username = (String)session.getAttribute("username");
if(username == null) {
/*
1. ÏòrequestÓòÖб£´æ´íÎóÐÅÏ¢£¬×ª·¢µ½login.jsp
*/
request.setAttribute("msg", "Äú»¹Ã»ÓеǼ!ÇëÇóÏȵǼ!");
request.getRequestDispatcher("/session/login.jsp").forward(request,
response);
return;
}
%>
»¶Ó»¶Ó£¬ÈÈÁÒ»¶Ó£¬»¶Ó<%=username %>Áìµ¼Ö¸µ¼¹¤×÷£¡
</body>
Àý1-5ÖУ¬Ê×ÏÈ´ÓsessionÖлñÈ¡µÇ¼µÄÓû§Ãû£¬Èç¹ûÓû§ÃûusernameΪ¿Õ£¬Ôò±íÃ÷µ±Ç°Óû§Ã»ÓеǼ£¬¾ÍÖ±½Ó·ÃÎʱ¾Ò³Ã棬ËùÒÔÏòrequestÓòÖÐÌí¼Ó´íÎóÐÅÏ¢“Äú»¹Ã»ÓеǼ!ÇëÏȵǼ!”£¬È»ºóת·¢µ½login.jspÒ³Ãæ£¬Èç¹ûÓû§Ãûusername²»Îª¿Õ¾Í½«Óû§ÃûÏÔʾÔÚÒ³ÃæÖУ¬Èç<%username%>¡£
(7)succ2.jspºÍsucc1.jspÄÚÈÝÏàͬ£¬ÕâÀï¾Í²»ÔÚÐðÊöÁË¡£
(8)½«Example22·¢²¼µ½Tomcat·þÎñÆ÷£¬È»ºóÆô¶¯·þÎñÆ÷£¬ÔÚä¯ÀÀÆ÷¶Ë·ÃÎÊlogin.jsp£¬ä¯ÀÀÆ÷ÏÔʾ½á¹ûÈçͼ1-1Ëùʾ£º

ͼ1-1 µÇÂ¼Ò³Ãæ
(9)ÔÚͼ1-1ÖУ¬ÊäÈëÓû§Ãû£ºitcast£¬ÃÜÂë123£¬È»ºóµã»÷“µÇ¼”°´Å¥£¬ä¯ÀÀÆ÷ÏÔʾ½á¹ûÈçͼ1-2Ëùʾ£º

ͼ1-2 µÇ¼ʧ°Ü
ͼ1-2ÖУ¬ÏÔʾ“Óû§ÃûºÍµÇ¼´íÎ󓣬˵Ã÷µÇ¼ʧ°Ü£¬×ª·¢µ½ÁËlogin.jspÒ³Ãæ¡£ÔÚLoginServletÖУ¬ÎÒÃÇÉ趨µÄÂß¼¾ÍÊÇÈç¹ûÓû§ÃûΪitcast£¬¾Í±íʾµÇ¼ʧ°Ü¡£
(10)ÔÚͼ1-2ÖУ¬ÊäÈëÓû§Ãû£ºaaa£¬ÃÜÂ룺123£¬µã»÷“µÇ¼“£¬ä¯ÀÀÆ÷ÏÔʾ½á¹ûÈçͼ1-3Ëùʾ£º

ͼ1-3 µÇ¼³É¹¦
ÓÉͼ1-3¿ÉÖª£¬µÇ¼³É¹¦ºóÖØ¶¨Ïòµ½succ1.jsp£¬µØÖ·À¸ÉϵĵØÖ·¸Ä±ä£¬²¢ÇÒÏÔʾµ±Ç°Óû§µÄÃû³Æ£ºaaa¡£
(11)ÏÖÔÚ½«ä¯ÀÀÆ÷´°¿Ú¹Ø±Õ£¬È»ºóÖØÐ´ò¿ªä¯ÀÀÆ÷£¬ÔÚä¯ÀÀÆ÷¶Ë·ÃÎÊsucc1.jsp£¬ä¯ÀÀÆ÷ÏÔʾ½á¹ûÈçͼ1-4Ëùʾ£º

ͼ1-4 ·ÃÎÊʧ°Ü
½«ä¯ÀÀÆ÷¹Ø±Õ£¬ÄÇô֮ǰµÇ¼ºó·þÎñÆ÷´´½¨µÄÃûΪJSESSIONµÄcookie¾ÍËÀÍöÁË£¬ÄÇô¶ÔÓ¦µÄsession¾ÍÎÞ·¨»ñÈ¡£¬sessionÖб£´æµÄÓû§ÃûÒ²¾ÍÎÞ·¨»ñÈ¡¡£Ôٴδò¿ªä¯ÀÀÆ÷£¬·ÃÎÊsucc1.jsp£¬·þÎñÆ÷´´½¨ÐµÄsession£¬ÐµÄsessionÖв¢²»´æÔÚÓû§ÃûÐÅÏ¢£¬Òò´Ëת·¢µ½login.jsp£¬È»ºóÏÔʾ“Äú»¹Ã»ÓеǼ!ÇëÏȵǼ!“¡£
(12)ÔÚͼ1-4ÖУ¬ÊäÈëÓû§Ãû£ºaaa£¬ÃÜÂ룺123£¬È»ºóµã»÷“µÇ¼“£¬ÕâʱsessionÖоÍÓÐÁËÓû§ÐÅÏ¢£¬succ2.jspÒ³ÃæÓësucc1.jspÒ»Ñù£¬ËùÒÔÏÖÔÚ·ÃÎÊsucc2.jsp¿ÉÒÔ·ÃÎʳɹ¦£¬Èçͼ1-5Ëùʾ£º

ͼ1-5 ·ÃÎÊsucc2.jsp
ͼ1-5ÖУ¬³É¹¦µÄ´ÓsessionÖлñµÃÓû§ÐÅÏ¢£¬succ2.jsp·ÃÎʳɹ¦¡£Ö»Òªä¯ÀÀÆ÷²»¹Ø±Õ£¬ÔÚÒ»¶¨Ê±¼äÄÚÓû§µÄ״̬¶¼ÊǵǼ״̬£¬ÎÞÂÛ·ÃÎÊsucc1.jsp»¹ÊÇsucc2.jsp¶¼¿ÉÒÔ¡£
ÎÒÃÇÆ½Ê±ÉÏÍøÊ±£¬µÚÒ»´ÎµÇ¼ij¸öÍøÕ¾µã»÷Á˼ÇסÓû§Ãû£¬Ï´ÎÔÙ·ÃÎʸÃÍøÕ¾Ê±£¬²»ÓÃÔÙÊäÈëÓû§ÃûÖ±½ÓÊäÈëÃÜÂë¼´¿É¡£Õâ¸öÊÇÔõô×öµ½µÄ?ÆäʵÊÇÀûÓÃCookieʵÏÖÁ˼ÇסÓû§ÃûµÄ¹¦ÄÜ¡£ÏÂÃæÎÒÃǾÍÀ´Á·Ï°ÈçºÎʹÓÃcookie¼ÇסÓû§Ãû¡£
(13)Óû§µÚÒ»´ÎµÇ¼£¬Èç¹ûµÇ¼³É¹¦£¬½«ÆäÓû§Ãû±£´æÔÚCookieÖУ¬²¢ÇÒ½«CookieµÄ¹ýÆÚʱ¼äÉèÖÃΪһÌìºó£¬È»ºó·¢Ë͸øä¯ÀÀÆ÷¡£ÏÖÔÚÎÒÃǶÔLoginServlet½øÐÐÐ޸ģ¬ÈçÏÂËùʾ£º
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
... ... ´Ë´¦Ê¡ÂÔ»ñÈ¡ÇëÇó²ÎÊý
if(!"itcast".equalsIgnoreCase(username)) {//µÇ¼³É¹¦
/*
* ¸½¼ÓÏ°ÑÓû§Ãû±£´æµ½cookieÖУ¬·¢Ë͸ø¿Í»§¶Ëä¯ÀÀÆ÷
* µ±Ôٴδò¿ªlogin.jspʱ£¬login.jspÖлá¶ÁÈ¡requestÖеÄcookie£¬°ÑËüÏÔʾµ½Óû§ÃûÎı¾¿òÖÐ
*/
Cookie cookie = new Cookie("uname", username);//´´½¨Cookie
cookie.setMaxAge(60*60*24);//ÉèÖÃcookieÃü³¤Îª1Ìì
response.addCookie(cookie);//±£´æcookie
... ... ´Ë´¦Ê¡ÂԵǼ³É¹¦´¦Àí´úÂë
} else {//µÇ¼ʧ°Ü
... ... ´Ë´¦Ê¡ÂÔÀý1-3ÖеǼʧ°Ü´¦Àí´úÂë
}
}
(14)ÔÙÐÞ¸Älogin.jspÒ³Ãæ£¬ÈçÀý1-6Ëùʾ£º
Àý1-6 login.jsp
<body>
<%
/*
¶ÁÈ¡ÃûΪunameµÄCookie!
Èç¹ûΪ¿ÕÏÔʾ£º""
Èç¹û²»Îª¿ÕÏÔʾ£ºCookieµÄÖµ
*/
String uname = "";
Cookie[] cs = request.getCookies();//»ñÈ¡ÇëÇóÖÐËùÓеÄcookie
if(cs != null) {// Èç¹û´æÔÚcookie
for(Cookie c : cs) {//Ñ»·±éÀúËùÓеÄcookie
if("uname".equals(c.getName())) {//²éÕÒÃûΪunameµÄcookie
uname = c.getValue();//»ñÈ¡Õâ¸öcookieµÄÖµ£¬¸øunameÕâ¸ö±äÁ¿
}
}
}
%>
... ... ´Ë´¦Ê¡ÂÔ1-4ÖдúÂë
<form action="/Example22/LoginServlet" method="post">
Óû§Ãû£º<input type="text" name="username" value=”<%=uname%>”/><br/>
ÃÜ¡¡Â룺<input type="password" name="password"/><br/>
<input type="submit" value="怬"/>
</form>
</body>
Àý1-6ÖУ¬Ê×ÏÈ»ñµÃËùÓÐCookie£¬ÔÙ±éÀúËùÓÐCookie£¬È»ºó²éÕÒÃû×ÖΪunameµÄcookie£¬Èç¹ûÕÒµ½£¬½«¸ÃCookieµÄÖµ¸³Öµ¸øuname±äÁ¿£¬È»ºó½«uname±äÁ¿µÄÖµ¸³¸øÃû×ÖΪusernameµÄ±íµ¥ÏîµÄvalueÊôÐÔ¡£
(15)ÖØÐÂÆô¶¯·þÎñÆ÷£¬ÔÚä¯ÀÀÆ÷¶Ë·ÃÎÊlogin.jsp£¬ÊäÈëÓû§Ãû£ºzhangsan£¬ÃÜÂ룺123£¬È»ºóµã»÷“µÇ¼“°´Å¥£¬Èçͼ1-6Ëùʾ£º

ͼ1-6 µÇ¼
(16)µÇ¼³É¹¦ºó£¬½«ä¯ÀÀÆ÷¹Ø±Õ£¬ÔÙ´ò¿ªä¯ÀÀÆ÷£¬ÔٴηÃÎÊlogin.jsp£¬Èçͼ1-7Ëùʾ£º

ͼ1-7 ¼ÇסÓû§Ãû
Èçͼ1-7Ëùʾ£¬Óû§Ãûzhagnsan»ØÏÔÔÚµÇÂ¼Ò³ÃæÖУ¬Õâ¾ÍÊǼÇסÓû§ÃûµÄʵÏÖÔÀí¡£µ±Ê±¼ä³¬¹ýÒ»Ì죬Ãû×ÖΪunameµÄCookie¾Í»á±»ä¯ÀÀÆ÷ɱËÀ£¬Õâ¸öʱºòÔÚ·ÃÎʵÇÂ¼Ò³Ãæ£¬¾Í²»»á»ØÏÔÓû§Ãû¡£
±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍJavaÅàѵѧԺËùÓУ¬»¶Ó×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍJavaÅàѵѧԺ
Ê×·¢£ºhttp://www.itcast.cn/javaee
±±¾©Ð£Çø