有效登录后如何通过jsp代码更新或更改sql服务器中的数据?处理更新数据时发生异常



我所有的代码都是用jsp编写的。我正在使用eclipse,tomcat服务器和sql server management studio。使用注册的用户名和密码登录后。我正在尝试更改或更新联系电话和电子邮件ID,但未能这样做。 我正在分享我的成功.jsp代码(大约在成功登录并要求更新联系人和电子邮件字段(和update2.jsp代码(这是关于将数据更新到我登录的同一帐户的功能。

1.成功.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="update2.jsp">
<center>
  <h2>

<%
String a=session.getAttribute("username").toString();
out.println("Hello " +a);
%>

            <center>
            <table border="1" width="30%" cellpadding="5">
                <thead>
                    <tr>
                        <th colspan="2">Update Information Here</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Contact</td>
                        <td><input type="text" name="contact" value="" /></td>
                    </tr>
                    <tr>
                        <td>Email</td>
                        <td><input type="text" name="email" value="" /></td>
                    </tr>
                     <tr>
                        <td><input type="submit" name="submit" value="Update" /></td>
                        <td><input type="reset" value="Reset" /></td>
                    </tr>
                </tbody>
            </table>
            </center>
               </h2>
<a href='logout.jsp'>Log out</a>
</center>
  </form>>
The date now is: <%= new java.util.Date() %>
</body>
</html>
2. update2.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
      <%@page import="java.sql.Connection"%>
      <%@page import="java.sql.*" %>
    <%@page import="java.sql.*,java.io.*,java.text.*,java.util.*" %> 
<%@page import="java.util.*" %> 
<%@ page import= " java.sql.DriverManager"  %>
<%@page import= "java.sql.SQLException" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<%
String user = request.getParameter("uname");    
String pwd = request.getParameter("pass");
String fname = request.getParameter("fname");
String lname = request.getParameter("lname");
String email = request.getParameter("email");
String job= request.getParameter("job");
String place= request.getParameter("place");
String contact= request.getParameter("contact");
if(request.getParameter("submit") !=null)
{
Connection con = null;
PreparedStatement ps = null;
//String user1 = Integer.parseInt(uname);
try
{
    //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection con1 = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;integratedSecurity=true;");
String sql="Update members2 set uname=?,pass=?,fname=?,lname=?,email=?, job=?,place=?,contact=? where uname=?,pass=?";
//String sqlEDIT="UPDATE members2(email,contact) VALUES(?,?)"
ps = con.prepareStatement(sql);
ps.setString(1,user);
ps.setString(2,pwd);
ps.setString(3, fname);
ps.setString(4, lname);
ps.setString(5, email);
ps.setString(6, job);
ps.setString(7, place);
ps.setString(8, contact);
int i = ps.executeUpdate();
if(i > 0)
{
out.print("Record Updated Successfully");
}
else
{
out.print("There is a problem in updating Record.");
}
}
catch(SQLException sql)
{
request.setAttribute("error", sql);
out.println(sql);
}
}

%> 
</body>
</html>

错误如下:

**HTTP Status 500** - An exception occurred processing JSP page /update2.jsp at line 42
type Exception report
message An exception occurred processing JSP page /update2.jsp at line 42
description The server encountered an internal error that prevented it from fulfilling this request.
exception 
org.apache.jasper.JasperException: An exception occurred processing JSP page /update2.jsp at line 42
    39:     Connection con1 = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;integratedSecurity=true;");
    40: String sql="Update members2 set uname=?,pass=?,fname=?,lname=?,email=?, job=?,place=?,contact=? where uname=?,pass=?";
    41: //String sqlEDIT="UPDATE members2(email,contact) VALUES(?,?)"
    42: ps = con.prepareStatement(sql);
    43: ps.setString(1,user);
    44: ps.setString(2,pwd);
    45: ps.setString(3, fname);

    Stacktrace:
        org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    root cause 
    java.lang.NullPointerException
        org.apache.jsp.update2_jsp._jspService(update2_jsp.java:131)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

sql 字符串有 10 个参数:

String sql="Update members2 set uname=?,pass=?,fname=?,lname=?,email=?, job=?,place=?,contact=? where uname=?,pass=?";

但你设置了八个。

最新更新