javaweb添加用户报错,怎么解决?

在JavaWeb学习过程中碰到的问题,添加用户功能报错,求解

错误信息

img

代码块

AddUserServlet


package com.itheima.cloudlibrary.web;

import com.itheima.cloudlibrary.domain.User;
import com.itheima.cloudlibrary.service.UserService;
import com.itheima.cloudlibrary.service.impl.UserServiceImpl;
import com.itheima.cloudlibrary.utils.BaseServlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/addUser")
public class AddUserServlet extends BaseServlet {
    private UserService userService;

    public void init() {
        // 初始化 userService 对象
        userService = new UserServiceImpl();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        String email = request.getParameter("email");
        String role = request.getParameter("role");

        // 创建 User 对象,将数据存入对象中
        User user = new User();
        user.setName(name);
        user.setPassword(password);
        user.setEmail(email);
        user.setRole(role);
        // 将 User 对象传递给 userService 进行数据库操作
        userService.addUser(user);

        // 页面刷新
        response.sendRedirect(request.getContextPath());
    }
}

UserServiceImpl

public void addUser(User user) {
        userDaoImpl.save(user);
    }

UserDaoImpl


public void save(User user) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        DBUtils dbUtils = new DBUtils();
        try {
            conn = dbUtils.getConnection();
            String sql = "INSERT INTO user (name, password, email, role) VALUES (?, ?, ?, ?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, user.getName());
            pstmt.setString(2, user.getPassword());
            pstmt.setString(3, user.getEmail());
            pstmt.setString(4, user.getRole());
            pstmt.executeUpdate();
        } catch (SQLException e) {
            // 处理异常
            e.printStackTrace();
        } finally {
            // 关闭资源
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
            } catch (SQLException se2) {
                se2.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }

项目结构

img

配置文件的问题,解决办法:

1.将配置文件置于resources文件夹下

2.读取代码:

 ResourceBundle motan_config = ResourceBundle.getBundle("config");
        System.out.print(motan_config.getString("url"));

jdbcutil代码看下,是不是少包

  • 这篇博客: 管理员添加用户 + 查看所有用户信息中的 AddUserServlet.java 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • package com.syj.login.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.syj.login.beans.user;
    import com.syj.login.dao.userDao;
    import com.syj.login.dao.userDaoImpl;
    
    public class AddUserServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doPost(request, response);
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//确认请求是否获取到
    		System.out.println("添加用户请求过来了!");
    		//1、获取到管理员输入的用户信息
    		String user_name = request.getParameter("user_name");
    		String user_password = request.getParameter("user_password");
    		String user_num = request.getParameter("user_num");
    		String user_phone = request.getParameter("user_phone");
    		String user_sex = request.getParameter("user_sex");
    		String user_school = request.getParameter("user_school");
    		String user_identify = request.getParameter("user_identify");
    		String user_intro = request.getParameter("user_intro");
    		
    		/**
    		 * 1.不验证用户名是否重复的过程
    		 * */
    		//2、将活动信息插入到数据库中
    		//userDao userDao = new userDaoImpl();
    		//userDao.insertUser(user_name,user_password,user_num,user_phone,user_sex,user_school,user_identify,user_intro);
    		//3、发布成功返回当前页面
    		//response.sendRedirect("Admin_user.jsp");
    		
    		/**
    		 * 2.验证用户名是否重复的过程
    		 * */
    		//2、将活动信息插入到数据库中
    		userDao userDao = new userDaoImpl();
    		user user = userDao.getUserByUsername(user_name);
    		if(user!=null) {
    			//注册失败回到注册页面并显示提示信息   →   转发
    			request.setAttribute("AddUser_msg", "用户名已经存在!若输入本人姓名依旧重复,请修改为‘年级+姓名’,例如‘16张三’");
    			request.getRequestDispatcher("Admin_user.jsp").forward(request,response);
    		}else {
    			//可以注册
    			//3、将用户注册的信息插入到数据库中
    			userDao.insertUser(user_name,user_password,user_num,user_phone,user_sex,user_school,user_identify,user_intro);
    			//4、注册成功去往登录页面
    			response.sendRedirect("Admin_user.jsp");
    		}
    	}
    }