我的程序的功能是实现用户注册并进行验证,成功的话写入数据库,不成功的话返回注册页
在TOMCAT上运行时也不提示有错误,但注册成功就是写不到数据库里面去,我把写入数据库的代码复制到一个.JAVA文件中,在插入封装数据库的JAVABEAN,就能成功的写入数据库~
环境是tomcat+eclipse+sqlserver
请高手们回答一下这是怎么回事`我是小白~请尽量相细点~是我的配置有问题还是怎么回事下面贴一下代码
Register.jsp
<%@ page contentType="text/html; charset=gb2312"%> 
<% request.setCharacterEncoding("gb2312"); 
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>验证注册</title>
</head>
<body bgcolor="#DDCCFF">
<center>
<form action="Register_check.jsp" method="post">
<table border="1" bgcolor="#DDF3FF">
<caption   >请输入注册信息</caption>
<tr >
<td align="right">用户名:</td>
<td align="left"><input type="text" name="username"/></td>
</tr>

<tr>
<td align="right">密码:</td>
<td align="left"><input type="password" name="password"/></td>
</tr>

<tr>
<td align="right">确认密码:</td>
<td align="left"><input type="password" name="confirm_password"/></td>
</tr>

<tr>
<td align="right">性别:</td>
<td align="left"><input type="radio" name="sex" value="male" checked="checked">男
<input type="radio" name="sex" value="female">女
</td>
</tr>

<tr>
<td align="right">职业:</td>
<td align="left"><select name="profession">
<option selected="selected">--请选择--</option>
<option>学生</option>
<option>政府工作人员</option>
<option>老师</option>
<option>工程师</option>
<option>医护人员</option>
<option>服务业</option>
</select>
</td>
</tr>

<tr>
<td align="right">个人说明:</td>
<td align="left"><textarea name="description" rows="15" cols="40">这家伙很懒,什么都没有留下</textarea></td>
</tr>

<tr>
<td colspan="2"><input type="submit" value="提交">
<input type="reset" value="重置"></td>
</tr>
</table>

</form>
</center>
</body>
</html>
下面是Register_check.jsp
<%@ page contentType="text/html; charset=gb2312"%> 
<% request.setCharacterEncoding("gb2312"); 
%><jsp:useBean id="dbm" class="com.jsp.JavaBean.DBManager" scope="page"/><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册成功</title>
</head>
<body>
<% 
String password=request.getParameter("password");
String confirm_password=request.getParameter("confirm_password");

if(!password.equals(confirm_password)){
%>
<center>
<font size="4" color="red">由于两次输入的密码不同,注册失败,3秒后跳转到注册页面;</font>
</center>
<%response.addHeader("refresh","3;url=Register.jsp");%> <% }else{
%>
<font size="4" color="red">注册成功,3秒后跳转到登录页面</font>

<% String username=request.getParameter("username");
String sex=request.getParameter("sex");
String profession=request.getParameter("profession");
String description=request.getParameter("description");
try{
dbm.setStmt(dbm.getConn().prepareStatement("insert into users(username,password,profession,sex,description) values(?,?,?,?,?)"));
dbm.getStmt().setString(1,username);
dbm.getStmt().setString(2,password);
dbm.getStmt().setString(3,profession);
dbm.getStmt().setString(4,sex);
dbm.getStmt().setString(5,description);
dbm.getStmt().execute();
}catch(Exception e){

}
}
%></body>
</html>
下面是DBManager.java
package com.jsp.JavaBean;import java.sql.*;public class DBManager {

private Connection conn=null;

private PreparedStatement stmt=null;

private ResultSet rs=null;

public DBManager(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

setConn(DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=Register_Bycc","cc","password"));

}catch(Exception e){

}
} public void setStmt(PreparedStatement stmt) {
this.stmt = stmt;
} public PreparedStatement getStmt() {
return stmt;
} public void setRs(ResultSet rs) {
this.rs = rs;
} public ResultSet getRs() {
return rs;
} public void setConn(Connection conn) {
this.conn = conn;
} public Connection getConn() {
return conn;
}}

解决方案 »

  1.   

    实际上,你根本没有进行插入数据库的操作,只是验证了两次输入 的密码是否相同,就输出了<font size="4" color="red">注册成功,3秒后跳转到登录页面 </font>,而下面的操作根本就没有执行,所以用下面的程序试一下看看!
    <% 
    String password=request.getParameter("password"); 
    String confirm_password=request.getParameter("confirm_password"); if(!password.equals(confirm_password)){ 
    %> 
    <center> 
    <font size="4" color="red">由于两次输入的密码不同,注册失败,3秒后跳转到注册页面; </font> 
    </center> 
    <%response.addHeader("refresh","3;url=Register.jsp");%> <% }else{ 
    %> 
    <% String username=request.getParameter("username"); 
    String sex=request.getParameter("sex"); 
    String profession=request.getParameter("profession"); 
    String description=request.getParameter("description"); 
    try{ 
    dbm.setStmt(dbm.getConn().prepareStatement("insert into users(username,password,profession,sex,description) values(?,?,?,?,?)")); 
    dbm.getStmt().setString(1,username); 
    dbm.getStmt().setString(2,password); 
    dbm.getStmt().setString(3,profession); 
    dbm.getStmt().setString(4,sex); 
    dbm.getStmt().setString(5,description); 
    dbm.getStmt().execute();%>
    <font size="4" color="red">注册成功,3秒后跳转到登录页面 </font>
    <%  
    }catch(Exception e){ } 

    %> 
      

  2.   

    第一次这样用么?
    不知道楼主  JAR包是否导入
    TOMCAT配置是否正确
      

  3.   

    try{
    dbm.setStmt(dbm.getConn().prepareStatement("insert into users(username,password,profession,sex,description) values(?,?,?,?,?)"));
    dbm.getStmt().setString(1,username);
    dbm.getStmt().setString(2,password);
    dbm.getStmt().setString(3,profession);
    dbm.getStmt().setString(4,sex);
    dbm.getStmt().setString(5,description);
    dbm.getStmt().execute();
    }catch(Exception e){}

    打印一下看看有没有异常
    catch(Exception e){
       。。
    }
      

  4.   

    刚试过了,提醒一下,以后try{}catch(Exception e){"sssssssssss"}
    ssssss一定不要省略,很重要的异常提示哦
      

  5.   

    我运行的时候也没有提示错误啊~~至于SQLSERVER 的3个JAR包我在环境变量里声明了~就不用再导入了吧
      

  6.   

    我刚在catch后面加了个println打印异常,运行工程后控制台里打印了“ssssss",果然是有异常,请问高手们怎么处理?
    try{ 
    dbm.setStmt(dbm.getConn().prepareStatement("insert into users(username,password,profession,sex,description) values(?,?,?,?,?)")); 
    dbm.getStmt().setString(1,username); 
    dbm.getStmt().setString(2,password); 
    dbm.getStmt().setString(3,profession); 
    dbm.getStmt().setString(4,sex); 
    dbm.getStmt().setString(5,description); 
    dbm.getStmt().execute(); 
    }catch(Exception e){ } 

    catch(Exception e){
    System.out.println("ssssss"); 
      }
      

  7.   

    我在DBManager.java里写了个CATCH,发现在
    try{ 
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 这一段就有异常~鼠标指到括号里的代码有提示是这么写的:
    Note: This element neither has attached source nor attached Javadoc and hence no Javadoc could be found.
    我已经把三个sql server的.jar文件导入了
      

  8.   

    我刚在catch后面加了个println打印异常,运行工程后控制台里打印了“ssssss",果然是有异常,请问高手们怎么处理? 把异常打印出来 打ssss什么用啊 
     catch (Exception e) {
    e.printStackTrace();
    }
      

  9.   

    其实myeclipse不是很方便么
       没有catch的话会有错误提示的啊!
      

  10.   

    try{ 
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
    }catch (Exception e) {
                e.printStackTrace();
            }
    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.jsp.JavaBean.DBManager.<init>(DBManager.java:15)
    at org.apache.jsp.Register_005fcheck_jsp._jspService(Register_005fcheck_jsp.java:64)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
      

  11.   

    谢谢~try{ 
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
    }catch (Exception e) {
                e.printStackTrace();
            }
    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.jsp.JavaBean.DBManager.<init>(DBManager.java:15)
    at org.apache.jsp.Register_005fcheck_jsp._jspService(Register_005fcheck_jsp.java:64)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
      

  12.   

    再补充一句~我自己弄了个TEST工程,把DBManager里的连接数据库的代买复制过去运行就没有异常,为什么一在我的动态网页工程里运行就不行呢 ,这两个工程里我的JAR包都导入了