public void setUserInfo(UserInfo userInfo)
{
this.userInfo=userInfo;
}
你的参数一定是被初始化过的么??pstmt.setString(1,userInfo.getUsername());
pstmt.setString(2,userInfo.getPassword());
pstmt.setString(3,userInfo.getPhone());
pstmt.setString(4,userInfo.getEmail());
在调用userInfo的一系列get方法之前,是否要判断一下userInfo是否为null
空指针又可能就出在这里
由于你的参数为null导致this.userInfo初始化为null,然后调用this.userInfo的get方法,抛出空指针异常~~~
{
this.userInfo=userInfo;
}
你的参数一定是被初始化过的么??pstmt.setString(1,userInfo.getUsername());
pstmt.setString(2,userInfo.getPassword());
pstmt.setString(3,userInfo.getPhone());
pstmt.setString(4,userInfo.getEmail());
在调用userInfo的一系列get方法之前,是否要判断一下userInfo是否为null
空指针又可能就出在这里
由于你的参数为null导致this.userInfo初始化为null,然后调用this.userInfo的get方法,抛出空指针异常~~~
解决方案 »
- jquery问题
- requset传到iFrame得不到值
- 如何通过javabean取数据库的内容,并显示到页面上
- 数据库连接问题
- struts2.0中重复发布的问题
- 这个问题好可怕哦,硬是没有人回答我,加点分
- 企业软件开发定向委培生
- 非常奇怪的问题,在jsp中调用javabean莫名奇妙的问题
- 怎样做错误信息处理???对于程序运行过程中产生的错误信息,是输入到文本文件中还是直接输出到客户端界面?
- 我想問下csdn呢個網站入面某d網頁個果"打印文章"功能是點樣做的?因為我睇佢個果網頁的源碼是在javascript入面調用一個function,就噤簡單?
- weblogic5.1怎么配置SSL?
- 高分求教,这个数据库连接为什么出错--------急急....
<jsp:setProperty name="userInfo" property="*"/>
</jsp:useBean>
<jsp:useBean id="regist" class="regist.UserRegist" scope="page"/>
<html>
<head>
<title>用户信息注册页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<% regist.setUserInfo(userInfo);
regist.regist();
out.println("注册成功");
%>
<br>
<a href="main.jsp">返回</a>
</body>
</html>
要做注册,首先你要判断数据库是否有此用户或ID,以免数据存储冲突,
同时存的时候,要再次判断非空值是否出现空值的情况,尽量不要出现问题,写入操作不如 直接把插入字段写到string 中直接执行更新如strSQL= "insert into tablename (字段列表) values("+ 字段值列表+")"
stmt.exceuteUpdate(strSQL);
//不要一个一个的插入,看看行不行 ;
{
String reg="insert into users values (?,?,?,?,?)";
//不知道,这个users表有几个元素,你该指明值是赋给哪个元素的。;你这里有5项,而下面你只赋值4项。
try
{
PreparedStatement pstmt=con.prepareStatement(reg); pstmt.setString(1,userInfo.getUsername());
pstmt.setString(2,userInfo.getPassword());
pstmt.setString(3,userInfo.getPhone());
pstmt.setString(4,userInfo.getEmail()); //执行更新操作
pstmt.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
}
PreparedStatement pstmt=con.prepareStatement(reg);
那说明con是null
多半是数据库连接问题
有5个问号
后面怎么才四个setString
public UserRegist() throws Exception
{
String DBDriver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:8080;DatabaseName=regist";
String USER="root";
String PWD="19820213"; try
{
Class.forName(DBDriver);
con=DriverManager.getConnection(url,USER,PWD);
}
catch(Exception e)
{
e.printStackTrace();
throw(new Exception("Database connecting failed!")); }
}
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:673)
org.apache.jsp.adduser_jsp._jspService(adduser_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.InstantiationException: class regist.UserRegist : java.lang.Exception: Database connecting failed!
org.apache.jsp.adduser_jsp._jspService(adduser_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
你的mysql端口号是8080?
url="jdbc:mysql://127.0.0.1/regist?useUnicode=true&characterEncoding=GBK"
url="jdbc:mysql://localhost:3306/regist";错误变成这样了:
java.sql.SQLException: Invalid argument value: Duplicate entry '0' for key 1
这又是什么问题呢?
---------------------------------------------
username varchar(12) PRI
password varchar(12) yes
phone varchar(20) yes
email varchar(30) yes请问有否不妥?
JSP文件(regi.jsp)中:
<%
String username = request.getParameter("username");==》你肯定这个参数获得了吗?
if ( username == null ) {
username = "";
}
String password = request.getParameter("password");
if( password == null ) {
password = "";
}
String email = request.getParameter("email");
if ( email == null ) {
email = "";
}
String phone = request.getParameter("phone");
if ( phone == null ) {
phone = "";
}
%>
从字面上理解应该是对“key 1”重复输入了"0"?这里的"key 1"指的是什么呢?“0”又是怎么回事?
另外你的username是主键
如果表中已经有一个username='0'的表项,那么就不能再添加这个username的表项了