<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一路拾遺
    Collect By Finding All The Way ......
    posts - 81,comments - 41,trackbacks - 0

    JSP與 servlet之間的傳值有兩種情況:JSP -> servlet, servlet -> JSP。
    通過(guò)對(duì)象 request和 session (不考慮 application)完成傳值。

    一、JSP -> servlet
    JSP頁(yè)面有3種方法向 servlet傳值: form表單、URL 、其他

    <!-- JSP page -->
    ...
    <%......
           session.setAttribute("testSession","Hello session");
           reqeust.setAttribute("testRequest","Hello request");
    %>
    <a href="JspServlet?action=toServlet">click me</a>
    <form action="JspServlet?action=toServlet" method="post" name="form">
           <input name="username" type="test" />
           <input type="submit" value="submit">
    </form>
    ...

    1、對(duì)于該JSP頁(yè)面 form表單的內(nèi)容,如 <input>標(biāo)簽,在 servlet可用 request.getParameter("username");獲取。
    2、URL:比如這里的 <a>標(biāo)簽的 href屬性與 <form>標(biāo)簽的 action屬性的值 "JspServlet?action=toServlet",在 servlet同樣用 request.getParameter("action")獲取;所要注意的是這里的 url 要和 servlet在web.xml里的 <url-pattern>標(biāo)簽的路徑所對(duì)應(yīng)。這部分后面會(huì)提到。
    3、java片段代碼,servlet只能接到 session.setAttribute("testSession","Hello session")的內(nèi)容,而接不到 request的內(nèi)容。在 servlet里用 request.getSession().getAttribute("testSession")獲取 session內(nèi)容。

    二、Servlet
    1、關(guān)于 servlet,首先要提到它在 web.xml里的注冊(cè)內(nèi)容,如

        <servlet-name>JspServlet1</servlet-name>
            <servlet-class>com.demo.JspServletDemo</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>JspServlet1</servlet-name>
            <url-pattern>/JspServlet</url-pattern>
        </servlet-mapping>

        <servlet-name>JspServlet2</servlet-name>
            <servlet-class>com.demo.JspServletDemo</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>JspServlet2</servlet-name>
            <url-pattern>/admin/JspServlet</url-pattern>
        </servlet-mapping>

    假如 project name 是 jsp2servlet,則該 project根目錄的 Context是 /jsp2servlet,在地址欄里顯示是 http://localhost:8080/jsp2servlet/;
    在 project 根目錄下有 admin目錄,對(duì)應(yīng)的 Context是/admin/jsp2servlet,在地址欄里顯示是 http://localhost:8080/jsp2servlet/admin,
    在這兩個(gè)目錄下的 jsp 都想轉(zhuǎn)到 com.demo.JspServletDemo類(lèi)做處理,這時(shí)的 url需要在 web.xml注冊(cè)兩次。
        1)在 http://localhost:8080/jsp2servlet/ 目錄下的 jsp 頁(yè)面 JspServlet1,url應(yīng)寫(xiě)為 "JspServlet"
        2)在 http://localhost:8080/jsp2servlet/admin/ 目錄下的 jsp 頁(yè)面訪問(wèn) JspServlet2,url應(yīng)寫(xiě)為 "admin/JspServlet"

    2、在 servlet直接用 request對(duì)象,得到發(fā)送來(lái)的請(qǐng)求內(nèi)容;用 request.getSession(),得到 session對(duì)象,從而得到會(huì)話內(nèi)容。

    這里的 request.getSession()的參數(shù)為 boolean 類(lèi)型,該方法意思可理解為:

    session可以認(rèn)為是每一個(gè)IE進(jìn)程對(duì)應(yīng)一個(gè)會(huì)話(新開(kāi)一個(gè)IE進(jìn)程就可以對(duì)應(yīng)兩個(gè)會(huì)話的),getSession都是返回當(dāng)前用戶的會(huì)話對(duì)象,參數(shù)的區(qū)別在于:
    參數(shù)為true (默認(rèn)),則如果“當(dāng)前用戶的會(huì)話對(duì)象”為空(第一次訪問(wèn)時(shí))則創(chuàng)建一個(gè)新的會(huì)話對(duì)象返回;
    參數(shù)為false,則如果“當(dāng)前用戶的會(huì)話對(duì)象”為空,則返回 null (即不自動(dòng)創(chuàng)建會(huì)話對(duì)象)。

    利用這個(gè)方法可以判斷 session是否過(guò)期,如下:

    if(request.getSession(false)==null)
       System.out.println("Session has been invalidated!");
    else
       System.out.println("Session is active!");
    三、Servlet -> JSP
    從 servlet轉(zhuǎn)到 jsp不外乎兩種方法,重定向 和 url轉(zhuǎn)發(fā)

    1、重定向 ( Redirect):是路徑的跳轉(zhuǎn),內(nèi)容和 url都改變。不允許帶 request參數(shù)( session參數(shù)可以),即不允許在 servlet里給 request對(duì)象使用setAttribute方法傳給下一頁(yè)面。在 servlet里使用 response.sendRedirect(url) 方法。注意這里的 url前不帶斜線 /,如 response.sendRedirect(”test.jsp“)

    2、url轉(zhuǎn)發(fā) ( Forward):是頁(yè)面的跳轉(zhuǎn),頁(yè)面內(nèi)容發(fā)生改變,url不變。可以帶 request和 session參數(shù)。在 servlet里使用 getServletConfig().getServletContext().getRequestDispatcher(url).forward(request, response)。而這里的 url前需要帶斜線 /,如getServletConfig().getServletContext().getRequestDispatcher(”/test.jsp“).forward(request, response)

     

    posted on 2009-04-19 18:27 胖胖泡泡 閱讀(688) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲婷婷五月综合狠狠爱| 国产精品亚洲二区在线| 国产亚洲情侣一区二区无码AV| 免费三级毛片电影片| a级毛片在线视频免费观看| 亚洲国产成人久久综合| 亚洲精品中文字幕无码AV| 久久久久久久综合日本亚洲| 免费国产高清视频| 女人18特级一级毛片免费视频| 100部毛片免费全部播放完整| 中文字幕无线码中文字幕免费| 亚洲国产精品成人午夜在线观看 | 亚洲国产日韩在线成人蜜芽| 亚洲线精品一区二区三区影音先锋| 日本一道综合久久aⅴ免费| 真人做A免费观看| 中文字幕在线观看免费视频| 两个人日本WWW免费版| 一进一出60分钟免费视频| 亚洲AV无码国产一区二区三区| 亚洲大成色www永久网址| 亚洲最大在线观看| 97亚洲熟妇自偷自拍另类图片| 亚洲精品成人无码中文毛片不卡| 亚洲国产精品成人| 亚洲第一区精品日韩在线播放| 日本高清免费网站| 免费看片免费播放| 成人免费看黄20分钟| 一二三四免费观看在线视频中文版| 亚洲黄色免费观看| 亚洲免费二区三区| 日本妇人成熟免费中文字幕| 亚洲精品免费在线| 特级做A爰片毛片免费69| 成人毛片免费网站| 日本二区免费一片黄2019| 免费jjzz在线播放国产| 免费一级毛片不卡不收费| 亚洲精品天堂成人片?V在线播放|