請求轉寄jsp頁面亂碼問題的快速解決方案_JSP編程

來源:互聯網
上載者:User

•在最近的項目中 使用了jsp+servlet來開發項目,但是由於背景不太熟練 導致了困難重重。所幸 學習能力還可以 一邊做一遍學吧。

•今天的問題:請求轉寄後頁面的亂碼問題

•由於特殊原因——圖片上傳的form表單無法通過ajax提交 因此必須使用form表單直接提交。但是這樣會導致一個問題:前後台互動的時候效果不好。為什麼效果不好?這裡說的不是功能的問題。作為web開發人員,客戶的體驗我們要放在第一位。因此,我們必須將對客戶的資訊反饋放在一個比較重要的地位。說白了,就是上傳個圖片成沒成功?我發布的資訊是否成功的上傳了?如果你上傳東西的時候網頁沒反應,或者直接就跳轉到其他頁面,他會以為可以了,但是實際上沒有上傳到伺服器上,原因可能很多,比如說是我現在的網路不好,或者檔案太大了,或者是你的檔案不支援,但是這作為不懂代碼的使用者來說是很難理解的,他們會認為你的網站做的實在是太垃圾了。

•因此,我們才會費盡心思的去為客戶去思考,把他們想知道的資訊傳達給他們。

•理所當然,ajax很實用,但是在檔案流的情況下是無法通過ajax上傳資料的。

•於是 request.getRequestDispacher('url').forward請求轉寄和重新導向派上了用場。而重新導向是無法共用資料的,因此只能使用請求轉寄。

•在此,檔案為uploadServlet和user.jsp頁面。當上傳購物的資訊時候,我所有資訊已經插入到後台,需要為使用者返回資訊說,你成功了。那麼傳統的方式,request.setAttribute()很實用,在jsp頁面上用request擷取值判斷是否成功就可以了。

•但是 轉寄回來之後 頁面亂碼了。。。

•經多方尋找資料,終於找到解決方案;

•過濾器 配置成過濾所有的檔案。

•現粘貼如下:

package com.java.Filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class EncodingFilter implements Filter{ public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest req, ServletResponse resp,  FilterChain chain) throws IOException, ServletException {  HttpServletRequest request = (HttpServletRequest) req;  HttpServletResponse response = (HttpServletResponse) resp;  request.setCharacterEncoding("utf-8");  response.setCharacterEncoding("utf-8");  response.setContentType("text/html;charset=UTF-8");  chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub }}

•web.xml配置:

<filter>  <filter-name>EncodingFilter</filter-name>  <filter-class>com.java.Filter.EncodingFilter</filter-class> </filter> <filter-mapping>  <filter-name>EncodingFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>

以上這篇請求轉寄jsp頁面亂碼問題的快速解決方案就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.