简单的用户登录页面与后台数据库的交互
来源:互联网 发布:国家卫生系统网络直报 编辑:程序博客网 时间:2024/06/07 04:30
思路为:当用户登录时,如果用户名和密码都正确的时候会进入成功页面。在validate.jsp里会先获得用户名,然后再数据里查找此用户名是否已经存在,若存在则再与所对应的密码进行对比,若都相同则返回flag为2,成功登录,若用户名存在而密码不正确,则返回flag为1,提示密码错误;若在数据库里找不到对应的用户名,则返回flag为0,提示用户名错误。
代码实现部分:
login.jsp
<body> <form action="validate.jsp" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="loginName"></td> <td><font color="red"><%=request.getAttribute("loginNameError")==null ? "":request.getAttribute("loginNameError") %></font></td> </tr> <tr> <td> 密码:</td> <td><input type="password" name="loginPass"></td> <td><font color="red"><%=request.getAttribute("loginPassError")==null?"":request.getAttribute("loginPassError") %></font></td> </tr> <tr> <td><input type="submit" value="提交"></td> <td><input type="reset" value="重置"></td> </tr> </table> </form></body>
validate.jsp
<body> <% String loginName=request.getParameter("loginName"); String loginPass=request.getParameter("loginPass"); User user=new User(); user.setUsername(loginName); user.setPassword(loginPass); LoginDao loginDao=new LoginDaoImpl(); int flag=loginDao.login(user); if(flag==2){ session.setAttribute("loginName", loginName); response.sendRedirect(request.getContextPath()+"/index.jsp"); }else { if(flag==1){ request.setAttribute("loginPassError", "loginPass is error"); }else if(flag==0){ request.setAttribute("loginNameError", "loginName is error"); } request.getRequestDispatcher("/login.jsp").forward(request, response); } %> </body>
//编写一个接口,只定义方法,具体实现让实现它的接口去完成。
LoginDao.java
package com.dao.dao;import com.jdbc.jdbc.User;public interface LoginDao { int login(User user);}
//实现接口的类,实现了具体的操作
LoginDaoImpl.java
package com.impls.impls;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.jdbc.common.ConnectionUtils;import com.dao.dao.LoginDao;import com.jdbc.jdbc.User;public class LoginDaoImpl implements LoginDao{ Connection con=null; PreparedStatement pstm=null; ResultSet rs=null; public int login(User user) { //连接数据库 con=ConnectionUtils.getConnection(); int flag=0; try { //发送sql文 String sql="select t_name,t_pass from t_user where t_name=?"; pstm=con.prepareStatement(sql); pstm.setString(1, user.getUsername()); rs=pstm.executeQuery(); //处理结果集 while(rs.next()){ String temp=rs.getString("t_pass"); if(temp.equals(user.getPassword())){ flag=2; //用户名和密码都正确 }else{ flag=1;//密码错误 } } } catch (SQLException e) { e.printStackTrace(); }finally{ //资源释放(逆序释放) ConnectionUtils.close(rs, pstm, con); } return flag; }}
具体的公共类ConnectionUtils.java可以参考JDBC连接数据库及具体代码实现
1 0
- 简单的用户登录页面与后台数据库的交互
- 网站与后台数据库的连接
- 简单的用户登录
- 使用委托实现用户控件与父页面的交互
- 使用委托实现用户控件与父页面的交互
- .net中用户控件与页面交互的方法
- 【ExtJs】与后台数据库交互的带分页表格组件grid的查询
- 安卓与H5页面的简单交互
- 很全面的登陆注册界面实现,包括页面显示和后台数据库交互(写了我一下午)
- 简单的用户注册登录
- ExtJS4 简单的用户登录
- 简单的用户登录验证
- 简单的用户登录注册
- 简单的模拟用户登录
- 网页的<title> 部分与后台数据库绑定
- 一个简单的登录页面
- 简单的登录页面设计;
- servlet页面的简单登录
- Missing parentheses in call to 'print' Python初学
- Convolution Neural Network (CNN) 原理与实现
- python基础学习网址
- App移动端项目管理
- 哪个版本的gcc才支持c11
- 简单的用户登录页面与后台数据库的交互
- java中的静态代理
- 移动端App开发流程管理
- Apache-apollo(windows下的搭建)
- 基于《Selenium 2自动化测试实战》的学习笔记(4)—— 简单对象的定位
- Android产品研发(一)-->实用开发规范
- cocos2d-x3.10生成随机数
- web.xml配置错误:java.lang.ClassNotFoundException: com.shiro.web.InitServlet解决!~
- 高手修炼手册3:给前辈铺路的人