Servlet中的int值(不能将字符串转换为Int)

时间:2014-11-09 22:03:25

标签: java servlets

Servlet拒绝我的iD(无法将String转换为INT,但它是一个INT)工作,它是来自http://puu.sh/cGvGN/6d29084aec.png的int(这些对学校来说是假的)

我怎样才能让它发挥作用?我以为我做得对,但Servlet停止工作

会发生什么情况是页面没有加载到ViewStudentSchedule页面,因为id INT不起作用。 (它给我一个空白页)

  @WebServlet(urlPatterns = {"/StudentLoginServlet"})
        public class StudentLoginServlet extends HttpServlet {

            /**
             * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
             * methods.
             *
             * @param request servlet request
             * @param response servlet response
             * @throws ServletException if a servlet-specific error occurs
             * @throws IOException if an I/O error occurs
             */
            protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                response.setContentType("text/html;charset=UTF-8");
                try (PrintWriter out = response.getWriter()) {
                    /* TODO output your page here. You may use following sample code. */


                    int iD = Integer.valueOf(request.getParameter("iD")).intValue (); 
                    String pw = request.getParameter("pw");
                    System.out.println(iD);
                    System.out.println(pw);


                    Student s1=new Student();
                    s1.findDB(iD);


                    String fn=s1.getFirstName();
                    System.out.println(fn);

                    String ln=s1.getLastName();
                    System.out.println(ln);

                    String pwdb=s1.getPassword();
                    System.out.println(pwdb);
                    RequestDispatcher rd;

                    HttpSession ses1=request.getSession();
                    ses1.setAttribute("s1", s1);

                    if (pw.equals(pwdb)){
                        rd= request.getRequestDispatcher("/ViewStudentSchedule.jsp");
                        rd.forward(request,response);

                    }
                    else{
                        rd= request.getRequestDispatcher("/LoginError.jsp");
                        rd.forward(request,response);   

                    }

                }
            }

            // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
            /**
             * Handles the HTTP <code>GET</code> method.
             *
             * @param request servlet request
             * @param response servlet response
             * @throws ServletException if a servlet-specific error occurs
             * @throws IOException if an I/O error occurs
             */
            @Override
            protected void doGet(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                processRequest(request, response);
            }

            /**
             * Handles the HTTP <code>POST</code> method.
             *
             * @param request servlet request
             * @param response servlet response
             * @throws ServletException if a servlet-specific error occurs
             * @throws IOException if an I/O error occurs
             */
            @Override
            protected void doPost(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                processRequest(request, response);
            }

            /**
             * Returns a short description of the servlet.
             *
             * @return a String containing servlet description
             */

            @Override
            public String getServletInfo() {
                return "Short description";
            }// </editor-fold>

        }

问题出在

之下
  int iD = Integer.valueOf(request.getParameter("iD")).intValue (); 

以下是业务对象:

public class Student implements Serializable {

    private int iD;
    private String password;
    private String firstName;
    private String lastName;
    private String street;
    private String city;
    private String state;
    private double zip;
    private String eMail;
    private double gpa;
    private String message;

    /**
     * No arg constructor that sets the default value of all
     * customer properties to an empty string value.
     */
    public Student() {
        this.iD = 0;
        this.password = "";
        this.firstName = "";
        this.lastName = "";
        this.street = "";
        this.city = "";
        this.state = "";
        this.zip = 0;
        this.eMail = "";
        this.gpa = 0;
    }


    public void setID(int id) {
        this.iD = iD;
    }

    public void setPassword(String password) {
        this.password = password;
    }


    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }


    public void SetLastName(String lastName) {
        this.lastName = lastName;
    }


    public void setStreet(String street) {
        this.street = street;
    }

    public void setCity(String city) {
        this.city = city;
    }

      public void setState(String state) {
        this.state = state;
    }

        public void setZip(double zip) {
        this.zip = zip;
    }

          public void setEMail (String email) {
        this.eMail = email;
    }
          public void setGpa(double gpa) {
        this.gpa = gpa;
    }

    public int getID() {
        return iD;
    }


    public String getPassword() {
        return password;
    }


    public String getFirstName() {
        return firstName;
    }


    public String getLastName() {
        return lastName;
    }


    public String getStreet() {
        return street;
    }

    public String getCity() {
        return city;
    }
    public String getState() {
        return state;
    }

    public double getZip() {
        return zip;
    }
      public String getEMail() {
        return eMail;
    }

    public double getGpa() {
        return gpa;
    }
    public String getMessage() {
        return this.message;
    }


    public boolean login(String password) throws SQLException {
        boolean yes_no = false;

        /* Verify password against database password for the userId */
        if (password.equals(this.password)) {
            this.message = "Thank you, you are logged in.";
            yes_no = true;
        } else {
            this.message = "Sorry Your Login Information seems to be incorrect.";
            yes_no = false;
        }

        /* Returns true or false based on the condition statement above */
        return yes_no;
    }

    /**
     * Establishes connection with the database containing the customer information 
     * @return Connection
     */
    public Connection studentConnect() {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (ClassNotFoundException e) {
            System.out.println("Errors: " + e);
        }

        Connection connect = null;
        try {
            connect = DriverManager.getConnection("jdbc:odbc:RegisDB");
        } catch (SQLException e) {
            System.out.println("You have Errors: " + e);
        }

        return connect;
    }

    /**
     * Takes the student Id and retrieves the information from the customers
     * data table and stores it in the properties of the customer object.
     * @param iD
     * @throws SQLException 
     */
    public void findDB(int iD)  {

        Connection con = studentConnect();
        Statement statement = null;
        ResultSet result = null;

        String sql = "Select * From Students Where iD = " + iD + ";";

        try {
            statement = con.createStatement();
            result = statement.executeQuery(sql);
            while (result.next()) {
                this.iD = result.getInt("iD");
                this.password = result.getString("password");
                this.firstName = result.getString("firstName");
                this.lastName = result.getString("lastName");
                this.street = result.getString("street");
                this.city = result.getString("city");
                this.state = result.getString("state");
                this.zip = result.getDouble("zip");
                this.eMail = result.getString("eMail");
                this.gpa = result.getDouble("gpa");
            }
            con.close();

        } catch (SQLException e) {
            System.out.println("Errors: " + e);
        } 
    }

    /**
     * Takes in the parameters of the customer database and inserts the parameters taken into 
     * the database for the addition of customers to the database.
      * @param password
     * @param firstName
     * @param lastName
     * @param street
     * @param city
     * @param state
      * @param zip
     * @param email
     * @param gpa
     * @throws SQLException 
     */
    public void insertDB(String password, String firstName, String lastName, String street, String city, String state, double zip, String email, double gpa) throws SQLException {
        Connection con = studentConnect();
        Statement statement;
        ResultSet result;
        int resultVal;
        String sql = "INSERT INTO Students (password, firstName, lastName, street, city, state, zip, eMail, gpa) VALUES ('" + password + "','" + firstName + "','" + lastName + "','" + street + "','" + city +"','" + state +"','" + zip + "','" + eMail +"','" + gpa + "');";

        try {
            statement = con.createStatement();
            resultVal = statement.executeUpdate(sql);

            System.out.println(resultVal);
        } catch (SQLException e) {
            System.out.println("Error: " + e);
            System.out.println(e.getStackTrace());
        } finally {
            con.close();
        }
    }

    /**
     * Takes in student id and locates the customer in the database, performs
     * an sql update and deletes the customer from the database.
     * @param iD
     * @throws SQLException 
     */
    public void deleteDB(int iD) throws SQLException {
        Connection con = studentConnect();
        Statement statement;
        int resultVal;

        String sql = "DELETE FROM Students WHERE iD = " + iD + "';";

        try {
            statement = con.createStatement();
            resultVal = statement.executeUpdate(sql);
            System.out.println(resultVal);
        } catch (SQLException e) {
            System.out.println("Errors: " + e);
        } finally {
            con.close();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用Integer.parseInt()来解析String并将其放入原始变量类型?

请参阅here