主题:http status 500错误,请大家帮帮忙。
wodee303
[专家分:0] 发布于 2005-12-14 15:27:00
这是注册页面,register.jsp:
<%@page contentType="text/html; charset=GBK"%>
<script language="javascript" type="" >
//定义整数检验函数
function isNum(passedVal){
if(passedVal==""){
return false
}
for(i=0;i<passedVal.length;i++){
if(passedVal.charAt(i)<"0"){
return false
}
if(passedVal.charAt(i)>"9"){
return false
}
}
return true}
//定义表单输入检验函数
function isValid(){
if(form1.textfield.value==""){
alert("用户名不能为空哦!");
document.form1.textfield.focus();
return false;
}
if((form1.textfield2.value.length<3)||(form1.textfield2.value.length>20)){
alert("密码必须是3到20位数字或字母!");
document.form1.textfield2.focus();
return false;
}
if(form1.textfield2.value!=form1.textfield3.value){
alert("两次输入的密码不相同!");
document.form1.textfield3.focus();
return false;
}
if(form1.textfield4.value==""){
alert("email不能为空!");
document.form1.textfield4.focus();
return false;
}
if((form1.textfield4.value.indexOf('@',0)==-1)||(form1.textfield4.value.indexOf('.',0)==-1)
||(form1.textfield4.value.length<6)){
alert("请输入合法的email!");
document.form1.textfield4.focus();
return false;
}
var dianhua=document.form1.textfield5.value;
if(dianhua!=""){
if(isNum(document.form1.textfield5.value)==false){
alert("电话格式不对,请输入整数!");
document.form1.textfield5.focus();
return false;
}
}
if(form1.textfield8.value==""){
alert("身份证不能为空,且为真实的身份!");
document.form1.textfield8.focus();
return false;
}
if(form1.textfield8.value!=""){
if(isNum(document.form1.textfield8.value)==false){
alert("身份证格式不对,请输入整数!");
document.form1.textfield8.focus();
return false;
}
}
}</script>
<html>
<head>
<title>注册会员</title>
</head>
<body bgcolor="#ffffff">
<h1 align="center"> </h1>
<h1 align="center">新会员注册</h1>
<form action="register_confirm.jsp" method="post" name="form1" target="_blank" onSubmit="return isValid(this);">
<p align="center">用户名:
<input name="textfield" type="text" size="24">
</p>
<p align="center">密 码:
<input name="textfield2" type="password" size="24">
</p>
<p align="center">确 定:
<input name="textfield3" type="password" size="24">
</p>
<p align="center">邮 箱:
<input name="textfield4" type="text" size="24">
</p>
<p align="center">电 话:
<input name="textfield5" type="text" size="24">
</p>
<p align="center">地 址:
<input name="textfield6" type="text" size="24">
</p>
<p align="center">邮政编码:
<input name="textfield7" type="text" size="22">
</p>
<p align="center">身份证号:
<input name="textfield8" type="text" size="22">
</p>
<p align="center">
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</p>
</form>
<p align="center">声明:用户名,密码,确定(重新输一次密码),邮箱,身份证是必填项,请最好把电话,地址,邮政编码也写上,方便送货上门</p>
</body>
</html>
回复列表 (共4个回复)
沙发
wodee303 [专家分:0] 发布于 2005-12-14 15:29:00
这是注册确认页面:register_confirm.jsp.
<%@page contentType="text/html; charset=GBK"%>
<%@page language="java" import="java.sql.*"%>
<jsp:useBean id="regBean" scope="page" class="user.user"></jsp:useBean>
<html>
<head>
<title>会员确认</title>
</head>
<body bgcolor="#ffffff">
<%
//取出客户端的表单输入值
String name = new String(request.getParameter("textfield").getBytes("8859_1"));
String password = new String(request.getParameter("textfield2").getBytes("8859_1"));
String email = new String(request.getParameter("textfield4").getBytes("8859_1"));
String tel = new String(request.getParameter("textfield5").getBytes("8859_1"));
String address = new String(request.getParameter("textfield6").getBytes("8859_1"));
String code = new String(request.getParameter("textfield7").getBytes("8859_1"));
String cardnum = new String(request.getParameter("textfield8").getBytes("8859_1"));
//检查USER表中是否有重复的用户名
String sql = "select * from user where name='" + name + "'";
ResultSet rs = regBean.executementQuery(sql);
if (rs.next()) {
rs.close();
out.println("该会员已经存在,请重新输入!");
// session.putValue("register_message", "该会员已经存在,请重新输入!");
%>
<jsp:forward page="register.jsp"></jsp:forward>
<%
} else {
rs.close(); //关闭对象
}
%>
<form action="success.jsp" method="POST" name="name1">
<input type="hidden" name="name" value="<%=name%>"/>
<input type="hidden" name="password" value="<%=password%>"/>
<input type="hidden" name="email" value="<%=email%>"/>
<input type="hidden" name="tel" value="<%=tel%>"/>
<input type="hidden" name="address" value="<%=address%>"/>
<input type="hidden" name="code" value="<%=code%>"/>
<input type="hidden" name="cardnum" value="<%=cardnum%>"/>
</form>
</body>
</html>
板凳
wodee303 [专家分:0] 发布于 2005-12-14 15:29:00
这是成功注册页面,success.jsp:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="RegBean2" scope="page" class="user.user">
</jsp:useBean>
<html>
<head>
<title>
注册成功
</title>
</head>
<body bgcolor="#ffffff">
<%
//从隐藏区域中取出注册信息
String name = new String(request.getParameter("textfield").getBytes("8859_1")
);
String password = new String(request.getParameter("textfield2").getBytes("8859_1"));
String email = new String(request.getParameter("textfield4").getBytes("8859_1"));
String tel = new String(request.getParameter("textfield5").getBytes("8859_1"));
String address = new String(request.getParameter("textfield6").getBytes("8859_1"));
String code = new String(request.getParameter("textfield7").getBytes("8859_1"));
String cardnum = new String(request.getParameter("textfield8").getBytes("8859_1"));
//把信息保存在user表中
String strSQL="insert into user (name,password,email,tel,address,code,cardnum) values('"+name+"','"+password+"','"+email+"','"+tel+"','"+address+"','"+code+"','"+cardnum+"')";
RegBean2.executeUpdate(strSQL);
//使用session对象的putValue()方法,把用户名name赋给变量name
//session.putValue("name",name);
out.print("注册成功!");
%>
</body>
</html>
3 楼
wodee303 [专家分:0] 发布于 2005-12-14 15:30:00
这是user.java代码:
package user;
import java.sql.*;
//与数据库连接(),首先注册数据库驱动程序
public class user {
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:firm";
private Connection conn=null;
private Statement stmt=null;
ResultSet rs=null;
public user() {
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("firm():"+e.getMessage());
}
}
//建立数据库连接和定义数据查询
public ResultSet executementQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection(sConnStr);//creat database object
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(java.sql.SQLException ex){
System.err.println("aq.executeQuery():"+ ex.getMessage());
}
return rs;
}
//定义数据操作
public void executeUpdate(String sql){
stmt=null;
rs=null;
try{
conn=DriverManager.getConnection(sConnStr);
stmt=conn.createStatement();
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(java.sql.SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
}
//关闭数据库连接
public void closeStmt(){
try{
stmt.close();
}
catch(java.sql.SQLException e){
e.printStackTrace();
}
}
public void closeConn(){
try{
conn.close();
}
catch(java.sql.SQLException e){
}
}
}
4 楼
wodee303 [专家分:0] 发布于 2005-12-14 15:32:00
请问浏览register.jsp时,确定后,产生HTTP STATUS 500错误,如下:
ype Exception reportmessage 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.register_005fconfirm_jsp._jspService(register_005fconfirm_jsp.java:70)
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.27 logs
请你指点,错在哪里啊?我刚学jsp,用的是JBUILDER。谢谢!
我来回复