程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 請求轉發jsp頁面亂碼問題的快速解決方法,轉發jsp頁面亂碼

請求轉發jsp頁面亂碼問題的快速解決方法,轉發jsp頁面亂碼

編輯:關於JSP

請求轉發jsp頁面亂碼問題的快速解決方法,轉發jsp頁面亂碼


•在最近的項目中 使用了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頁面亂碼問題的快速解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持幫客之家。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved