jsp中的request對象

來源:互聯網
上載者:User

1.關於request對象處理get和post請求,中文可能出現亂碼的問題:
tomcat在處理get和post請求的時候處理方式不同。
POST請求是將參數存放在請求資料包的訊息體中
所以使用request.setCharacterEncoding("utf-8");可以處理
但是GET請求是將參數存放在url中,此時setCharacterEncoding就不起作用了,此時我們需要採用手寫代碼進行轉碼。 (因為tomcat對get請求產生url自動做了iso8859-1編碼)
e.g.: 

String name = new String(request.getParameter("username").getBytes("iso-8859-1"),"utf-8");

也有說修改tomcat配置的:

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

不過自己試了試不知為何貌似無效……


2.關於request對象執行forward和include
HttpServletRequest類提供了一個getRequestDispatcher(String path)方法,其中path為forward/include的目標路徑,返回RequesDispatcher,該對象提供以下兩個方法

forward(ServletRequest request, ServletResponse response):執行forward;include(ServletRequest request, ServletResponse response):執行include;

調用如下:

request.getRequestDispatcher("/a.jsp").include(request, response);request.getRequestDispatcher("/a.jsp").forward(request, response);

forward方法與使用jsp:forward標籤效果一樣,但是include方法與jsp:include標籤效果不同:
include方法調用後path中的內容會被先載入到返回頁面中,然後才是當前頁面內容;
而jsp:include標籤則在什麼位置使用就在什麼位置載入path中的內容。
最後,注意path中的字串必須以“/”開頭。

繼續學習,hoho!~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.