Java servlet:服务器遇到内部错误,无法满足此请求
我已经用jsp页面和servlet创建了注册页面,我得到的错误如下 说明服务器遇到内部错误,无法满足此请求Java servlet:服务器遇到内部错误,无法满足此请求,java,jsp,servlets,Java,Jsp,Servlets,我已经用jsp页面和servlet创建了注册页面,我得到的错误如下 说明服务器遇到内部错误,无法满足此请求 exception java.lang.NullPointerException com.javatpont.RegisterUser.register(RegisterUser.java:13) com.javatpont.CreateServlet.doGet(CreateServlet.java:33) javax.servlet.http.HttpServ
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>
这是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;
}
}
嗨,我想你真正的问题在这里
Connection con=GetCon.getCon();
您可以获得连接,但仍尝试执行此操作
ps = con.prepareStatement(...)
我们需要首先找出连接失败的原因。。检查您提供的URL,如以下jdbc所示:mysql://localhost/DATABASE_NAME ..
如果数据库位于您的计算机本身或该ip上,则为localhost。。还要确保类路径中有所需的jdbc驱动程序
编辑:
看到最新的注释和代码,它看起来像是一个缺少jar的问题。。您需要将连接器库添加到运行时类路径`
java -cp .;mysql-connector-java-5.1.25-bin.jar GetCon`
我的示例使用Windows类路径分隔符;,在其他系统上可能有所不同:在Linux上。它还假设mysql-connector-java-5.1.25-bin.jar位于同一文件夹中。如果不是这样,则将路径放在库中,而不是普通名称。它是NullPointerException。@viraj数据库初始化器公共接口dbinitializer{String DRIVER=com.mysql.jdbc.DRIVER;String CON_String=jdbc:mysql://location:3306:demo;字符串用户名=根;字符串密码=根;}是的,先生,这是一个空指针,但请检查可能的原因@BoristheSpider在投票表决前至少看一看代码。@user4751433您能替换字符串CON_String=jdbc吗:mysql://location:3306:demo 字符串CON_String=jdbc时:mysql://localhost/demo 试着。。我很确定我们会继续这样做。@viraj我按照您的建议尝试过,但再次出现同样的错误,RegisterUser的第13行是…?@boristesspider我在RegisterUser.java页面中提到,第13行ps=con.prepareStatementInsert为新成员值?,?,?,?,?,?,?;这并没有太大帮助,因为现在这行已经被注释了。con显然为null-GetCon.GetCon返回null。为什么?我假设您的代码在GetCon中输出异常。你完全忽视了这一点,并且想知道你为什么会有错误。@Boristeider这是我最初的想法,你投票否决了我。。。
java -cp .;mysql-connector-java-5.1.25-bin.jar GetCon`