欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

jsp超链接到java文件,jsp页面超链接传中文终极解决办法

发布时间:2025/3/11 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 jsp超链接到java文件,jsp页面超链接传中文终极解决办法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在做web前端页面的时候,经常碰到传中文问题。网上有许多方案,但仍不能根治,最终要用js或者java的encode相关方法。

常规方案有三部:

1.改tomcat的server.xml中URIEncodeing为utf-8

2.页面中编码设置为utf-8

3.整个项目编码使用utf-8

我这样处理后,在火狐下,不会出现乱码,但IE中奇数个中文时仍有乱码。不过可以通过在页面中用URLEncoder.encode()方法解决,但如果在jsp页面里用又显得繁琐且不美观。

索性自己写个自定义标签来处理

使用此方法就不会再出现IE奇数个汉字成乱码的问题了,不多说,上代码

EncodeTag.java

Java代码 packagemypackage.util;

importjava.io.IOException;

importjava.net.URLEncoder;

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.JspWriter;

importjavax.servlet.jsp.tagext.TagSupport;

importorg.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;

publicclassEncodeTagextendsTagSupport {

privateObject key;//自定义标签的key属性

publicvoidsetKey(Object key)throwsJspException {

this.key=ExpressionEvaluatorManager.evaluate("key", key.toString(), Object.class,this, pageContext);

}

publicintdoEndTag() {

try{// 使用JspWriter获得JSP的输出对象

JspWriter jspWriterOutput = pageContext.getOut();

jspWriterOutput.write(URLEncoder.encode(key.toString(),"utf-8"));

} catch(IOException ioEx) {

System.out.println("IOException in HelloTag "+ ioEx);

}

returnEVAL_PAGE;

}

}

encode.tld(此文件需放在你的web项目的src目录下)

Xml代码 <?xmlversion ="1.0"encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"

version="2.0">

JSTL 1.1 core library

JSTL core

1.1

en

http://www.xxx.org/util/url/encode

urlEncode

mypackage.util.EncodeTag

empty

key

true

java.lang.Object

在jsp中头部引入

Java代码

在jsp中使用

Java代码 ">xxxx

总结

以上是生活随笔为你收集整理的jsp超链接到java文件,jsp页面超链接传中文终极解决办法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。