老师要求做一个比价系统,于是菜鸟就开始自学。好困难。在做注册页面时就出现了问题,求大神帮忙看看代码,看看是什么问题。
首先是注册页面的代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>用户注册页面</title>
<script>
<!--
function myFunction()
{
//判断用户账户是否填写正确
if(myForm.id.value==""||myForm.id.value.length>10)
{alert("账号填写错误");}
//判断用户密码是否填写正确
else if(myForm.pwd1.value==""||myForm.pwd2.value.length>10)
{alert("密码填写错误");}
//判断用户两次输入密码是否一致
else if(myForm.pwd1.value!=myForm.pwd2.value)
{alert("两次输入的密码不一致");}
//用户填写的姓名不能为空
else if(myForm.name.value=="")
{alert("姓名不能为空");}
else
{myForm.submit();}
}
-->
</script>
</head>
<body>
<form action="YHResigerServlet" method="post" name="myForm">
<table>
<tr><td><h4>账号信息</h4></td></tr>
<tr><td>账号</td><td><input type="text" name="id"></td><td>不能超过10位和不能为空</td></tr>
<tr><td>密码</td><td><input type="password" name="pwd1"></td><td>不能超过10位和不能为空</td></tr>
<tr><td>确认密码</td><td><input type="password" name="pwd2"></td><td>确认密码要和输入密码相同</td></tr>
<tr><td><h4>用户信息</h4></td></tr>
<tr><td>姓名</td><td><input type="text" name="name"></td></tr>
<tr><td>性别</td><td><input type="radio" name="sex" value="man" checked="true">男
<input type="radio" name="sex" value="woman" >女
</td></tr>
<tr><td>电话</td><td><input type="text" name="tel"></td><td>请填写手机号码</td></tr>
<tr><td>邮箱</td><td><input type="text" name="email"></td><td>请正确填写已有邮箱</td></tr>
<tr><td><input type="button" value="注册" onclick="myFunction()"></td>
<td><input type="reset" value="重置"></td></tr>
</table>
</form>
</body>
</html>
接下来是YHResigerServlet的代码:
package com.bj.servlet;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.bj.tools.JDBCConnection;
import com.bj.myjavabean.YongHuJavaBean;
public class YHResigerServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{ //定义一个表示跳转页面名称的变量
String toJSP;
request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
//获取用户输入的信息
String id=request.getParameter("id");
String pwd1=request.getParameter("pwd1");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String tel=request.getParameter("tel");
String email=request.getParameter("email");
//将用户输入的信息设置到JavaBean中
YongHuJavaBean yhjb=new YongHuJavaBean(id,pwd1,name,sex,tel,email);
//将注册用户对象保存到请求上下文中
request.setAttribute("yhjb", yhjb);
request.getSession().setAttribute("yhjb", yhjb);
//判断注册的用户账号是否存在
if(isCunZai(id))
{ //跳转到显示账号错误的页面
toJSP="YHCunZai.jsp";
RequestDispatcher rd=request.getRequestDispatcher(toJSP);
rd.forward(request,response);
}
//判断用户输入的电话信息是否全为数字
else if(!isNum(tel))
{ //跳转到显示电话输入错误的页面
toJSP="telNotNum.jsp";
RequestDispatcher rd=request.getRequestDispatcher(toJSP);
rd.forward(request,response);
}
//判断用户输入的email信息是否符合格式
else if(!isEmail(email))
{ //跳转到显示Email输入错误的页面
toJSP="email.jsp";
RequestDispatcher rd=request.getRequestDispatcher(toJSP);
rd.forward(request,response);
}
//全部符合条件后,将用户输入的注册信息添加到数据库中
else
{
String myTianJiaSql="insert into yonghu values ('"+id+"','"+pwd1+"','"+name+"','"+sex+"'," +
"'"+tel+"','"+email+"')";
JDBCConnection tianjia=new JDBCConnection();
try
{
tianjia.executeUpdate(myTianJiaSql);
}catch(Exception e){System.out.println("添加发生异常");}
toJSP="ZhuCeChengGong.jsp";
//RequestDispatcher
request.getRequestDispatcher(toJSP).forward(request,response);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doPost(request,response);
}
//定义一个判断账号是否已经存在的方法
public boolean isCunZai(String id)
{
boolean b=false;
String mySql="select * from yonghu where id='"+id+"'";
JDBCConnection fzsjk=new JDBCConnection();
try
{
//执行查询方法
ResultSet rs=fzsjk.executeQuery(mySql);
if(rs.next())
{
b=true;
}
rs.close();
}catch(Exception e)
{
System.out.print("发生查询异常");
}
return b;
}
//定义一个判断电话号码是否都为数字的方法
public boolean isNum(String tel)
{
boolean t=true;
for(int i=0;i<tel.length();i++)
{
char c=tel.charAt(i);
if(!Character.isDigit(c))
{
t=false;
break;
}
}
return t;
}
//定义一个判断Email信息是否符合格式的方法
public boolean isEmail(String email)
{
if(email.indexOf("@")==-1)
{
return false;
}
else if(email.indexOf(".", email.indexOf("@"))==-1)
{
return false;
}
else
{
return true;
}
}
}
每次在运行时输完所有的信息点注册按钮就会出现如下错误: