读书人

jsp+tomcat+sql server2000 无法插入中

发布时间: 2012-02-10 21:27:42 作者: rapoo

jsp+tomcat+sql server2000 无法插入中文,在线急等!!!
源码如下:
<%@ page contentType= "text/html; charset=gb2312 " language= "java " import= "java.sql.*,java.io.* "%>
<html>
<body>
<center>
往数据库中添加数据: <hr>

<%
try
{

//装载驱动程序
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();

//创建连接
Connection con=java.sql.DriverManager.getConnection( "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev ", "bn ", "bn ");
//创建执行语句。
//===========================使用PreparedStatement========//
PreparedStatement pstmt=con.prepareStatement( "insert into contact values(?,?,?,?,?,?) ");
//=====================//
pstmt.setString(1, "王小华 ");
pstmt.setInt(2,136234234);
pstmt.setString(3, "010455554 ");
pstmt.setString(4, "lxh@some.com ");
pstmt.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
pstmt.setString(6, "很久没有联系了 ");
pstmt.execute();
//=======================//这里插入中文都是乱码!!!!!!!!******************
pstmt.setString(1, "刘玲玲 ");
pstmt.setInt(2,136234234);
pstmt.setString(3, "010455554 ");
pstmt.setString(4, "lxh@some.com ");
pstmt.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
pstmt.setString(6, "很久没有联系了 ");
pstmt.execute();
//=======================//
pstmt.setString(1, "李小华 ");
pstmt.setInt(2,136234234);
pstmt.setString(3, "010455554 ");
pstmt.setString(4, "lxh@some.com ");
pstmt.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
pstmt.setString(6, "很久没有联系了 ");
//执行插入数据操作。
pstmt.execute();
pstmt.close();
//===========================使用Statement========//
Statement stmt=con.createStatement();
//一次添加一行数据
***********************这里插入中文,正常。
stmt.execute( "insert into contact(userName,mobile) values( '陈军 ',136555555) ");
*************************************

out.println( "添加数据成功 ");
//关闭连接、释放资源

stmt.close();
con.close();
}


catch(Exception e)
{
e.printStackTrace();
}
%>
<center>
</body>
</html>




[解决办法]
加上这句试试
<%
request.setCharacterEncoding( "gb2312 ")
%>
[解决办法]
采用UTF-8编码
[解决办法]
没象你这么写过,我都是在后台提交给数据库的,你试验一下,调用后台类的方式添加看看
[解决办法]
一律 utf-8

[解决办法]
建个类名为chet 代码如下:
public class chet implements Filter{
public void init(FilterConfig arg0) throws ServletException {
// TODO 自动生成方法存根
}
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
// TODO 自动生成方法存根
arg0.setCharacterEncoding( "GBK ");
arg2.doFilter(arg0,arg1);
}
public void destroy() {
// TODO 自动生成方法存根
}
}

在web.xml加上如下代码:

<filter>
<filter-name> fff </filter-name> //(fff 是随便命个名)
<filter-class> chet存放的路径 </filter-class> //(如chet是存放在com包下 com.chet)
</filter>

<filter-mapping>
<filter-name> fff </filter-name>
<url-pattern> /* </url-pattern>
</filter-mapping>
这样子试试看。。

[解决办法]
首先确认下

数据库内的内容是不是乱码

如果是的话

在页面上要统一一下使用的字符集

来保证与数据库内的字符集一致

读书人网 >Java Web开发

热点推荐