在JavaWeb学习过程中碰到的问题,添加用户功能报错,求解
错误信息
代码块
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();
}
}
}
项目结构
配置文件的问题,解决办法:
1.将配置文件置于resources文件夹下
2.读取代码:
ResourceBundle motan_config = ResourceBundle.getBundle("config");
System.out.print(motan_config.getString("url"));
jdbcutil代码看下,是不是少包
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");
}
}
}