Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行Jsp servlet crud示例时出错_Jsp_Servlets - Fatal编程技术网

执行Jsp servlet crud示例时出错

执行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

我正在使用Jsp、Servlet和Mysql执行简单的crud示例。我已经通过查看示例手动键入了代码。当我尝试执行它时,我得到了这个错误。 下面是我收到的错误消息的描述。 如果您需要任何java/jsp文件进行分析,请告诉我

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");