請求轉(zhuǎn)發(fā)jsp頁面亂碼問題的快速解決方法
•在最近的項(xiàng)目中 使用了jsp+servlet來開發(fā)項(xiàng)目,但是由于后臺的不太熟練 導(dǎo)致了困難重重。所幸 學(xué)習(xí)能力還可以 一邊做一遍學(xué)吧。
•今天的問題:請求轉(zhuǎn)發(fā)后頁面的亂碼問題
•由于特殊原因——圖片上傳的form表單無法通過ajax提交 因此必須使用form表單直接提交。但是這樣會導(dǎo)致一個問題:前后臺交互的時候效果不好。為什么效果不好?這里說的不是功能的問題。作為web開發(fā)者,客戶的體驗(yàn)我們要放在第一位。因此,我們必須將對客戶的信息反饋放在一個比較重要的地位。說白了,就是上傳個圖片成沒成功?我發(fā)布的信息是否成功的上傳了?如果你上傳東西的時候網(wǎng)頁沒反應(yīng),或者直接就跳轉(zhuǎn)到其他頁面,他會以為可以了,但是實(shí)際上沒有上傳到服務(wù)器上,原因可能很多,比如說是我現(xiàn)在的網(wǎng)絡(luò)不好,或者文件太大了,或者是你的文件不支持,但是這作為不懂代碼的用戶來說是很難理解的,他們會認(rèn)為你的網(wǎng)站做的實(shí)在是太垃圾了。
•因此,我們才會費(fèi)盡心思的去為客戶去思考,把他們想知道的信息傳達(dá)給他們。
•理所當(dāng)然,ajax很實(shí)用,但是在文件流的情況下是無法通過ajax上傳數(shù)據(jù)的。
•于是 request.getRequestDispacher('url').forward請求轉(zhuǎn)發(fā)和重定向派上了用場。而重定向是無法共享數(shù)據(jù)的,因此只能使用請求轉(zhuǎn)發(fā)。
•在此,文件為uploadServlet和user.jsp頁面。當(dāng)上傳購物的信息時候,我所有信息已經(jīng)插入到后臺,需要為用戶返回信息說,你成功了。那么傳統(tǒng)的方式,request.setAttribute()很實(shí)用,在jsp頁面上用request獲取值判斷是否成功就可以了。
•但是 轉(zhuǎn)發(fā)回來之后 頁面亂碼了。。。
•經(jīng)多方查找資料,終于找到解決方案;
•過濾器 配置成過濾所有的文件。
•現(xiàn)粘貼如下:
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>
以上這篇請求轉(zhuǎn)發(fā)jsp頁面亂碼問題的快速解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 中Spring task定時任務(wù)的深入理解
這篇文章主要介紹了java 中Spring task定時任務(wù)的深入理解的相關(guān)資料,這里提供實(shí)例來幫助大家理解task定時任務(wù),希望大家通過本文掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09完美解決jsp頁面在IE8下文本模式自動為(雜項(xiàng)Quirks)導(dǎo)致頁面顯示錯位
下面小編就為大家?guī)硪黄昝澜鉀Qjsp頁面在IE8下文本模式自動為(雜項(xiàng)Quirks)導(dǎo)致頁面顯示錯位。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
JSP指令元素部分(page指令、include指令、taglib指令),今天抽時間復(fù)習(xí)了一下,并對心得進(jìn)行了整理,下面與大家分享下,希望對大家學(xué)習(xí)jsp有所幫助2013-07-07jsp 判斷l(xiāng)ist是否包含string的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨sp 判斷l(xiāng)ist是否包含string的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10