新手求教,向数据库提交信息时出错。

lazylitchi 2007-04-05 01:14:52
不是自己写的代码,从一本书上照抄的实例,可是执行到这个用户注册提交信息的页面时就出错。
该jsp文件代码如下
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="XiaoYuJob.util.*,java.sql.*,javax.servlet.http.HttpServletRequest"%>
<%//request.setCharacterEncoding("GB2312");%>
<jsp:useBean id="jobSeeker" class="XiaoYuJob.job.JobSeeker" scope="request" />
<!--构造jobSeeker类的对象 jobSeeker-->
<jsp:setProperty name="jobSeeker" property="*"/>
<!--设置对象jobSeeker的属性-->
<%
DealString str=new DealString();
ShowErrorBox show=new ShowErrorBox();
out.print("sssss"+jobSeeker.getSusername());
if(jobSeeker.getPassword().equals("")||jobSeeker.getEmail().equals("")||jobSeeker.getBirthday().equals("")){
out.print(show.errorBox("请添写完整信息!","错误信息"));
return;
}else{
if(jobSeeker.getSusername().compareTo("z")>=0||jobSeeker.getSusername().compareTo("0")<=0){
out.print(show.errorBox("注册用户名不允许为特殊字符和汉字!","错误信息"));
return;
}
/* DataBaseConn dbc=new DataBaseConn();
try
{
java.sql.Statement st=dbc.getStmt();
String sql="INSERT INTO t_jobSeeker(auserName,trueName,age,sex,birthday, "+
"school,specialty,knowledge,email,resume) VALUES('"+
jobSeeker.getSusername()+"','"+
str.toGb(jobSeeker.getStruename())+"','"+jobSeeker.getAge()+"','"+
jobSeeker.getSex()+"','"+jobSeeker.getBirthday()+"','"+
str.toGb(jobSeeker.getSchool())+"','"+
str.toGb(jobSeeker.getSpecialty())+"','"+
str.toGb(jobSeeker.getKnowledge())+"','"+
jobSeeker.getEmail()+"','"+str.toGb(jobSeeker.getResume())+"')";
st.addBatch(sql);
//添加一个sql语句进statement
sql="insert into t_user (username,password,type)values('"+
jobSeeker.getSusername()+"','"+jobSeeker.getPassword()+"','1')";
st.addBatch(sql);
//添加一个sql语句进statement
st.executeBatch();
//批执行 上面添加的sql语句
out.print("<script>alert('修改成功!');document.location='../index.jsp';</script>");
return;
}catch(Exception e)
{
out.print(show.errorBox("修改失败,数据库错误!","错误信息"));
}*/
}
%>

出错提示如下
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
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.NullPointerException
org.apache.jsp.jobseeker.regDo_jsp._jspService(regDo_jsp.java:68)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.30
...全文
198 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lazylitchi 2007-04-06
  • 打赏
  • 举报
回复
String类的对象可以用equals("")来判断是否为空,那请问int类型的该如何判断?
lazylitchi 2007-04-06
  • 打赏
  • 举报
回复
另外我修改过注册界面的htm文件,是否有关呢?跟原来的css文件和js文件有关吗?
lazylitchi 2007-04-06
  • 打赏
  • 举报
回复
我把代码改为如下下,当在注册页面什么都不填直接点注册按钮的时候,可以执行第一个out.print的内容,并打印出各个属性为空值或默认值,但当我把注释起来的if语句加进去后就出现了原来的错误提示,不知道是什么原因,不是应该显示我代码中写的错误提示框吗?

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="XiaoYuJob.util.*,java.sql.*,javax.servlet.http.HttpServletRequest"%>
<%//request.setCharacterEncoding("GB2312");%>
<jsp:useBean id="jobSeeker" class="XiaoYuJob.job.JobSeeker" scope="request" />
<!--构造jobSeeker类的对象 jobSeeker-->
<jsp:setProperty name="jobSeeker" property="*"/>
<!--设置对象jobSeeker的属性-->
<%
DealString str=new DealString();
ShowErrorBox show=new ShowErrorBox();
out.print("sssss"+jobSeeker.getSusername()+"|"+jobSeeker.getPassword()+"|"+
jobSeeker.getConfirm()+"|"+jobSeeker.getStruename()+"|"+jobSeeker.getAge()+"|"+
jobSeeker.getSex()+"|"+jobSeeker.getBirthday()+"|"+jobSeeker.getSchool()+"|"+
jobSeeker.getEmail()+"|"+jobSeeker.getSpecialty()+"|"+jobSeeker.getKnowledge()+"|"+
jobSeeker.getResume());

/*if(jobSeeker.getSusername().equals(""))
{
out.print(show.errorBox("请添写完整信息!","错误信息"));
return;
}*/
%>

dadaadaaa 2007-04-05
  • 打赏
  • 举报
回复
out.print("sssss"+jobSeeker.getSusername()); 就象你代码里的这句
把jobSeeker别的属性也打出来
lazylitchi 2007-04-05
  • 打赏
  • 举报
回复
从23行开始的代码不是注释,只是刚刚复制的时候忘了去掉注释符号。
lazylitchi 2007-04-05
  • 打赏
  • 举报
回复
不好意思,本人是新手,请问如何检查jobSeeker的属性和对象是否为空呢?二楼提到的OUT.PRINT()方法该如何用呢?
jobSeeker的类代码如下
package XiaoYuJob.job;

/**
* 求职者类
*/

public class JobSeeker {

private String susername; //求职者用户名
private String struename; //求职者真实姓名
private String password; //密码
private int age; //求职者年龄
private int sex; //求职者性别
private String resume; //求职者简历
private String school; //求职者毕业学校
private String specialty; //求职者特长
private String knowledge; //求职者所掌握知识
private String email; //求职者电子邮件
private String birthday; //求职者出生日期
public JobSeeker() {
}

public String getSusername() {
return susername;
}
public void setSusername(String sname) {
this.susername = sname;
}
public String getPassword() {
return password;
}

public void setPassword(String pass) {
this.password = pass;
}


public String getStruename() {
return struename;
}

public void setStruename(String name) {
this.struename = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public int getSex() {
return sex;
}

public void setSex(int sex) {
this.sex = sex;
}

public String getBirthday() {
return birthday;
}

public void setBirthday(String birthday) {
this.birthday = birthday;
}

public String getSchool() {
return school;
}

public void setSchool(String school) {
this.school = school;
}

public String getSpecialty() {
return specialty;
}
public void setSpecialty(String specialty) {
this.specialty = specialty;
}

public String getKnowledge() {
return knowledge;
}

public void setKnowledge(String knowledge) {
this.knowledge = knowledge;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getResume() {
return resume;
}

public void setResume(String resume) {
this.resume = resume;
}
}
jjoohhnn13 2007-04-05
  • 打赏
  • 举报
回复
空指针错误,某个对象为空引起
dadaadaaa 2007-04-05
  • 打赏
  • 举报
回复
估计是jobSeeker中某个属性是空值 可以OUT.PRINT()打印下试试看是哪个属性为空
然后在进一步查找错误的根源

81,092

社区成员

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

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