<%@ page language="java" import="java.util.*,java.sql.*,java.io.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=DriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.executeUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
运行结果
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /InsertMysql1.jsp at line 29
26: Statement stmt=conn.createStatement();
27: //stmt.executeUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
28: String name=request.getParameter("name");
29: name=new String(name.getBytes("iso-8859-1"));
30: String publisher=request.getParameter("publisher");
31: publisher=new String(publisher.getBytes("iso-8859-1"));
32: String price=request.getParameter("price");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:551)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.NullPointerException
org.apache.jsp.InsertMysql1_jsp._jspService(InsertMysql1_jsp.java:86)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.8 logs.
--------------------------------------------------------------------------------
Apache Tomcat/7.0.8
15 个解决方案
#1
把数据库连接方式改为UTF-8编码或者GBK编码
如:jdbc:mysql://localhost/DBVF?autoReconnect=true&UseUnicode=true&characterEncoding=GBK (或者UTF-8)
请你根据你的情况参照下面三点完成。
四、数据库连接方式很使用UTF-8编码
JSP中要把网页输入的中文存入数据库,通畅有一个提交的过程,是用str=request.getParameter(“username”),然后执行update或者insert语句来存入数据库。如何赋值给str很重要,而且这里中文输入与网页使用的字体编码有关。
1、 网页使用UTF-8,使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),都可以是的存到数据库中的数据是UTF08编码。
2、 Ww网页使用GBK,使用str=new String(request.getParameter(“username”).getBytes(),”GBK”),那么存入数据库的是UTF-8编码。
3、 值得注意的是使用UTF-8的数据库连接方式不能存的GBK。
五、数据库连接方式使用GBK编码
1、如数使用GBK网页,存到数据库里的是GBK的方法:str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”),或者str=new String(request.getParameter(“username”).getBytes(),”GBK”)。
2、网页使用GBK,想存入UTF-8到数据库里,要分2步:先str=new String(request.getParameter(“username”).getBytes(),”GBK”),再str=new String(str.getBytes(“UTF-8”,”GBK”)即可。
3、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),那么存入到数据库里的数据是UTF-8编码。
4、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”) ,那么存入数据库的数据是GBK编码。
六、数据库连接方式使用缺省,即不使用参数useUnicode和characterEncoding
1、网页使用GBK,如果使用str=request.getParameter(“username”)或者str=new String(request.getParameter(“username”).getBytes()),那么在数据库里的数据是GBK编码。网页使用UTF-8和使用str=request.getParameter(“username”),则存入数据库是UTF-8编码。
2、如果使用str=new String(request.getParameter(“username”).getBytes(“ISO-8850-1”)),那么根据网页提供的字体编码而存到数据库,比如是UTF-8的网页,那么存到数据库中的就是UTF-8编码,如果使用GBK网页,那么存到数据库里的字就是GBK编码。
3、如果使用str=new String(request.getParameter(“username”).getBytes(“UTF-8”),“UTF-8”)这一种组合能存到正确的数据外,其他存在数据库里的数据则都是乱码或者错误马。在这个UTF-8组合的特例中,网页使用的是GBK,则存入数据库里就是GBK,网页使用UTF-8,那么存到数据库的就是UTF-8编码。
4、网页是GBK的要存得UTF-8,一定需要2步:company=new String(request.getParameter(“company”).getBytes(),”GBK”)和company= new String(company.getBytes(“UTF-8”))。
5、网页是UTF-8得,不能存的GBK在数据库里,一句话,改变数据库连接方式不能存得GBK码。
参考:http://wudale.bokee.com/3594651.html
如:jdbc:mysql://localhost/DBVF?autoReconnect=true&UseUnicode=true&characterEncoding=GBK (或者UTF-8)
请你根据你的情况参照下面三点完成。
四、数据库连接方式很使用UTF-8编码
JSP中要把网页输入的中文存入数据库,通畅有一个提交的过程,是用str=request.getParameter(“username”),然后执行update或者insert语句来存入数据库。如何赋值给str很重要,而且这里中文输入与网页使用的字体编码有关。
1、 网页使用UTF-8,使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),都可以是的存到数据库中的数据是UTF08编码。
2、 Ww网页使用GBK,使用str=new String(request.getParameter(“username”).getBytes(),”GBK”),那么存入数据库的是UTF-8编码。
3、 值得注意的是使用UTF-8的数据库连接方式不能存的GBK。
五、数据库连接方式使用GBK编码
1、如数使用GBK网页,存到数据库里的是GBK的方法:str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”),或者str=new String(request.getParameter(“username”).getBytes(),”GBK”)。
2、网页使用GBK,想存入UTF-8到数据库里,要分2步:先str=new String(request.getParameter(“username”).getBytes(),”GBK”),再str=new String(str.getBytes(“UTF-8”,”GBK”)即可。
3、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),那么存入到数据库里的数据是UTF-8编码。
4、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”) ,那么存入数据库的数据是GBK编码。
六、数据库连接方式使用缺省,即不使用参数useUnicode和characterEncoding
1、网页使用GBK,如果使用str=request.getParameter(“username”)或者str=new String(request.getParameter(“username”).getBytes()),那么在数据库里的数据是GBK编码。网页使用UTF-8和使用str=request.getParameter(“username”),则存入数据库是UTF-8编码。
2、如果使用str=new String(request.getParameter(“username”).getBytes(“ISO-8850-1”)),那么根据网页提供的字体编码而存到数据库,比如是UTF-8的网页,那么存到数据库中的就是UTF-8编码,如果使用GBK网页,那么存到数据库里的字就是GBK编码。
3、如果使用str=new String(request.getParameter(“username”).getBytes(“UTF-8”),“UTF-8”)这一种组合能存到正确的数据外,其他存在数据库里的数据则都是乱码或者错误马。在这个UTF-8组合的特例中,网页使用的是GBK,则存入数据库里就是GBK,网页使用UTF-8,那么存到数据库的就是UTF-8编码。
4、网页是GBK的要存得UTF-8,一定需要2步:company=new String(request.getParameter(“company”).getBytes(),”GBK”)和company= new String(company.getBytes(“UTF-8”))。
5、网页是UTF-8得,不能存的GBK在数据库里,一句话,改变数据库连接方式不能存得GBK码。
参考:http://wudale.bokee.com/3594651.html
#2
name=new String(
name.getBytes("iso-8859-1"));
检查下name变量是不是null的。。
可以设置mysql的默认编码
直接用到mysql安装目录下 找到my.ini 文件,修改
在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
启动MySQL服务
检查下name变量是不是null的。。
可以设置mysql的默认编码
直接用到mysql安装目录下 找到my.ini 文件,修改
在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
启动MySQL服务
#3
name=new String(name.getBytes("iso-8859-1"));
这个后面是不是应该再加一个GB2312你解码之后貌似没有重新编码
这个后面是不是应该再加一个GB2312你解码之后貌似没有重新编码
#4
编码问题解决了,可是主要问题是出现的指针异常啊
name 为空的话直接跳转到"MySQLInsert.jsp了
name 为空的话直接跳转到"MySQLInsert.jsp了
#5
你对name进行判断一下啊
#6
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
这不是已经对name进行判断了吗
{response.sendRedirect("MySQLInsert.jsp");}
这不是已经对name进行判断了吗
#7
null是个很最简单的问题!
乱码:数据库中表、字段各是什么编码?如果是utf-8
那么在连接字符串后面加上characterEncoding=utf-8
比如:jdbc:mysql://localhost:3306/aeroflex?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
总之,所有地方的编码要一样!过滤器是要用的!
这是过滤器里的,我是没有产生过乱码!你也试一下......
乱码:数据库中表、字段各是什么编码?如果是utf-8
那么在连接字符串后面加上characterEncoding=utf-8
比如:jdbc:mysql://localhost:3306/aeroflex?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
总之,所有地方的编码要一样!过滤器是要用的!
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
这是过滤器里的,我是没有产生过乱码!你也试一下......
#8
恩,谢谢,主要是java.lang.NullPointerException这个问题怎么解决啊
#9
比如使用变量userName前,先判断userName是否为空,if(userName!=null && !userName.equals(""))再执行
#10
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
这句话不是已经判断了了吗
{response.sendRedirect("MySQLInsert.jsp");}
这句话不是已经判断了了吗
#11
为什么会出现NullPointerException异常问题
#12
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=www.cctv40.comDriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.executeUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
什么情况??
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=www.cctv40.comDriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.executeUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
什么情况??
#13
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=DriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.www.cctv40.cnexecuteUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
好复杂啊。。。。。。。。。。。。。。
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=DriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.www.cctv40.cnexecuteUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
好复杂啊。。。。。。。。。。。。。。
#14
就是往数据库插入东西会出现NullPointerException异常问题
#15
乱码还是没有解决
#1
把数据库连接方式改为UTF-8编码或者GBK编码
如:jdbc:mysql://localhost/DBVF?autoReconnect=true&UseUnicode=true&characterEncoding=GBK (或者UTF-8)
请你根据你的情况参照下面三点完成。
四、数据库连接方式很使用UTF-8编码
JSP中要把网页输入的中文存入数据库,通畅有一个提交的过程,是用str=request.getParameter(“username”),然后执行update或者insert语句来存入数据库。如何赋值给str很重要,而且这里中文输入与网页使用的字体编码有关。
1、 网页使用UTF-8,使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),都可以是的存到数据库中的数据是UTF08编码。
2、 Ww网页使用GBK,使用str=new String(request.getParameter(“username”).getBytes(),”GBK”),那么存入数据库的是UTF-8编码。
3、 值得注意的是使用UTF-8的数据库连接方式不能存的GBK。
五、数据库连接方式使用GBK编码
1、如数使用GBK网页,存到数据库里的是GBK的方法:str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”),或者str=new String(request.getParameter(“username”).getBytes(),”GBK”)。
2、网页使用GBK,想存入UTF-8到数据库里,要分2步:先str=new String(request.getParameter(“username”).getBytes(),”GBK”),再str=new String(str.getBytes(“UTF-8”,”GBK”)即可。
3、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),那么存入到数据库里的数据是UTF-8编码。
4、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”) ,那么存入数据库的数据是GBK编码。
六、数据库连接方式使用缺省,即不使用参数useUnicode和characterEncoding
1、网页使用GBK,如果使用str=request.getParameter(“username”)或者str=new String(request.getParameter(“username”).getBytes()),那么在数据库里的数据是GBK编码。网页使用UTF-8和使用str=request.getParameter(“username”),则存入数据库是UTF-8编码。
2、如果使用str=new String(request.getParameter(“username”).getBytes(“ISO-8850-1”)),那么根据网页提供的字体编码而存到数据库,比如是UTF-8的网页,那么存到数据库中的就是UTF-8编码,如果使用GBK网页,那么存到数据库里的字就是GBK编码。
3、如果使用str=new String(request.getParameter(“username”).getBytes(“UTF-8”),“UTF-8”)这一种组合能存到正确的数据外,其他存在数据库里的数据则都是乱码或者错误马。在这个UTF-8组合的特例中,网页使用的是GBK,则存入数据库里就是GBK,网页使用UTF-8,那么存到数据库的就是UTF-8编码。
4、网页是GBK的要存得UTF-8,一定需要2步:company=new String(request.getParameter(“company”).getBytes(),”GBK”)和company= new String(company.getBytes(“UTF-8”))。
5、网页是UTF-8得,不能存的GBK在数据库里,一句话,改变数据库连接方式不能存得GBK码。
参考:http://wudale.bokee.com/3594651.html
如:jdbc:mysql://localhost/DBVF?autoReconnect=true&UseUnicode=true&characterEncoding=GBK (或者UTF-8)
请你根据你的情况参照下面三点完成。
四、数据库连接方式很使用UTF-8编码
JSP中要把网页输入的中文存入数据库,通畅有一个提交的过程,是用str=request.getParameter(“username”),然后执行update或者insert语句来存入数据库。如何赋值给str很重要,而且这里中文输入与网页使用的字体编码有关。
1、 网页使用UTF-8,使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),都可以是的存到数据库中的数据是UTF08编码。
2、 Ww网页使用GBK,使用str=new String(request.getParameter(“username”).getBytes(),”GBK”),那么存入数据库的是UTF-8编码。
3、 值得注意的是使用UTF-8的数据库连接方式不能存的GBK。
五、数据库连接方式使用GBK编码
1、如数使用GBK网页,存到数据库里的是GBK的方法:str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”),或者str=new String(request.getParameter(“username”).getBytes(),”GBK”)。
2、网页使用GBK,想存入UTF-8到数据库里,要分2步:先str=new String(request.getParameter(“username”).getBytes(),”GBK”),再str=new String(str.getBytes(“UTF-8”,”GBK”)即可。
3、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”GBK”)或者str=new String(request.getParameter(“username”).getBytes(),”UTF-8”),那么存入到数据库里的数据是UTF-8编码。
4、网页使用UTF-8,而且使用str=new String(request.getParameter(“username”).getBytes(“ISO-8859-1”),”UTF-8”) ,那么存入数据库的数据是GBK编码。
六、数据库连接方式使用缺省,即不使用参数useUnicode和characterEncoding
1、网页使用GBK,如果使用str=request.getParameter(“username”)或者str=new String(request.getParameter(“username”).getBytes()),那么在数据库里的数据是GBK编码。网页使用UTF-8和使用str=request.getParameter(“username”),则存入数据库是UTF-8编码。
2、如果使用str=new String(request.getParameter(“username”).getBytes(“ISO-8850-1”)),那么根据网页提供的字体编码而存到数据库,比如是UTF-8的网页,那么存到数据库中的就是UTF-8编码,如果使用GBK网页,那么存到数据库里的字就是GBK编码。
3、如果使用str=new String(request.getParameter(“username”).getBytes(“UTF-8”),“UTF-8”)这一种组合能存到正确的数据外,其他存在数据库里的数据则都是乱码或者错误马。在这个UTF-8组合的特例中,网页使用的是GBK,则存入数据库里就是GBK,网页使用UTF-8,那么存到数据库的就是UTF-8编码。
4、网页是GBK的要存得UTF-8,一定需要2步:company=new String(request.getParameter(“company”).getBytes(),”GBK”)和company= new String(company.getBytes(“UTF-8”))。
5、网页是UTF-8得,不能存的GBK在数据库里,一句话,改变数据库连接方式不能存得GBK码。
参考:http://wudale.bokee.com/3594651.html
#2
name=new String(
name.getBytes("iso-8859-1"));
检查下name变量是不是null的。。
可以设置mysql的默认编码
直接用到mysql安装目录下 找到my.ini 文件,修改
在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
启动MySQL服务
检查下name变量是不是null的。。
可以设置mysql的默认编码
直接用到mysql安装目录下 找到my.ini 文件,修改
在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
启动MySQL服务
#3
name=new String(name.getBytes("iso-8859-1"));
这个后面是不是应该再加一个GB2312你解码之后貌似没有重新编码
这个后面是不是应该再加一个GB2312你解码之后貌似没有重新编码
#4
编码问题解决了,可是主要问题是出现的指针异常啊
name 为空的话直接跳转到"MySQLInsert.jsp了
name 为空的话直接跳转到"MySQLInsert.jsp了
#5
你对name进行判断一下啊
#6
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
这不是已经对name进行判断了吗
{response.sendRedirect("MySQLInsert.jsp");}
这不是已经对name进行判断了吗
#7
null是个很最简单的问题!
乱码:数据库中表、字段各是什么编码?如果是utf-8
那么在连接字符串后面加上characterEncoding=utf-8
比如:jdbc:mysql://localhost:3306/aeroflex?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
总之,所有地方的编码要一样!过滤器是要用的!
这是过滤器里的,我是没有产生过乱码!你也试一下......
乱码:数据库中表、字段各是什么编码?如果是utf-8
那么在连接字符串后面加上characterEncoding=utf-8
比如:jdbc:mysql://localhost:3306/aeroflex?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
总之,所有地方的编码要一样!过滤器是要用的!
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
这是过滤器里的,我是没有产生过乱码!你也试一下......
#8
恩,谢谢,主要是java.lang.NullPointerException这个问题怎么解决啊
#9
比如使用变量userName前,先判断userName是否为空,if(userName!=null && !userName.equals(""))再执行
#10
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
这句话不是已经判断了了吗
{response.sendRedirect("MySQLInsert.jsp");}
这句话不是已经判断了了吗
#11
为什么会出现NullPointerException异常问题
#12
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=www.cctv40.comDriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.executeUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
什么情况??
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=www.cctv40.comDriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.executeUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
什么情况??
#13
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=DriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.www.cctv40.cnexecuteUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
好复杂啊。。。。。。。。。。。。。。
<html>
<head>
<title>My JSP 'InsertMysql1.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">
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/book";
Connection conn=DriverManager.getConnection(url,"root","admin");
Statement stmt=conn.createStatement();
//stmt.www.cctv40.cnexecuteUpdate("insert into bookInfo values ('数据库','大象出版社',20)");
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"));
String publisher=request.getParameter("publisher");
publisher=new String(publisher.getBytes("iso-8859-1"));
String price=request.getParameter("price");
price=new String (price.getBytes("iso-8859-1"));
if (name.equals("")|publisher.equals("")|price.equals(""))
{response.sendRedirect("MySQLInsert.jsp");}
else
{
String sql="insert into bookInfo values ('"+name+"','"+publisher+"','"+price+"')";
stmt.executeUpdate(sql);
}
out.println("数据连接成功");
stmt.close();
conn.close();
%>
</body>
</html>
好复杂啊。。。。。。。。。。。。。。
#14
就是往数据库插入东西会出现NullPointerException异常问题
#15
乱码还是没有解决