2015-04-05 2 views
1

I'v создал страницу регистрации с помощью страницы и сервлета jsp, я получаю ошибку как описание Сервер обнаружил внутреннюю ошибку, которая помешала ему выполнить этот запрос.Сервлет: сервер обнаружил внутреннюю ошибку, которая помешала ему выполнить этот запрос.

exception 

java.lang.NullPointerException 
    com.javatpont.RegisterUser.register(RegisterUser.java:13) 
    com.javatpont.CreateServlet.doGet(CreateServlet.java:33) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

это ---> Register.jsp страница

<form name=F1 onSubmit="return dil(this)" action="CreateServlet"> 
    <table height="350" cellspacing="5" cellpadding="3"> 
     <tr> 
      <td>USER NAME:</td><td> <input type="text" name="username"/></td> 
     </tr> 
     <tr> 
      <td>PASSWORD:</td><td> <input type="password" name="password"/></td> 
     </tr> 
     <tr> 
      <td>RE-PASSWORD:</td><td> <input type="password" name="repassword"/></td> 
     </tr> 
     <tr> 
      <td>PHONE:</td><td> <input type="text" name="phone"/></td> 
     </tr> 
     <tr> 
      <td>ADDRESS:</td><td> <textarea rows=4 cols=40 wrap=virtual name="adderess"></textarea></td> 
     </tr> 
     <TR> 
      <TD> Select your designation:</TD> 
      <TD> 
       <SELECT NAME="syd"> 
        <option>student 
        <option>professor 
        <option>Associate-Professor 
        <option>lecturer 
        <option>non-teaching staff 
       </SELECT> 
      </TD> 
     </TR> 
     <tr><td></td><td><input type="submit" value="Submit"/> 
     <INPUT TYPE=RESET VALUE="CLEAR"></td></tr> 
    </table> 
</form> 

и это CreateServlet.java

package com.javatpont; 
    import java.io.IOException; 
    import java.io.PrintWriter; 
    import java.rmi.Naming; 

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



    public class CreateServlet extends HttpServlet { 

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

      response.setContentType("text/html"); 
      PrintWriter out=response.getWriter(); 

      String username=request.getParameter("username"); 
      System.out.println("-----------------------"+username); 
      String password=request.getParameter("password"); 
      String repassword=request.getParameter("repassword"); 
      String ph=request.getParameter("phone"); 
      double phone=Double.parseDouble(ph); 

      String adderess=request.getParameter("adderess"); 

      String syd=request.getParameter("syd"); 

    // line number 33  int status=RegisterUser.register(username, password, repassword,phone, adderess,syd); 
      System.out.println("***********************"+username); 

      if(status>0){ 
       System.out.println("==========================="+username); 
       request.setAttribute("welcome","WELCOME! YOU HAVE BEEN REGISTERD"); 
       RequestDispatcher rd=request.getRequestDispatcher("member.jsp"); 
       rd.include(request, response); 
      } 
      else{ 
       out.print("Sorry,Registration failed. please try later"); 
       RequestDispatcher rd=request.getRequestDispatcher("member.jsp"); 
       rd.include(request, response); 
      } 

     out.close();  
     } 

    } 

и это RegisterUser.java

package com.javatpont; 
    import java.sql.*; 
    public class RegisterUser { 
    static int status=0; 
    //int accountno=1; 
    public static int register(String username,String password,String repassword,double phone,String adderess,String syd){ 
     //public static int register(String email,String password,String gender,String country,String name){ 

     Connection con=GetCon.getCon(); 
     PreparedStatement ps; 

     try { 
System.out.println("here is the problem line number 13"); 
    //line number13->   ps = con.prepareStatement("Insert into NEWMEMBER values(?,?,?,?,?,?,?)"); 
      int nextvalue1=GetCon.getPrimaryKey(); 
      ps.setInt(1,nextvalue1); 
      ps.setString(2,username); 
      ps.setString(3,password); 
      ps.setString(4,repassword); 
      ps.setDouble(5,phone); 
      ps.setString(6,adderess); 
      ps.setString(7,syd); 

      status=ps.executeUpdate(); 
      System.out.println(status); 
     } catch (SQLException e) { 

      e.printStackTrace(); 
     } 
     return status; 

    } 
    } 

это -> GetCon.java

public class GetCon { 
private GetCon(){} 

public static Connection con; 
static{ 
    try { 
     Class.forName(DBIntializer.DRIVER); 
     con=DriverManager.getConnection(DBIntializer.CON_STRING,DBIntializer.USERNAME,DBIntializer.PASSWORD); 
    } catch (ClassNotFoundException e) { 

     e.printStackTrace(); 
    } catch (SQLException e) { 

     System.out.println("Exception in GetCon"); 
    } 

} 
public static Connection getCon(){ 
    return con; 
} 



public static int getPrimaryKey(){ 
    int nextvalue=0; 
    Connection con=GetCon.getCon(); 
    PreparedStatement ps2; 
    try { 

    ps2=con.prepareStatement("select ff from dual"); 

    ResultSet rs=ps2.executeQuery(); 
    rs.next(); 
    nextvalue=rs.getInt(1); 



} catch (SQLException e) { 

     e.printStackTrace(); 
    } 
return nextvalue; 

} 
} 
+0

И строка '13'' RegisterUser' - это ...? –

+0

@BoristheSpider Я упоминаю на странице RegisterUser.java как строку номер 13 'ps = con.prepareStatement (" Вставить в значения NEWMEMBER (?,?,?,?,?,?,?) ");' – jva

+0

Это не _overly_ полезно, поскольку теперь эта строка прокомментирована. 'con', очевидно,' null' - 'GetCon.getCon' возвращает' null'. Зачем? –

ответ

0

Привет Я думаю, что ваша актуальная проблема здесь

Connection con=GetCon.getCon(); 

Вы можете получить соединение и еще попытаться сделать это ..

ps = con.prepareStatement(...) 

Нам необходимо прежде всего выяснить, почему соединение терпит неудачу .. проверьте URL-адрес, который вы указали там, как это: «jdbc: mysql: // localhost/DATABASE_NAME» .. localhost, если db находится на вашем компьютере, а также на этом ip .. Также убедитесь, что вы требуют d драйвер JDBC в .. классов

EDIT:

Видя последние комментарии и код это выглядит как его отсутствующая проблема баночки .. Вам нужно добавить библиотеку соединителя к времени выполнения `классам

java -cp .;mysql-connector-java-5.1.25-bin.jar GetCon` 

В моем примере используется разделитель классов классов Windows «;», в других системах он может быть другим («:» в Linux). Он также предполагает, что mysql-connector-java-5.1.25-bin.jar находится в той же папке. Если это не так, укажите путь к библиотеке вместо простого имени.

+0

Это 'NullPointerException'. –

+0

@viraj database Intializer 'public interface DBIntializer { String DRIVER =" com.mysql.jdbc.Driver "; Строка CON_STRING = "jdbc: mysql: // location: 3306: demo"; Строка USERNAME = "root"; Строка PASSWORD = "root"; } ' – jva

+0

да, сэр это нулевой указатель, но проверьте возможную причину этого. @BoristheSpider по крайней мере посмотрите на код перед голосованием вниз. –

Смежные вопросы

 Смежные вопросы