亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JSP對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼的兩種方式

 更新時間:2013年09月23日 15:59:21   作者:  
使用JSP操作中文時,經(jīng)常會出現(xiàn)一些亂碼問題。這里,我們只談一下對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼時的編碼方式。眾所周知,要對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼,只需要一個語句就可以了,很簡單
最近做的DRP項目中,使用JSP操作中文時,經(jīng)常會出現(xiàn)一些亂碼問題。這些問題導(dǎo)致中文無法輸入,或者是無法正常顯示。這里就涉及到了字符集的設(shè)置、字符集的編碼方式。

在JSP/Servlet中主要有以下幾個地方可以設(shè)置編碼,pageEncoding="GB18030",contentType="text/html;charset=GB18030"、request.setCharacterEncoding("GB18030")和 response.setCharacterEncoding("GB18030"),其中前兩個只能用于JSP中,而后兩個可以用于JSP和Servlet 中。

這里,我們只談一下對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼時的編碼方式。眾所周知,要對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼,只需要一個語句就可以了,很簡單。

方案一:(很簡單吧)
復(fù)制代碼 代碼如下:

<span style="font-family:Microsoft YaHei; font-size:18px">request.setCharacterEncoding("GB18030");</span><span style="font-family:'Microsoft YaHei'; font-size:18px"></span>

但是,這里就出現(xiàn)了一個問題,需要設(shè)置字符級的頁面有很多,而且,這樣的方式也缺乏靈活性,對于日后的維護限制很大,因此,我對方案一進行了一下優(yōu)化,加入了Filter接口,將設(shè)置字符集的語句抽象出一個java類,該java類實現(xiàn)了Filter接口。下面我們來看一下代碼。

方案二:(采用Filter統(tǒng)一處理字符集)
復(fù)制代碼 代碼如下:

<span style="font-family:Microsoft YaHei; font-size:18px">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 org.omg.CORBA.Request;

/**
* 采用Filter統(tǒng)一處理字符集
* @author jerry
*
*/
public class CharsetEncodingFilter implements Filter {

private String encoding = null;

public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

//System.out.println("CharsetEncodingFilter--->>>>begin");
// 設(shè)置字符集
request.setCharacterEncoding(encoding);

// 繼續(xù)執(zhí)行
chain.doFilter(request, response);

//System.out.println("CharsetEncodingFilter--->>>>end");
}

public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
//System.out.println("System.out.println---->>>encoding" + encoding);
}
}</span>

有了Filter類還不行,還需要在web.xml中進行配置。
復(fù)制代碼 代碼如下:

<span style="font-family:Microsoft YaHei; font-size:18px"><filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>com.bjpowernode.drp.util.filter.CharsetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB18030</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping></span>

在這里,對編碼方式進行了一個靈活的設(shè)置,可以在配置文件中靈活更改,為日后的維護簡化了很多。

從這個小例子中,我們可以看到,其實有很多的代碼是可以進行優(yōu)化的,從能實現(xiàn)功能的簡單代碼逐漸優(yōu)化成不懼各種修改、各種維護的更優(yōu)代碼,這其中更多的是對代碼優(yōu)化的思考,顯然,我還不夠格,還需要更多的練習(xí),更多的思考。

相關(guān)文章

  • JSP中圖片的上傳與顯示方法實例詳解

    JSP中圖片的上傳與顯示方法實例詳解

    這篇文章主要介紹了JSP中圖片的上傳與顯示方法,以實例形式較為詳細的分析了數(shù)據(jù)庫的創(chuàng)建、圖片存儲、圖片文件的傳輸及頁面顯示等相關(guān)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • JSP驗證碼簡單生成方法

    JSP驗證碼簡單生成方法

    這篇文章主要介紹了JSP驗證碼簡單生成方法,實例分析了jsp驗證碼圖片的生成技巧,涉及jsp數(shù)學(xué)運算及圖像處理方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • asp.net getRemoteAddr()與 getRemoteHost()的區(qū)別

    asp.net getRemoteAddr()與 getRemoteHost()的區(qū)別

    getRemoteAddr()與 getRemoteHost()的區(qū)別小結(jié),需要的朋友可以參考下。
    2009-12-12
  • JSP刷新頁面表單重復(fù)提交問題解決辦法分享

    JSP刷新頁面表單重復(fù)提交問題解決辦法分享

    最近做項目中有多附件上傳及信息多次添加功能,其中就遇到了刷新頁面導(dǎo)致上次提交的數(shù)據(jù)重復(fù)保存的問題,以下是解決方法,有需要的朋友可以參考一下
    2013-10-10
  • Java Servlet和JSP教程

    Java Servlet和JSP教程

    Java Servlet和JSP教程...
    2006-10-10
  • JSP動態(tài)實現(xiàn)web網(wǎng)頁登陸和注冊功能

    JSP動態(tài)實現(xiàn)web網(wǎng)頁登陸和注冊功能

    這篇文章主要介紹是動態(tài)實現(xiàn)web網(wǎng)頁登陸和注冊功能的示例代碼,文中代碼講解詳細,對我們學(xué)習(xí)JSP有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • servlet+JSP+mysql實現(xiàn)文件上傳的方法

    servlet+JSP+mysql實現(xiàn)文件上傳的方法

    這篇文章主要介紹了servlet+JSP+mysql實現(xiàn)文件上傳的方法,涉及JSP文件傳輸與判斷及數(shù)據(jù)庫操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • jsp hibernate 數(shù)據(jù)保存操作的原理

    jsp hibernate 數(shù)據(jù)保存操作的原理

    當執(zhí)行到session.save()方法時,Hibernate并不會馬上生成insert SQL語句來進行數(shù)據(jù)的保存,而是當稍后清理session的緩存時才有可能執(zhí)行insert SQL語句,那么session.save()方法到底會執(zhí)行哪些步驟呢?
    2008-11-11
  • Java中四種XML解析技術(shù)

    Java中四種XML解析技術(shù)

    Java中四種XML解析技術(shù)...
    2006-10-10
  • jsp+ajax實現(xiàn)的局部刷新較驗驗證碼(onblur事件觸發(fā)較驗)

    jsp+ajax實現(xiàn)的局部刷新較驗驗證碼(onblur事件觸發(fā)較驗)

    這篇文章主要介紹了jsp+ajax實現(xiàn)的局部刷新較驗驗證碼,基于onblur事件觸發(fā)較驗功能,以實例形式詳細的分析了前臺顯示、圖片生成及Ajax動態(tài)驗證等詳細技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10

最新評論