IE6中奇偶中文参数乱码的问题

form是以post方式传递的,pager-taglib中接受到得参数会以get方式传递,所以接受到得参数会是乱码,解决办法将tomcat的server.xml中的connector改为:

<Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" 
               URIEncoding="UTF-8"/>

 通过的上面的设置,在IE6中传递偶数的中文参数不会有问题,但是传递基数的中文参数同样是乱码(此问题只有iE6有,IE7其他浏览器都不存在此问题)。问题解决办法:引入java.net.URLEncoder包,将要传递的中文字符通过URLEncoder.encode(request.getParameter("key"),"utf-8")解析传递即可。

<%@ page language="java" pageEncoding="utf-8"%>
<%@page import="java.net.URLEncoder;"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<form action="lucene/search.do" method="post">
	<label>时间范围:</label>
	<input name="sDate" type="text" onfocus="HS_setDate(this)" readonly>&nbsp;&nbsp;至&nbsp;&nbsp;
	<input name="eDate" type="text" onfocus="HS_setDate(this)" readonly>
	<label>&nbsp;&nbsp;关键字:</label>
	<input name="key" type="text">
	&nbsp;&nbsp;
	<input  type="submit" value="搜索" style="color:#000;">
	&nbsp;&nbsp;
</form>

<pg:pager url="lucene/search.do" index="half-full" items="${Pager.totalcount}" maxPageItems="${Pager.limit}"
		  export="currentPageNumber=pageNumber" scope="request">
		  <pg:param name="totalCount" value="${Pager.totalcount}"></pg:param>
		  <pg:param name="limit" value="${Pager.limit}"></pg:param>
		  <pg:param name="sDate" value="${sDate}"/>
		  <pg:param name="eDate" value="${eDate}"/>
		   
	<table width="100%" border="0" cellspacing="0" cellpadding="0" class="list1" id="table1">
	    <tr>
	      <th width="40" class="num">序号</th>
	      <th width="80">&nbsp;</th>
	      <th width="266">情报标题</th>
	      <th width="292">时间</th>
	      <th width="204">来源</th>
	    </tr>
	          <c:forEach var="info" items="${Pager.data}" varStatus="i">
					<tr>
						<td class="num">${i.count}</td>
	                     <td class="ico"></td>
						 <td> <a href="information/detail.do?id=${info.id}&key=<%=URLEncoder.encode(request.getParameter("key"),"utf-8")%>"target="mainFrame">${info.title}</a>
						 </td>
						<td> <fmt:formatDate value="${info.createDate}" pattern="yyyy-MM-dd" />
						</td>
						<td>${info.source}
						</td>	
					</tr>	
				</c:forEach>
	</table>
	
	   <div class="page">
		<div>第 <B>${currentPageNumber}</B> / <SPAN>${Pager.totalpage}</SPAN> 页 每页<B>${Pager.limit}</B> 条 共<B>${Pager.totalcount}</B>条记录 </div>
		<div>
			<pg:first><a href="${pageUrl}&key=<%=URLEncoder.encode(request.getParameter("key"),"utf-8")%>">首页</a></pg:first>
			<pg:prev><a href="${pageUrl}&key=<%=URLEncoder.encode(request.getParameter("key"),"utf-8")%>">上一页</a></pg:prev>
			<pg:pages>&nbsp;<a href="${pageUrl}&key=<%=URLEncoder.encode(request.getParameter("key"),"utf-8")%>">${pageNumber}</a>&nbsp;</pg:pages>
			<pg:next><a href="${pageUrl}&key=<%=URLEncoder.encode(request.getParameter("key"),"utf-8")%>">下一页</a></pg:next>  
			<pg:last><a href="${pageUrl}&key=<%=URLEncoder.encode(request.getParameter("key"),"utf-8")%>">尾页</a></pg:last>
		</div>
	</div>	
</pg:pager>

 

你可能感兴趣的:(tomcat,C++,c,jsp,Lucene)