JSP內置對象——request 及其響應get和post請求的實例


request對象
客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應。它是HttpServletRequest類的實例。request對象具有請求域,即完成客戶端的請求之前,該對象一直有效。常用方法如下:
String getParameter(String name) 返回name制定參數的參數值
String[] getParameterValues(String name) 返回草含參數name的所有值的數組
void setAttribute(String,Object) 存儲此請求中的屬性。
object getAttribute(Stirng name) 返回iu指定屬性的屬性值
String getContentType() 得到請求體的MIME類型
String getProtocol() 返回請求用的協議類型及版本號
String getServerName() 返回接受請求的服務器主機名

request對象響應post請求
首先我們在reg.jsp中寫一個表單用於提交包含用戶名和愛好的表單:

<form name="regForm" action="request.jsp" method="post">
<table>
  <tr>
    <td>用戶名:</td>
    <td><input type="text" name="username"></td>
  </tr>
  <tr>
    <td>愛好:</td>
    <td>
      <input type="checkbox" name="favorite" value="read">讀書
      <input type="checkbox" name="favorite" value="music">音樂
      <input type="checkbox" name="favorite" value="movie">電影
      <input type="checkbox" name="favorite" value="internet">上網
    </td>
  </tr>
  <tr>
    <td colspan="2"><input type="submit" value="提交"></td>
  </tr>
</table>
</form>

表單的目標頁面是"request.jsp",我們可以新建一個request.jsp用於顯示表單提交的信息。
為了避免中文亂碼,我們統一使用utf-8格式編碼,所以(特別是在輸入——比如用戶名——為中文的時候)我們需要為request設置一下編碼,如下:

<%
    request.setCharacterEncoding("utf-8");
%>

然后我們可以通過如下代碼顯示表單提交的信息:

用戶名:<%=request.getParameter("username") %><br>
愛好:
<%
    String[] favorites = request.getParameterValues("favorite");
    for (String favorite : favorites) 
        out.println(favorite + "&nbsp;&nbsp;");
%><br>

效果如下:

    

request對象同樣可以響應get請求。
為了模擬這個過程,我們需要在reg.jsp頁面中添加一段超鏈接的代碼模擬以模擬一個get請求:

<a href="request.jsp?username=月光詩人&favorite=read&favorite=movie">get請求</a>

效果如下:

   

 


可能存在一些情況是get請求傳參的時候出現了中文亂碼(我這里沒有出現),解決辦法是:

打開tomcat目錄下conf目錄下的server.xml文件,找到如下內容:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

在Connector標簽中加上屬性URIEncoding="utf-8",如下:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/>

既可解決get請求中的中文亂碼問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM