請(qǐng)求轉(zhuǎn)發(fā)jsp頁(yè)面亂碼問(wèn)題的快速解決方法
•在最近的項(xiàng)目中 使用了jsp+servlet來(lái)開發(fā)項(xiàng)目,但是由于后臺(tái)的不太熟練 導(dǎo)致了困難重重。所幸 學(xué)習(xí)能力還可以 一邊做一遍學(xué)吧。
•今天的問(wèn)題:請(qǐng)求轉(zhuǎn)發(fā)后頁(yè)面的亂碼問(wèn)題
•由于特殊原因——圖片上傳的form表單無(wú)法通過(guò)ajax提交 因此必須使用form表單直接提交。但是這樣會(huì)導(dǎo)致一個(gè)問(wèn)題:前后臺(tái)交互的時(shí)候效果不好。為什么效果不好?這里說(shuō)的不是功能的問(wèn)題。作為web開發(fā)者,客戶的體驗(yàn)我們要放在第一位。因此,我們必須將對(duì)客戶的信息反饋放在一個(gè)比較重要的地位。說(shuō)白了,就是上傳個(gè)圖片成沒(méi)成功?我發(fā)布的信息是否成功的上傳了?如果你上傳東西的時(shí)候網(wǎng)頁(yè)沒(méi)反應(yīng),或者直接就跳轉(zhuǎn)到其他頁(yè)面,他會(huì)以為可以了,但是實(shí)際上沒(méi)有上傳到服務(wù)器上,原因可能很多,比如說(shuō)是我現(xiàn)在的網(wǎng)絡(luò)不好,或者文件太大了,或者是你的文件不支持,但是這作為不懂代碼的用戶來(lái)說(shuō)是很難理解的,他們會(huì)認(rèn)為你的網(wǎng)站做的實(shí)在是太垃圾了。
•因此,我們才會(huì)費(fèi)盡心思的去為客戶去思考,把他們想知道的信息傳達(dá)給他們。
•理所當(dāng)然,ajax很實(shí)用,但是在文件流的情況下是無(wú)法通過(guò)ajax上傳數(shù)據(jù)的。
•于是 request.getRequestDispacher('url').forward請(qǐng)求轉(zhuǎn)發(fā)和重定向派上了用場(chǎng)。而重定向是無(wú)法共享數(shù)據(jù)的,因此只能使用請(qǐng)求轉(zhuǎn)發(fā)。
•在此,文件為uploadServlet和user.jsp頁(yè)面。當(dāng)上傳購(gòu)物的信息時(shí)候,我所有信息已經(jīng)插入到后臺(tái),需要為用戶返回信息說(shuō),你成功了。那么傳統(tǒng)的方式,request.setAttribute()很實(shí)用,在jsp頁(yè)面上用request獲取值判斷是否成功就可以了。
•但是 轉(zhuǎn)發(fā)回來(lái)之后 頁(yè)面亂碼了。。。
•經(jīng)多方查找資料,終于找到解決方案;
•過(guò)濾器 配置成過(guò)濾所有的文件。
•現(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>
以上這篇請(qǐng)求轉(zhuǎn)發(fā)jsp頁(yè)面亂碼問(wèn)題的快速解決方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Jsp中解決session過(guò)期跳轉(zhuǎn)到登陸頁(yè)面并跳出iframe框架的方法
這里我們是介紹一個(gè)網(wǎng)站管理后臺(tái)三個(gè)框架頁(yè)面當(dāng)我們的jsp定義的session變量超時(shí)時(shí)用戶點(diǎn)擊時(shí)自動(dòng)退出框架頁(yè)面并跳到登錄頁(yè)面去了,下面我來(lái)給大家演示一個(gè)實(shí)例2013-08-08
jsp頁(yè)面中如何將時(shí)間戳字符串格式化為時(shí)間標(biāo)簽
本節(jié)主要介紹了jsp頁(yè)面中如何將時(shí)間戳字符串格式化為時(shí)間標(biāo)簽,需要的朋友可以參考下2014-08-08
JAVA/JSP學(xué)習(xí)系列之八(改寫MySQL翻頁(yè)例子)
JAVA/JSP學(xué)習(xí)系列之八(改寫MySQL翻頁(yè)例子)...2006-10-10
jsp SmartUpload 實(shí)現(xiàn)上傳功能代碼
jsp SmartUpload 實(shí)現(xiàn)上傳的代碼,需要的朋友可以參考下。2009-06-06
Servlet實(shí)現(xiàn)文件上傳的三種方法總結(jié)
這篇文章主要介紹了Servlet實(shí)現(xiàn)文件上傳的三種方法總結(jié)的相關(guān)資料,這里提供三種實(shí)例,幫助大家理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08
SpringMVC 數(shù)據(jù)綁定實(shí)例詳解
這篇文章主要介紹了 SpringMVC 數(shù)據(jù)綁定實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
jsp 使用request為頁(yè)面添加靜態(tài)數(shù)據(jù)的實(shí)例
下面小編就為大家分享一篇jsp 使用request為頁(yè)面添加靜態(tài)數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
JSP開發(fā)入門(二)----JSP語(yǔ)法的基本原理
JSP開發(fā)入門(二)----JSP語(yǔ)法的基本原理...2006-10-10
JBuilder2005實(shí)戰(zhàn)JSP之切換控制 圖文步驟
由于在login.jsp的表單中通過(guò)action屬性指定switch.jsp為響應(yīng)的JSP文件,當(dāng)用戶在login.jsp中選定登錄用戶,輸入密碼提交表單后,客戶端將向服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求,服務(wù)器即調(diào)用switch.jsp來(lái)響應(yīng)這個(gè)請(qǐng)求2012-08-08

