用JSP写的web网页在从数据库中读出数据时只能显示英文不能读出中文或插入中文到数据库。
我是新手,差了好多的资料还是没有解决,各位高手指点一下啊,小弟在这先谢谢啦
代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
<jsp:include flush="true" page="index.jsp"/><br />
<p align="center"><strong><font size="4" color="#FF0000"">学生资料列表</font></strong></p>
<table width="768" border="0" align="center" cellpadding="3" cellspacing="1">
<tr><td><a href="StudAdd.jsp">新增</a></td></tr>
</tr>
</table>
<table width="768" border="1" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><div align="center">所属学院</div></td>
<td><div align="center">专业名称</div></td>
<td><div align="center">学生编号</div></td>
<td><div align="center">学生姓名 </div></td>
<td><div align="center">所在班级</div></td>
<td><div align="center">性 别</div></td>
<td><div align="center">年 龄</div></td>
<td><div align="center">删除资料</div></td>
</tr>
<%
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login";
String user="sa";
String password="";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn= DriverManager.getConnection(url,user,password);
String sql = "select s.*,c.classID,m.majorname,d.depname from studinfo s left outer join class c on s.classID=c.classID left outer join major m on m.majorid=c.majorid left outer join department d on d.depid=m.depid"; Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
String depName="",majorName="",studID="",studName="",classID="",sex="",age="";
while(rs.next()){
depName=rs.getString("depName");
majorName=rs.getString("majorName");
studID=rs.getString("studID");
studName=rs.getString("studName");
sex=rs.getString("sex");
age=rs.getString("age");
classID=rs.getString("classID");
%>
<tr>
<td><div align="center"><%=depName%></div></td>
<td><div align="center"><%=majorName%></div></td>
<td><div align="center"><%=studID%></div></td>
<td><div align="center"><%=studName%></div></td>
<td><div align="center"><%=classID%></div></td>
<td><div align="center"><%=sex%></div></td>
<td><div align="center"><%=age%></div></td>
<td><div align="center"><a href="StudDel.jsp?studId=<%=studID%>" onclick="return check();">删除资料</a></div></td>
</tr>
<%}
}catch(Exception e){
System.out.println(e.getMessage()); }
%>
</table>
</body>
</html>
<script language="javascript">
function check()
{
if(confirm("删除确认"))
{
return true;
}
return false;
}
</script>
我是新手,差了好多的资料还是没有解决,各位高手指点一下啊,小弟在这先谢谢啦
代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
<jsp:include flush="true" page="index.jsp"/><br />
<p align="center"><strong><font size="4" color="#FF0000"">学生资料列表</font></strong></p>
<table width="768" border="0" align="center" cellpadding="3" cellspacing="1">
<tr><td><a href="StudAdd.jsp">新增</a></td></tr>
</tr>
</table>
<table width="768" border="1" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><div align="center">所属学院</div></td>
<td><div align="center">专业名称</div></td>
<td><div align="center">学生编号</div></td>
<td><div align="center">学生姓名 </div></td>
<td><div align="center">所在班级</div></td>
<td><div align="center">性 别</div></td>
<td><div align="center">年 龄</div></td>
<td><div align="center">删除资料</div></td>
</tr>
<%
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login";
String user="sa";
String password="";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn= DriverManager.getConnection(url,user,password);
String sql = "select s.*,c.classID,m.majorname,d.depname from studinfo s left outer join class c on s.classID=c.classID left outer join major m on m.majorid=c.majorid left outer join department d on d.depid=m.depid"; Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
String depName="",majorName="",studID="",studName="",classID="",sex="",age="";
while(rs.next()){
depName=rs.getString("depName");
majorName=rs.getString("majorName");
studID=rs.getString("studID");
studName=rs.getString("studName");
sex=rs.getString("sex");
age=rs.getString("age");
classID=rs.getString("classID");
%>
<tr>
<td><div align="center"><%=depName%></div></td>
<td><div align="center"><%=majorName%></div></td>
<td><div align="center"><%=studID%></div></td>
<td><div align="center"><%=studName%></div></td>
<td><div align="center"><%=classID%></div></td>
<td><div align="center"><%=sex%></div></td>
<td><div align="center"><%=age%></div></td>
<td><div align="center"><a href="StudDel.jsp?studId=<%=studID%>" onclick="return check();">删除资料</a></div></td>
</tr>
<%}
}catch(Exception e){
System.out.println(e.getMessage()); }
%>
</table>
</body>
</html>
<script language="javascript">
function check()
{
if(confirm("删除确认"))
{
return true;
}
return false;
}
</script>
提交的乱码问题一般用过滤器处理!或者最笨的办法:在每个jsp页面加入request.setCharacterEncoding="gbk";response.setCharacterEncoding="gbk"
String content=new String(request.getParameter("content").getBytes("iso-8859-1"));
你说从数据库中读取不了,那我就没遇到过,我也是用:rs.getString("content");但是能行。
request.setCharacterEncoding("gbk");
或者
response.setCharacterEncoding("gbk");
String user="sa"; 语句中加上资费编码utf-8或GBK
提交的乱码问题可以用过滤器处理!或者在接收的页面加上
request.setCharacterEncoding="gbk";response.setCharacterEncoding="gbk"