用jsp开发人员管理信息出现了问题???(在线求救,给100分)

znef88 2003-09-03 10:49:33
我用jsp开发中,当插入数据库表中时,汉字变成乱码?请高手帮忙?我把代码贴在下面。

文件一:
<%@ include file="../inc/data.jsp"%>
<%@ include file="adm_login.jsp"%>
<%@ page import="java.lang.*" contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>添加新成员</title>
<link href="../inc/styles.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#D7EBFF">
<p align="center"><strong>添加新成员</strong></p>
<form name="form1" method="post" action="add1.jsp" >
<table width="100%" border="0" class="L13">
<tr>
<td width="9%" height="18"><p>姓  名:</p></td>
<td width="91%"><input name="name" type="text" id="name" size="15"></td>
</tr>
<tr>
<td>性  别:</td>
<td><input name="sex" type="radio" value="男" checked>

<input type="radio" name="sex" value="女">
女</td>
</tr>
<tr>
<td>出生日期:</td>
<td><select name="birth_y" size="1" id="birth_y">
<%
//显示年

int I;
for(I=1900;I<=2000;I++)
{
%>
<option value="<%=I%>" <% if (I==1980){%>selected<%}%>><%=I%></option>
<%
}
%>
</select>

<select name="birth_m" size="1" id="birth_m">
<%
//显示月

for(I=1;I<=12;I++)
{
%>
<option value="<%=I%>" <% if (I==6){%>selected<%}%>><%=I%></option>

<%
}
%>
</select>

<select name="birth_d" size="1" id="birth_d">
<%
//显示日

for(I=1;I<=30;I++)
{
%>
<option value="<%=I%>"<% if (I==9) {%> selected <%}%>><%=I%></option>
<%
}
%>
</select>

</td>
</tr>
<tr>
<td>所属部门:</td>
<td><select name="department" size="1" id="department">
<%
//读取部门信息显示到下拉选单
String sql="select * from department order by department_id";
ResultSet rs=stmt.executeQuery(sql);

while(rs.next())
{
String d_name=rs.getString("department_name");
String d_code=rs.getString("department_code");
%>
<option value="<%=d_code%>"><%=d_name%></option>
<%
}
%>
</select>

</td>
</tr>
<tr>
<td>学  历:</td>
<td><input name="xueli" type="text" id="xueli" size="15"></td>
</tr>
<tr>
<td>电  话:</td>
<td><input name="tel" type="text" id="tel" size="15"></td>
</tr>
<tr>
<td>移动电话:</td>
<td><input name="mobile" type="text" id="mobile" size="15"></td>
</tr>
<tr>
<td>传  呼:</td>
<td><input name="bp" type="text" id="bp" size="15"></td>
</tr>
<tr>
<td>E--MAIL:</td>
<td><input name="email" type="text" id="email" size="20"></td>
</tr>
<tr>
<td>相  片:</td>
<td><input type="file" name="phone" size="20"></td>
</tr>
<tr>
<td height="151">简  历:</td>
<td><textarea name="intro" cols="50" rows="10" id="intro"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input name="b1" type="submit" id="b1" value="提交">      
<input name="b2" type="reset" id="b2" value="重置"></td>
</tr>
</table>
</form>
<%
stmt.close();
conn.close();
%>
<p>  </p>
</body>
</html>


文件二:
<%@ page import="java.lang.*" contentType="text/html; charset=gb2312"%>
<%@ include file="../inc/data.jsp"%>
<%@ include file="adm_login.jsp"%>
<head>
<title>添加成员信息</title>
<link href="../inc/styles.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#D7EBFF">
<%
//从表获得数据

String name=request.getParameter("name");
String sex=request.getParameter("sex");
String department=request.getParameter("department");
String birth_y=request.getParameter("birth_y");
String birth_m=request.getParameter("birth_m");
String birth_d=request.getParameter("birth_d");
String tel=request.getParameter("tel");
String mobile=request.getParameter("mobile");
String bp=request.getParameter("bp");
String email=request.getParameter("email");
String xueli=request.getParameter("xueli");
String intro=request.getParameter("intro");
String image=request.getParameter("phone");
if(image!=null&&image.compareTo("")!=0)
{
//获取相片的文件名
int location=image.lastIndexOf("\\");
image=image.substring(location+1);
}
//创建Sql语句

String sql="insert into member_info(name,sex,department,birth_y,birth_m,birth_d,tel,mobile,bp,email,xueli,intro,image) values ('"+name+"','"+sex+"','"+department+"','"+birth_y+"','"+birth_m+"','"+birth_d+"','"+tel+"','"+mobile+"','"+bp+"','"+email+"','"+xueli+"','"+intro+"','"+image+"')";

try

{
//添加记录
stmt.executeUpdate(sql);
out.print(name);
out.print("成功添加人员信息!<br>");
out.print("<a href=add.jsp>继续添加</a>");
}
//捕捉异常

catch(SQLException e)

{
out.print("发生错误!请检查你填写的表单是否正确!");

}

%>

...全文
35 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lymkelly 2003-09-03
  • 打赏
  • 举报
回复
现在的楼上的东东很适合作论坛发表信息那一块阿
xiaogangliang 2003-09-03
  • 打赏
  • 举报
回复
使用servlets2.3中增加的filter servlets类,应该可以解决你的问题。
znef88 2003-09-03
  • 打赏
  • 举报
回复
我不会bean和servlet能不能大家给我写一个,告诉我怎么加,谢谢!
ghostxinghe 2003-09-03
  • 打赏
  • 举报
回复
显示到网页的时候, 请进行如下替换:
> : >
< : <
\n: <br>
' : ´
" : "
& : &
空格 :  
lymkelly 2003-09-03
  • 打赏
  • 举报
回复
同意楼上
这样写是不是方便些:
String name=new String((request.getParameter("name")).getBytes("ISO8859_1"));
lymkelly 2003-09-03
  • 打赏
  • 举报
回复
同意楼上
这样写是不是方便些:
String name=new String((request.getParameter("name")).getBytes("ISO8859_1"));
zwxu 2003-09-03
  • 打赏
  • 举报
回复
如果是从表淡提交的数据,必须先作字符串的转换,最好你写个bean文件,每次提交对汉字作转换,转换函数如同上面的一样,有时需要getBytes(“GBK”),不管是取还是读,出不了这两种转换方式
ghostxinghe 2003-09-03
  • 打赏
  • 举报
回复
同意,我用上述方法就解决过,但是如果是数组中好象这么用的话会出错,又怎么解决呢?
Geranium 2003-09-03
  • 打赏
  • 举报
回复
用getBytes("ISO-8859_1")
Geranium 2003-09-03
  • 打赏
  • 举报
回复
在文件二中

String name=request.getParameter("name");
String sex=request.getParameter("sex");
String department=request.getParameter("department");
String birth_y=request.getParameter("birth_y");
String birth_m=request.getParameter("birth_m");
String birth_d=request.getParameter("birth_d");
String tel=request.getParameter("tel");
String mobile=request.getParameter("mobile");
String bp=request.getParameter("bp");
String email=request.getParameter("email");
String xueli=request.getParameter("xueli");
String intro=request.getParameter("intro");
String image=request.getParameter("phone");

只要是传入汉字的都加.getBytes("ISO8859_1")
Geranium 2003-09-03
  • 打赏
  • 举报
回复
String name=new String(request.getParameter("name").getBytes("ISO8859_1"));
^^^^^^^^^^^^^^^^^^^^^^^

凡是有汉字的地方都加这个
babaywind 2003-09-03
  • 打赏
  • 举报
回复
在插入数据库之前,把取得的数据转化一下试试看,例如

String StrTitle=request.getParameter("title");
byte[] tmp_title=StrTitle.getBytes("ISO8859_1");
String title=new String(tmp_title);

zengchangliu 2003-09-03
  • 打赏
  • 举报
回复
Tomcat里有一个过滤器

SetCharacterEncodingFilter.class


研究一下怎么用吧 ,以后就不再有这样的问题了
iceandfire 2003-09-03
  • 打赏
  • 举报
回复
因为不同数据库所默认的格式不一样,比如说MS SQL默认的格式是ISO-8859,所以,在进行中文操作的时候得先转换成数据库默认的格式才能正常写入和读取。
znef88 2003-09-03
  • 打赏
  • 举报
回复
为什么呢?
p980812 2003-09-03
  • 打赏
  • 举报
回复
在我的机器上
String intro=(String)request.getParameter("intro");
就可以

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧