欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 程序设计 >> JAVA教程 >> SERVLET与JSP >> 教程正文

  没有公告

教程: JAVA SERVLET与JSP教程-关于Servlet、Jsp中的多国语言显示(2) 更多...
教程: JAVA SERVLET与JSP教程-关于Servlet、Jsp中的多国语言显示(2)
我是这么做的,建立一个Servlet基类,覆盖service方法,在调用父类的service方法前读取并解析form提交的内容,请看下面的源代码:
package com.hto.servlet;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
* Insert the type´s description here.
* Creation date: (2001-2-4 15:43:46)
* @author: 钱卫春
*/
public class UTF8ParameterReader {
Hash pairs = new Hash();
/**
* UTF8ParameterReader consuctor comment.
*/
public UTF8ParameterReader(HttpServletRequest request) throws java.io.IOException{
super();
parse(request.getQuerySing());
parse(request.getReader().readLine());
}
/**
* UTF8ParameterReader consuctor comment.
*/
public UTF8ParameterReader(HttpServletRequest request,Sing encoding) throws java.io.IOException{
super();
parse(request.getQuerySing(),encoding);
parse(request.getReader().readLine(),encoding);
}
public static Sing decode(Sing s) throws Exception {
SingBuffer sb = new SingBuffer();
for(int i=0; i<s.length(); i ) {
char c = s.charAt(i);
switch (c) {
case ´ ´:
sb.append(´ ´);
break;
case ´%´:
y {
sb.append((char)Integer.parseInt(
s.subsing(i 1,i 3),16));
}
catch (NumberFormatException e) {
throw new IllegalArgumentException();
}
i = 2;
break;
default:
sb.append(c);
break;
}
}
// Undo conversion to external encoding
Sing result = sb.toSing();
byte[] inputBytes = result.getBytes("8859_1");
return new Sing(inputBytes,"UTF8");
}
public static Sing decode(Sing s,Sing encoding) throws Exception {
SingBuffer sb = new SingBuffer();
for(int i=0; i<s.length(); i ) {
char c = s.charAt(i);
switch (c) {
case ´ ´:
sb.append(´ ´);
break;
case ´%´:
y {
sb.append((char)Integer.parseInt(
s.subsing(i 1,i 3),16));
}
catch (NumberFormatException e) {
throw new IllegalArgumentException();
}
i = 2;
break;
default:
sb.append(c);
break;
}
}
// Undo conversion to external encoding
Sing result = sb.toSing();
byte[] inputBytes = result.getBytes("8859_1");
return new Sing(inputBytes,encoding);
}
/**
* Insert the method´s description here.
* Creation date: (2001-2-4 17:30:59)
* @return java.lang.Sing
* @param name java.lang.Sing
*/
public Sing getParameter(Sing name) {
if (pairs == null || !pairs.containsKey(name)) return null;
return (Sing)(((ArrayList) pairs.get(name)).get(0));
}
/**
* Insert the method´s description here.
* Creation date: (2001-2-4 17:28:17)
* @return java.util.Enumeration
*/
public Enumeration getParameterNames() {
if (pairs == null) return null;
return pairs.keys();
}
/**
* Insert the method´s description here.
* Creation date: (2001-2-4 17:33:40)
* @return java.lang.Sing[]
* @param name java.lang.Sing
*/
public Sing[] getParameterValues(Sing name) {
if (pairs == null || !pairs.containsKey(name)) return null;
ArrayList al = (ArrayList) pairs.get(name);
Sing[] values = new Sing[al.size()];
for(int i=0;i<values.length;i )
values[i] = (Sing) al.get(i);
return values;
}
/**
* Insert the method´s description here.
* Creation date: (2001-2-4 20:34:37)
* @param urlenc java.lang.Sing
*/
private void parse(Sing urlenc) throws java.io.IOException{
if (urlenc == null) return;
SingTokenizer tok = new SingTokenizer(urlenc,"&");
y{
while (tok.hasMoreTokens()){
Sing aPair = tok.nextToken();
int pos = aPair.indexOf("=");
Sing name = null;
Sing value = null;
if(pos != -1){
name = decode(aPair.subsing(0,pos));
value = decode(aPair.s

[1] [2] [3] [4] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    access基础知识
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网