执行Jsp servlet crud示例时出错
我正在使用Jsp、Servlet和Mysql执行简单的crud示例。我已经通过查看示例手动键入了代码。当我尝试执行它时,我得到了这个错误。 下面是我收到的错误消息的描述。 如果您需要任何java/jsp文件进行分析,请告诉我执行Jsp servlet crud示例时出错,jsp,servlets,Jsp,Servlets,我正在使用Jsp、Servlet和Mysql执行简单的crud示例。我已经通过查看示例手动键入了代码。当我尝试执行它时,我得到了这个错误。 下面是我收到的错误消息的描述。 如果您需要任何java/jsp文件进行分析,请告诉我 HTTP Status 500 - javax.servlet.ServletException: Error instantiating servlet class com.daniel.controller.UserController type Exception
HTTP Status 500 - javax.servlet.ServletException: Error instantiating servlet class com.daniel.controller.UserController
type Exception report
message javax.servlet.ServletException: Error instantiating servlet class com.daniel.controller.UserController
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: javax.servlet.ServletException: Error instantiating servlet class com.daniel.controller.UserController
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:555)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:461)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
**javax.servlet.ServletException**: Error instantiating servlet class com.daniel.controller.UserController
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:742)
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:712)
org.apache.jsp.index_jsp._jspService(index_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
**`java.lang.NullPointerException`**
java.util.Properties$LineReader.readLine(Unknown Source)
java.util.Properties.load0(Unknown Source)
java.util.Properties.load(Unknown Source)
com.daniel.util.DbUtil.getConnection(DbUtil.java:27)
com.daniel.dao.UserDao.<init>(UserDao.java:20)
com.daniel.controller.UserController.<init>(UserController.java:25)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:742)
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:712)
org.apache.jsp.index_jsp._jspService(index_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
添加com.daniel.dao.UserDao
package com.daniel.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.daniel.model.User;
import com.daniel.util.DbUtil;
public class UserDao
{
private Connection con;
public UserDao()
{
con= DbUtil.getconnection();
}
public void addUser(User user)
{
try
{
PreparedStatement ps = con.prepareStatement("insert into users(firstname,lastname,dob,emailid) values(?,?,?,?)");
ps.setString(1,user.getFirstname());
ps.setString(2,user.getLastname());
ps.setDate(3,new java.sql.Date(user.getDob().getTime()));
ps.setString(4,user.getEmailid());
ps.executeUpdate();
}catch (SQLException e)
{
e.printStackTrace();
}
}
public void deleteUser(int userid)
{
try
{
PreparedStatement ps = con.prepareStatement("delete from users where userid=?");
ps.setInt(1,userid);
ps.executeUpdate();
}catch (SQLException e)
{
e.printStackTrace();
}
}
public void updateUser(User user)
{
try
{
PreparedStatement ps = con.prepareStatement("update user set firstname=?,lastname=?,dob=?,emailid=?"+ "where userid=?");
ps.setString(1,user.getFirstname());
ps.setString(2,user.getLastname());
ps.setDate(3,new java.sql.Date(user.getDob().getTime()));
ps.setString(4,user.getEmailid());
ps.setInt(5,user.getUserid());
ps.executeUpdate();
}catch (SQLException e)
{
e.printStackTrace();
}
}
public List<User> getAllUsers()
{
List<User> users = new ArrayList<User>();
try
{
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from users");
while(rs.next())
{
User user = new User();
user.setUserid(rs.getInt("userid"));
user.setFirstname(rs.getString("firstname"));
user.setLastname(rs.getString("lastname"));
user.setDob(rs.getDate("dob"));
user.setEmailid(rs.getString("emailid"));
users.add(user);
}
}catch (SQLException e)
{
e.printStackTrace();
}
return users;
}
public User getUserById(int userid)
{
User user = new User();
try
{
PreparedStatement ps = con.prepareStatement("select * from users where userid=?");
ResultSet rs = ps.executeQuery();
if(rs.next())
{
user.setUserid(rs.getInt("userid"));
user.setFirstname(rs.getString("firstname"));
user.setLastname(rs.getString("lastname"));
user.setDob(rs.getDate("dob"));
user.setEmailid(rs.getString("emailid"));
}
}catch (SQLException e)
{
e.printStackTrace();
}
return user;
}
}
在DbUtil类上,尝试删除下面的/On getResourceAsStream方法,并确保文件db.properties位于src目录中
InputStream ip = DbUtil.class.getClassLoader().getResourceAsStream("db.properties");
你能添加你的类com.daniel.controller.UserController代码吗?@GUISSOUMAIssam:添加了UserController servlet文件你在访问数据库时遇到问题,添加UserDao和DbUtil代码too@GUISSOUMAIssam当前位置我已经添加了这两个codes@GUISSOUMAIssam:我尝试通过删除/来执行,并且我的db.properties文件位于src目录中。但我还是犯了同样的错误。
package com.daniel.util;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DbUtil
{
private static Connection con=null;
public static Connection getconnection()
{
if(con!=null)
{
return con;
}
else
{
try
{
Properties prop = new Properties();
InputStream ip = DbUtil.class.getClassLoader().getResourceAsStream("/db.properties");
prop.load(ip);
String driver = prop.getProperty("driver");
String url = prop.getProperty("url");
String user = prop.getProperty("user");
String pwd = prop.getProperty("password");
Class.forName(driver);
con = DriverManager.getConnection(url, user, pwd);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return con;
}
}
InputStream ip = DbUtil.class.getClassLoader().getResourceAsStream("db.properties");