0

我在尝试编写 servlet 时遇到了一个小的编译错误,我检查了所有的 {} 和 ;

这是代码:

//This servlet processes the user's registration and redirects them to the catalog.

// Load required libraries
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class DatabaseAccess extends HttpServlet{

// JDBC driver name and database URL
private static final String JDBC_DRIVER="com.mysql.jdbc.Driver";  
private static final String DB_URL="jdbc:mysql://localhost/dvdsite";

public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException

      //  Database credentials
      static final String USER = "user";
      static final String PASS = "";

      // Get form values from register page
      String username = request.getParameter("username");
      int userID = Integer.parseInt(username);
      String password = request.getParameter("password");
      String email = request.getParameter("email");
{
      try {
         // Register JDBC driver
         Class.forName("com.mysql.jdbc.Driver");

         // Open a connection
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

         // Execute SQL query
         stmt = conn.createStatement();
         String sql;
         sql = "INSERT INTO dvdsite values (username, password, email)";
         ResultSet rs = stmt.executeQuery(sql);

         // Clean-up environment
         rs.close();
         stmt.close();
         conn.close();
      }catch(SQLException se){
         //Handle errors for JDBC
         se.printStackTrace();
      }catch(Exception e){
         //Handle errors for Class.forName
         e.printStackTrace();
      }finally{
         //finally block used to close resources
         try{
            if(stmt!=null)
               stmt.close();
         }catch(SQLException se2){
         }// nothing we can do
         try{
            if(conn!=null)
            conn.close();
         }catch(SQLException se){
            se.printStackTrace();
         }//end finally try
      } //end try
   }
} 

这是我收到的错误:发现 1 个错误:文件:/Applications/MAMP/htdocs/register.java [行:18] 错误:/Applications/MAMP/htdocs/register.java:18: ';' 预期的

错误出现在这一行:

抛出 ServletException、IOException

任何人都可以帮忙吗?

4

1 回答 1

0

试试这个修正了语法错误的版本。并调用该文件DatabaseAccess.java,因为文件需要像它们的类一样命名。

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DatabaseAccess extends HttpServlet {

    // JDBC driver name and database URL
    private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    private static final String DB_URL = "jdbc:mysql://localhost/dvdsite";

    // Database credentials
    static final String USER = "user";
    static final String PASS = "";

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Get form values from register page
        String username = request.getParameter("username");
        int userID = Integer.parseInt(username);
        String password = request.getParameter("password");
        String email = request.getParameter("email");

        Connection conn;
        Statement stmt;

        try {
            // Register JDBC driver
            Class.forName("com.mysql.jdbc.Driver");

            // Open a connection
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            // Execute SQL query
            stmt = conn.createStatement();
            String sql;
            sql = "INSERT INTO dvdsite values (username, password, email)";
            ResultSet rs = stmt.executeQuery(sql);

            // Clean-up environment
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
            // Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            // Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            // finally block used to close resources
            try {
                if (stmt != null)
                    stmt.close();
            } catch (SQLException se2) {
            }// nothing we can do
            try {
                if (conn != null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }// end finally try
        } // end try
    }
}
于 2013-10-20T18:51:54.500 回答