关于Struts中jsp页面上传字符参数变乱码的问题

本文介绍了如何使用URLEncoder和URLDecoder来处理web站点上的检索功能,确保传递的参数正确无误,并通过HashMap来管理这些编码后的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决对策:传递参数之前用URLEncoder进行编码,接收参数之后再用URLDecoder进行解码,中间还需要用一个HashMap存放编码后的参数。

example:(对keyWord编码)
①action
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.HashMap;

try {
    if ( !"".equals( form.getKeyWord() ) ) {
        form.setKeyWord( URLDecoder.decode( form.getKeyWord(), "UTF-8" ) );
    }
} catch ( UnsupportedEncodingException uee ) {
    form.setKeyWord( form.getKeyWord() );

HashMap< String, String > infoHash = form.getInfoHash();
infoHash = new HashMap< String, String >();
String keyWord;
if ( !"".equals( form.getKeyWord() ) ) {
    try {
        keyWord = URLEncoder.encode( form.getKeyWord(), "UTF-8" );
    } catch ( UnsupportedEncodingException uee ) {
        keyWord = form.getKeyWord();
    }
    infoHash.put( "keyWord", keyWord );
}
form.setInfoHash( infoHash );

②form
private String keyWord;(及get,set方法)
private HashMap< String, String > infoHash;(及get,set方法)

③jsp
<html:link action="/action" name ="form" paramId="pageNo" paramName="form" paramProperty="firstPage" property="infoHash">第一页</html:link>

应用对象:web站点上需要检索功能的页面,HashMap中可以存放多个检索对象,比如姓名,介绍等等,也可以用于只有一个关键字的搜索引擎。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值