中文乱码问题

 对Java中的某个字符串进行URL编码,其实是在对它的某种字符集编码(非Unicode码)数据进行URL编码,而Java中的字符串是以Unicode字符集编码存在的,所以,在对Java中的字符串进行URL编码时,必须指定是对这个字符串的哪种非Unicode的字符集编码进行URL编码。

JDK的java.net包中有两个类:URLEncoder和URLDecoder,URLEncoder类中定义了一个encode静态方法来完成URL编码,URLDecoder类中定义了一个decode静态方法来完成URL解码。

public static String encode(String s,String enc)
                    throws UnsupportedEncodingException

public static String decode(String s,String enc)
                    throws UnsupportedEncodingException

浏览器怎样进行URL编码

 浏览器对FORM表单中输入的中文字符都会进行URL编码后再传送给WEB服务器。

 对于页面中的FORM表单中输入的内容,浏览器将按照当前显示页面时所采用的字符集编码来进行URL编码。

与请求参数的字符集编码相关的方法

  getCharacterEncoding方法

 setCharacterEncoding方法

getParameter方法的中文问题à实践

 

l  解决getParameter方法读取POST方式下的“application/x-www-form-urlencoded”编码格式的实体内容中的参数时的乱码。

l  解决getParameter方法读取URL地址后面的参数时的乱码。

l  了解Servlet之间进行调用时传递参数的乱码问题。

使用<meta>标签模拟响应消息头

问题:

利用HTTP消息的响应头字段,可以让浏览器完成各种有用的功能,但是,这需要通过编写WEB服务器端的程序来实现。如果不会服务器端编程的普通HTML页面制作者也想借助HTTP消息的响应头字段来实现一些特殊功能,他们该怎么办呢?

解决方案:

HTML语言中专门定义了<meta>标签的http-equiv属性来在HTML文档中模拟HTTP响应消息头,当浏览器读取到HTML文档中具有http-equiv属性的<meta>标签时,它会用与处理WEB服务器发送的响应消息头一样的方式来进行处理。   

举例:

ü <meta http-equiv="Expires" content="0">

ü <meta http-equiv="Cache-Control" content="no-cache">

ü <meta http-equiv="Pragma" content="no-cache">

ü <meta http-equiv="Refresh" content="0;url=http://www.it315.org">

ü <meta http-equiv="Content-Type" content="text/html; charset=GB2312">

 

你可能感兴趣的:(java,html,浏览器,servlet,url,web服务)