ÀÖÓãµç¾º

  • ½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

    È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

    JAVAÅàѵ֮HttpSessionµÚ¶þÀý

    ¸üÐÂʱ¼ä: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

    0 ·ÖÏíµ½£º
    ºÍÎÒÃÇÔÚÏß½»Ì¸£¡


    ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿