我在页面的下拉列表中显示数据库(sqlserver)的中文数据,能正常显示。但选中下拉列表的值,通过action的处理,再跳转到下一个页面显示这个中文时,是乱码。怎么办啊第一个页面,能显示从数据库得到的值
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page import="java.sql.ResultSet"%><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'ddWmz.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
<!--
.button1 {border:1px solid #999999;
font-size:12px;
font-family:Tahoma;
background-color:#ffffcc
}
.style1 {color: #006699;
font-weight: bold;
font-family: "黑体";
font-size: 12px;
}
.style10 {font-size: 12px; color: #006699; font-family: "黑体"; }
.style14 {font-size: 12px; color: #FFFFFF; font-family: "黑体"; font-weight: bold; }
.style15 {color: #006699; font-weight: bold;
font-size:16px;
font-family: "楷体";
}
.style20 {color: #000000; font-size: 12px; font-family: "黑体"; }
.style26 {color: #FF3300}
a:link {
color: #009977;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #003366;
}
a:hover {
text-decoration: underline;
color: #006699;
}
a:active {
text-decoration: none;
color: #006699;
}
-->
</style><script type="text/javascript">
function next()
{
document.form1.action="Ccxs.do";
document.form1.submit();
}
function onchange2()
{
document.form1.action="xxxx.jsp";
document.form1.submit();
}
</script> </head>
<body>
<form name="form1" method="post" >
<table width="760" border="0" align="center" cellspacing="0">
<tr>
<td colspan="3"><span class="style1">订票</span></td>
</tr>
<tr>
<td colspan="3"><hr size="1" /></td>
</tr>
<tr>
<td width="50"> </td>
<td align="center" valign="middle" class="style15"> </td>
<td width="50"> </td>
</tr>
<tr>
<td width="50"> </td>
<td width="660" align="center" valign="middle" class="style15">
<%
ResultSet rs1 = (ResultSet)session.getAttribute("tjz");
String number ="";
%>
<tr class="style15">
<td width="200" align="right" bgcolor="#ffffff">出 发 站:</td>
<td class="style15" align="left" bgcolor="#ffffff">
<select name="cfz">
<option value="no"></option>
<%
if(rs1!=null){
while(rs1.next()){
String s = rs1.getString("tjz");
out.print("<option value=");
out.print(s);
out.print(">"+s); // 这里会从数据库中得到中文 镇江
out.print("</option>");
}
rs1.beforeFirst();
}%>
</select>
</td>
</tr>
<tr>
<td class="style15" align="right" bgcolor="#ffffff">到 达 站:</td>
<td class="style15" align="left" bgcolor="#ffffff">
<select name="ddz">
<option value="no"></option>
<%
if(rs1!=null){
while(rs1.next()){
String s = rs1.getString("tjz");
out.print("<option value=");
out.print(s);
out.print(">"+s);
out.print("</option>");
}
}%>
</select>
</td>
</tr>
</table>
</form>
</body>
</html>然后跳转到下一个 页面,有action 和actionform,如下Action:
package com.train.struts;import java.sql.ResultSet;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.train.model.CcgmM;public class CcgmAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.setCharacterEncoding("utf-8");
CcgmActionForm ccgmaf = (CcgmActionForm)form;
String cfz = ccgmaf.getCfz();
request.setAttribute("cfz", cfz);
String ddz = ccgmaf.getDdz();
request.setAttribute("ddz", ddz);
String zwdj = ccgmaf.getZwdj();
request.setAttribute("zwdj", zwdj);
String number = request.getParameter("number");
request.setAttribute("number", number);
String gmzs = ccgmaf.getGmzs();
CcgmM ccgm = new CcgmM();
ResultSet price = ccgm.price(cfz,ddz,zwdj,number,gmzs);
request.setAttribute("price", price);
return mapping.findForward("success");
}
}
actionForm:package com.train.struts;import org.apache.struts.action.ActionForm;public class CcgmActionForm extends ActionForm {
private String cfz;
private String number;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getCfz() {
return cfz;
}
public void setCfz(String cfz) {
this.cfz = cfz;
}
public String getDdz() {
return ddz;
}
public void setDdz(String ddz) {
this.ddz = ddz;
}
public String getZwdj() {
return zwdj;
}
public void setZwdj(String zwdj) {
this.zwdj = zwdj;
}
public String getGmzs() {
return gmzs;
}
public void setGmzs(String gmzs) {
this.gmzs = gmzs;
}
private String ddz;
private String zwdj;
private String gmzs;}这里在action中得到的上一个页面的值都是乱码。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page import="java.sql.ResultSet"%><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'ddWmz.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
<!--
.button1 {border:1px solid #999999;
font-size:12px;
font-family:Tahoma;
background-color:#ffffcc
}
.style1 {color: #006699;
font-weight: bold;
font-family: "黑体";
font-size: 12px;
}
.style10 {font-size: 12px; color: #006699; font-family: "黑体"; }
.style14 {font-size: 12px; color: #FFFFFF; font-family: "黑体"; font-weight: bold; }
.style15 {color: #006699; font-weight: bold;
font-size:16px;
font-family: "楷体";
}
.style20 {color: #000000; font-size: 12px; font-family: "黑体"; }
.style26 {color: #FF3300}
a:link {
color: #009977;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #003366;
}
a:hover {
text-decoration: underline;
color: #006699;
}
a:active {
text-decoration: none;
color: #006699;
}
-->
</style><script type="text/javascript">
function next()
{
document.form1.action="Ccxs.do";
document.form1.submit();
}
function onchange2()
{
document.form1.action="xxxx.jsp";
document.form1.submit();
}
</script> </head>
<body>
<form name="form1" method="post" >
<table width="760" border="0" align="center" cellspacing="0">
<tr>
<td colspan="3"><span class="style1">订票</span></td>
</tr>
<tr>
<td colspan="3"><hr size="1" /></td>
</tr>
<tr>
<td width="50"> </td>
<td align="center" valign="middle" class="style15"> </td>
<td width="50"> </td>
</tr>
<tr>
<td width="50"> </td>
<td width="660" align="center" valign="middle" class="style15">
<%
ResultSet rs1 = (ResultSet)session.getAttribute("tjz");
String number ="";
%>
<tr class="style15">
<td width="200" align="right" bgcolor="#ffffff">出 发 站:</td>
<td class="style15" align="left" bgcolor="#ffffff">
<select name="cfz">
<option value="no"></option>
<%
if(rs1!=null){
while(rs1.next()){
String s = rs1.getString("tjz");
out.print("<option value=");
out.print(s);
out.print(">"+s); // 这里会从数据库中得到中文 镇江
out.print("</option>");
}
rs1.beforeFirst();
}%>
</select>
</td>
</tr>
<tr>
<td class="style15" align="right" bgcolor="#ffffff">到 达 站:</td>
<td class="style15" align="left" bgcolor="#ffffff">
<select name="ddz">
<option value="no"></option>
<%
if(rs1!=null){
while(rs1.next()){
String s = rs1.getString("tjz");
out.print("<option value=");
out.print(s);
out.print(">"+s);
out.print("</option>");
}
}%>
</select>
</td>
</tr>
</table>
</form>
</body>
</html>然后跳转到下一个 页面,有action 和actionform,如下Action:
package com.train.struts;import java.sql.ResultSet;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.train.model.CcgmM;public class CcgmAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.setCharacterEncoding("utf-8");
CcgmActionForm ccgmaf = (CcgmActionForm)form;
String cfz = ccgmaf.getCfz();
request.setAttribute("cfz", cfz);
String ddz = ccgmaf.getDdz();
request.setAttribute("ddz", ddz);
String zwdj = ccgmaf.getZwdj();
request.setAttribute("zwdj", zwdj);
String number = request.getParameter("number");
request.setAttribute("number", number);
String gmzs = ccgmaf.getGmzs();
CcgmM ccgm = new CcgmM();
ResultSet price = ccgm.price(cfz,ddz,zwdj,number,gmzs);
request.setAttribute("price", price);
return mapping.findForward("success");
}
}
actionForm:package com.train.struts;import org.apache.struts.action.ActionForm;public class CcgmActionForm extends ActionForm {
private String cfz;
private String number;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getCfz() {
return cfz;
}
public void setCfz(String cfz) {
this.cfz = cfz;
}
public String getDdz() {
return ddz;
}
public void setDdz(String ddz) {
this.ddz = ddz;
}
public String getZwdj() {
return zwdj;
}
public void setZwdj(String zwdj) {
this.zwdj = zwdj;
}
public String getGmzs() {
return gmzs;
}
public void setGmzs(String gmzs) {
this.gmzs = gmzs;
}
private String ddz;
private String zwdj;
private String gmzs;}这里在action中得到的上一个页面的值都是乱码。
解决方案 »
- 在三层或者N层结构种,哪几层的类可以全部定义成static静态的。
- HTTP method POST is not supported by this URL ??
- weblogic下,在执行一个JSP的时候的奇怪问题!!!!!!
- 怎么把用JAVA写的游戏移植到JSP上?
- 请教关于变量生存周期的问题
- 数据增加到数据的同时,生成一个静态页面(内容就是增加的内容),大家是怎么处理的.
- 求JQuery Ajax实例,有点蒙
- 怎么实现多列删除
- 有谁能给我讲一下,<jsp:useBean>的class文件,是从哪个目录找的?
- 怎样从数据库的某个表中读取数据,然后写入文本文件中?
- 求助关于struts2.2 dojo标签
- 没有报错,可是总是出现提示要求调试时怎么回事啊?
1·保证所有文件编码格式一致
2·针对post请求,写一个拦截器
3·针对Get请求,在tomcat的Server.xml中的connector标签下添加URIEncoding="UTF-8"