JSP实现数据库登录

RiRiRiStar 2017-04-22 06:01:59
数据库没有问题,已经准备好,但是测试的时候,无论输入的用户名密码是否和数据库匹配,都无法登录成功,肯定大神指导!!!!
1.登录页面
login.jsp
<form action="loginCheckServlet" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="user"/></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="pwd"/></td>
</tr>
<tr>
<td><input type="submit" value="提交"/></td>
<td><input type="reset" value="重置"/></td>
</tr>
</table>
</form>


2.检测是否和数据库匹配
UserCheck.java

public class UserCheck {

private Connection con;
private PreparedStatement pstm;

public boolean login(String name,String pwd) {
Connection con = null;
Statement st = null;
ResultSet rs = null;

boolean flag=false;

try {
//Q MySQL Java
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

try {
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/USER", "root",
"");
st = con.createStatement();
String sql="select * from userlist where username=? and userpwd =?";
pstm = this.con.prepareStatement(sql);
pstm.setString(1, name);
pstm.setString(2, pwd);
rs = pstm.executeQuery();
if(rs.next()){
flag=true;
}

} catch(Exception e){
e.printStackTrace();
}
return flag;
}
}

3.实现跳转页面
LoginCheckServle.tjava

@WebServlet(name = "loginCheckServlet", urlPatterns = { "/loginCheckServlet" })
public class LoginCheckServlet 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 {
request.setCharacterEncoding("GBK");
HttpSession session = request.getSession();
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
String name1 = (String) session.getAttribute("name");

UserCheck uc = new UserCheck();

boolean f = false;
if(pwd!=null&&name!=null&&name1==null){
f = uc.login(name, pwd);
}else if(name1!=null){
f=true;
}

if (f) {

session.setAttribute("name", name);
session.setAttribute("pwd", pwd);
ServletContext app = this.getServletContext();
RequestDispatcher rd = app.getRequestDispatcher("/loginSuccess.jsp");
rd.forward(request,response);

} else {
ServletContext app = this.getServletContext();
RequestDispatcher rd = app.getRequestDispatcher("/login.jsp");
rd.forward(request,response);

}
}
}
...全文
319 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Intboy 2017-04-24
  • 打赏
  • 举报
回复
报什么错误呢?把异常贴出来呀
RiRiRiStar 2017-04-24
  • 打赏
  • 举报
回复
引用 4 楼 qq_35270062 的回复:
检查一下mysql服务有没启动
启动了。
RiRiRiStar 2017-04-24
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
name="user".... String name = request.getParameter("name");改为String name = request.getParameter("user");试试
还是不可以,因为后边都是用的name,所以我改成了name="name",结果仍然不对
逛青楼的道长 2017-04-23
  • 打赏
  • 举报
回复
检查一下mysql服务有没启动
MonkeyHou0529 2017-04-23
  • 打赏
  • 举报
回复
楼上一样回复,你拿前台数据的时候一般最好打印一下试试看拿到的是什么,在判断
墨笙弘一 2017-04-22
  • 打赏
  • 举报
回复
楼上加一 试试 因为你表单传到后台的用户名是user而不是Name
李德胜1995 2017-04-22
  • 打赏
  • 举报
回复
name="user".... String name = request.getParameter("name");改为String name = request.getParameter("user");试试

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧