<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%@ page language="java" import="java.sql.*"%>
用户名是<%=request.getParameter("username")%>
<br><br>
密码是<%=request.getParameter("pass")%>
<br><br>
<%
String name=request.getParameter("username");
String pass=request.getParameter("pass");
String sqlString=null;
sqlString="insert into login(username,password)"+" values('"+name+"','"+pass+"')";
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection dbcon=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=test","sa","47");
PreparedStatement stat=dbcon.prepareStatement(
sqlString);
stat.setString(1,name);
stat.setString(2,pass);
stat.executeUpdate();
stat.close();
dbcon.close();
out.println("insert successful");
}
catch(Exception e)
{
out.println(e);
}
%>
<b>Click here to view all people</b>
<form method=get action="http://127.0.0.1:8080/jsp/test2.jsp">
<input type=submit value="--->">
</form>
</html>

解决方案 »

  1.   

    1,嵌套java代码,看着 真头疼。
    2,什么问题?
      

  2.   

    把你的sql语句在DB里面执行看看、能插入数据么?
      

  3.   

    insert into login(username,password)"+" values('"+name+"','"+pass+"')";这个去掉
      

  4.   

    找你的方法做了,结果还是这样
    用户名是 密码是 com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围。 Click here to view all people 
      

  5.   

    1,用户名是<%=request.getParameter("username")%>
    <br><br>
    密码是<%=request.getParameter("pass")%>
    <br><br>
    这两个东西输出有值吗?
    2,如果有值你将
    insert into login(username,password) values('username','pass')(username和pass是你输出的两个值) 放到数据库执行一下,看是否能执行成功!
      

  6.   

    insert into login(username,password)"+" values('"+name+"','"+pass+"')
    改成
    insert into login(username,password) values(?,?);
      

  7.   

    insert into login(username,password)"+" values('"+name+"','"+pass+"')";name  和pass  变成 占位符看看 因为你下面都用set赋值了 sql语句就不需要了name和pass的吧!
      

  8.   

    1,String name=request.getParameter("username");
    String pass=request.getParameter("pass");
    这两个没有获得到值?那肯定插入不到数据库啊!
    2,你在这里用了PreparedStatement (这个自己去google,详细的了解一下)
    stat.setString(1,name);
    stat.setString(2,pass);
    所以sql语句要这样写
    insert into login(username,password) values(?,?);确保name和pass有值
    在将sql语句修改一下,应该就没问题了!
      

  9.   

    PreparedStatement stat=dbcon.prepareStatement(
    sqlString);
    stat.setString(1,name);
    stat.setString(2,pass);
    stat.executeUpdate();改成
    Statement stat=dbcon.createStatement(); 
    stat.execute(sqlString); 试试
      

  10.   

    对了,各位大侠,为什么运行明明有错,用debug on server方式运行后我的console窗口不显示错误信息呢
      

  11.   

    action提交的地方直接写这个就好了jsp/test2.jsp
      

  12.   

    谢谢大家了,问题解决了,我改了action就好了,之前提交空值是因为注册点了两次