<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GB2312" %>
<html>
<body>
<%!
public String getString(String str)
{
if (str==null)
{
str="";
}
else
{
try
{
byte[] b=str.getBytes("ISO-8859-1");
str=new String(b);
}
catch (Exception e)
{
e.printStackTrace();
}
}
return str;
}
%>
<%
String userName=request.getParameter("userName");
String userPass=request.getParameter("userPass");
String email=request.getParameter("email");
String trueName=request.getParameter("trueName");
String address=request.getParameter("address");
String telephone=request.getParameter("telephone");
userName=getString(userName);
userPass=getString(userPass);
email=getString(email);
trueName=getString(trueName);
address=getString(address);
telephone=getString(telephone);
%>
<%
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url=" jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JSPDB";
try
{
Class.forName(driver);
con=DriverManager.getConnection(url,"sa","123");
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="insert into usertable values("+"'"+userName+"','"+userPass+"','"+email+"','"+trueName+"','"+address+"','"+telephone+"')'";
int i=stmt.executeUpdate(sql);
if (i>0)
{
out.println("客户注册成功");
}
else
{
out.println("请重新注册!");
}
rs.close();
stmt.close();
con.close();
}
catch (Exception e)
{
System.out.println("e="+e.toString());
}
%>
</body>
</html>
你的catch里面不要写System.out.println("e="+e.toString());
写成out.println("e="+e.toString());这样就能看到报错了,而System.out.println("e="+e.toString());只是在控制台打印,你的报错被catch捕捉到并且打印到
了控制台,所以你看不到报错
浏览器按F12开发工具,看一下有没有返回值或者有什么错误
你这种一般是后台报错了
下断点调试下,sql拼接有没有问题,还有数据库的连接有没有问题
另外username是关键字,要转义
难道不是调用out.write()函数来回发信息吗
应该是你提交成功后后台没有返回数据给前台显示吧
在userreg.jsp页面,你输入的注册数据,在转到userregister.jsp后,有没有成功获取,也就是在request.getParameter()取到的值是否为空。
如果可以的话,能把这两个jsp页面发到sph1573@163.com,我可以具体调试一下
没有信息显示不应该是正常的,因为你并没有跳转,或者输出什么东西,out.println()好像只会在后台输出,看看是不是这个原因,好像你的代码是没有问题的。
打开F12调试,服务器的错