1. 程式人生 > >JSP中請求轉發和重定向區別和中文亂碼問題解決方法

JSP中請求轉發和重定向區別和中文亂碼問題解決方法



1.請求的轉發和重定向:
 1).本質區別:請求的轉發只發出了一次請求,而重定向則發出了兩次請求。
 具體:
   ①請求轉發:位址列是初次發出請求的地址
     請求的重定向:位址列不再是初次傳送的請求地址,位址列為最後響應的那個地址。
    
   ②請求轉發:在最終的Servlet中,request物件和中轉的request是同一物件
     請求的重定向:在最終的Servlet中,request物件和中轉的request不是同一物件.
  
   ③請求轉發:只能轉發給當前的WEB應用的資源
     請求的重定向:可以重定向到任何資源
    
   ④請求轉發:/代表的是當前WEB應用的根目錄
    請求的重定向:/代表的是當前WEB站點的根目錄
  
   //1.請求轉發的程式碼
    request.getRequestDispatcher("/c.jsp").forward(request, response);
    
   //2.請求的重定向
   // response.sendRedirect("c.jsp");
    //可以重定向到任何資源
    response.sendRedirect("

http://www.baidu.com");

2.中文亂碼

1). 在 JSP 頁面上輸入中文, 請求頁面後不出現亂碼: 保證  contentType="text/html; charset=UTF-8",
    pageEncoding="UTF-8" charset 和 pageEncoding 的編碼一致, 且都支援中文. 通常建議取值為UTF-8
   
        還需保證瀏覽器的顯示的字元編碼也和請求的 JSP 頁面的編碼一致.
       
2). 獲取中文引數值: 預設引數在傳輸過程中使用的編碼為 ISO-8859-1

①. 對於 POST 請求: 只要在獲取請求資訊之前(在呼叫 request.getParameter 或者是 request.getReader 等),
呼叫 request.setCharacterEncoding("UTF-8") 即可.

②. 對於 GET 請求: 前面的方式對於 GET 無效. 可以通過修改 Tomcat 的 server.xml 檔案的方式.

參照 http://localhost:8080/docs/config/http.html 文件的 useBodyEncodingForURI 屬性.
為 Connector 節點新增 useBodyEncodingForURI="true" 屬性即可.

<Connector connectionTimeout="20000" port="8989" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>

相關推薦

JSP請求轉發定向區別中文亂碼問題解決方法

 1.請求的轉發和重定向:  1).本質區別:請求的轉發只發出了一次請求,而重定向則發出了兩次請求。  具體:    ①請求轉發:位址列是初次發出請求的地址      請求的重定向:位址列不再是初

ServletRequest HttpServletRequest 請求方法 獲取請求引數 請求轉發 請求包含 請求轉發定向區別 獲取請求頭欄位

ServletRequest 基本概念 JavaWeb中的 "Request"物件  實際為   HttpServletRequest  或者  ServletRequest,   兩者都為介面 伺服器接收請求後,將請求資料進行物件封裝 功能大致分類

詳細的請求轉發定向的重要區別及使用場景選擇

請求轉發與重定向的區別及使用場景選擇 一、請求轉發: 伺服器行為: 因為它是程式碼與程式碼之間的資源跳轉 特點: 轉發的所有Servlet都是同一個請求,使用同一個request和response! 由最後一個Servlet完成響應體! 當前Servlet可以設

轉發定向區別

轉發和重定向的區別 (1)能否共享request物件 a.轉發可以,而重定向不行 當請求到達容器,容器建立request物件和response物件,當響應傳送完畢,容器會銷燬這兩個物件。也就是說,request物件和response物件的生存時間時一次請求和響應

請描述轉發定向區別

轉發和重定向的區別 : request.getRequestDispatcher()是容器中控制權的轉向,在客戶端瀏覽器位址列中不會顯示出轉向後的地址;伺服器內部轉發,整個過程處於同一個請求當中。 response.sendRedirect()則是完全的跳轉,瀏覽器將會得到跳轉的地址,並

請求轉發定向、包含的區別

概述 Servlet的service()方法是由Servlet容器來呼叫的,使用者不能在一個Servlet物件中直接呼叫另一個Servlet物件的servie()方法,因為一個Servlet物件無法得到另一個Servlet物件的引用。為了能夠得到另一個serv

關於域物件請求轉發定向的適用範圍

* 介面:* * 定義規則:先有介面,程式設計師按照介面進行開發* UserService userService:專案經理定義介面* * 程式設計師,按照介面及開發,不管後續誰繼續開發功能,都在一個規則之下* * * 什麼時候使用轉發?* 需要使用request中的資料,

Servlet 及 請求轉發定向

style pattern load 需要 shutdown att nbsp host 瀏覽器 Servlet: Java編寫的服務器端程序,處理客戶端的http請求並將其結果發送到客戶端。Servlet容器Tomcat: 最熟悉的是容器就是tomcat。在tomcat中

Servlet學習筆記(四)之請求轉發定向(RequestDispatcher與sendRedirect)

ServletContext可以實現請求轉發(ServletContext請求轉發相關內容見之前部落格:http://blog.csdn.net/megustas_jjc/article/details/53191657),request也可以。HttpServletRequest 和 ServletCont

Servlet 請求轉發定向

請求轉發和重定向 重定向 /* 之前的寫法 response.setStatus(302); response.setHeader("Location", "login_success.html");*/ //重定向寫法: 重新定位方向

Web前端之cookie、session、請求轉發定向

http協議的特點:稱之為無狀態, 請求與請求之間不會記錄狀態(狀態就包括請求引數等資訊) Cookie:記錄多個請求之間的聯絡,儲存伺服器狀態(實現記住使用者名稱的功能) 建立Cookie Cookie c = new Cookie("名字", "值"); 瀏覽器每個域名下能夠

請求轉發定向

請求轉發: request.getRequestDispatcher(“/main.html”).forward(request, response); 請求轉發是伺服器內部跳轉,位

javaweb中文亂碼解決方法總結之responserequest解決方法

一中文論碼問題出現的由來         之所以會產生亂碼問題,不僅僅是中文亂碼,其原因就在於:編碼和解碼採用了不同的碼錶。而之所以會有編碼和解碼這一回事,也是因為,無論資料是在傳輸還是儲存等等過程中

java 定向(引數中文亂碼

            java在servlet中使用重定向response.sendRedirect時,連結中的引數列表為中文時將會獲取不到引數資料。 解決方案為:將引數轉化為iso-8859-1編

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題:為什麼設定UTF-8之後還是亂碼

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題:為什麼設定UTF-8之後還是亂碼? 問題:jsp讀取的value值亂碼;設定UTF-8之後還是亂碼…… 備註:本文是轉載的,題目上增加關鍵詞方便查詢

Java Web Servlet 中文亂碼解決方法

Servlet中文亂碼問題解決方法 import java.io.*; import java.net.URLEncoder; import javax.servlet.*; import javax

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題

備註:本文是轉載的,題目上增加關鍵詞方便查詢,另外部分文字排版了,方便檢視。(點選檢視源網頁) 原文: 在Java 開發中,如果框架搭建的不完善或者初學者在學習過程中,出現中文亂碼是經常的事兒。(哈。誰讓發明java語言的不是中國人呢) 今天跟大家分享幾個

xshell出現中文亂碼解決方法

        作為一個IT程式設計師,經常需要遠端登入Linux系統的伺服器,使用工具Xshell工具,但是很多時候出現中文問題。根本原因為遠端伺服器Linux系統和本地系統的編碼不一致導致的 。此處的資訊雖然是“總共76”兩個中文漢字,但還是顯示亂碼。一、問題原因:1、遠

idea軟體編碼已經設定好了為utf-8,但是svndown下來的檔案格式本身不是utf-8的,此時開啟後會出現中文亂碼解決方法

我是個idea的忠實使用者,新公司的專案都是用eclipse做的,通過svn拉下程式碼後發現,註釋的內容裡,中文內容都是亂碼。問過專案負責人,說可能是GBK編碼。 但是,我通過idea的setting設定了編碼,試了5種編碼都沒用,中文內容還是亂碼。最後還是自己試出來解決方案。 詳細的原因請參考

Tomcat 日誌(控制檯)中文亂碼解決方法

背景: windows系統以Linux指令碼啟動服務 問題 在Tomcat中有時輸出的日誌中文為亂碼,包括控制檯視窗和輸出日誌檔案中都為亂碼。 解決方案 JDK引用的設定 Java引用引數新增"-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8" 將上面