使用IDEA编程Java程序,数据库使用的时mysql,服务器用的时navicat。
使用jsp和servlet构建登录系统,提交表单和查询数据库时,服务器报500错误。测试Dao包,即查询数据库程序时显示error,但依然能返回查询内容。
查询账号代码:
package com.qiaoshilei.dao.impl;
import com.qiaoshilei.dao.UserDao;
import com.qiaoshilei.pojo.User;
import com.qiaoshilei.util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDaoImpl implements UserDao {
@Override
public User selectOne(String zh, String pwd) {
Connection conn=null;
PreparedStatement pstmt = null;
ResultSet rs=null;
User user=null;
try {
conn = DBUtil.getConn();
pstmt = conn.prepareStatement("select * from user where zh=? and pwd=?");
pstmt.setObject(1,zh);
pstmt.setObject(2,pwd);
rs = pstmt.executeQuery();
while (rs.next()){
Integer uid = rs.getInt("uid");
String zh1 = rs.getString("zh");
String pwd1 = rs.getString("pwd");
String realname = rs.getString("realname");
user=new User(uid,zh1,pwd1,realname);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBUtil.closeAll(conn,pstmt,rs);
}
return user;
}
}
业务部分(只是调用了查询方法,应该作用不大,也没有错误)
public class UserServiceImpl implements UserService {
private UserDao userDao=new UserDaoImpl();
@Override
public User login(String zh, String pwd) {
return userDao.selectOne(zh,pwd);
}
}
页面控制部分:
@WebServlet("/UserLoginServlet")
public class UserLoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String uname = req.getParameter("uname");
String pwd = req.getParameter("pwd");
UserService userService=new UserServiceImpl();
User user = userService.login(uname, pwd);
if (user!=null){
resp.sendRedirect(req.getContextPath()+"/success.jsp");
}else{
req.setAttribute("msg","登录失败");
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}
}
}