1.包结构

2.数据库表字段

数据库名:MyDB
表名:acca
字段: id int
name varchar(64)
pwd varchar(64)

3.工具类DBUtil

public class DBUtil {public  static Connection getConn() {String url="jdbc:sqlserver://localhost:1433;databaseName=MyDB";String user="sa";//数据库登录名String pwd="1";//数据库登录密码Connection conn=null;try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection(url, user, pwd);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}public static void closeConn(Connection conn,PreparedStatement ps,ResultSet rs) {try {if(conn!=null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {if(ps!=null){ps.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {if(rs!=null){rs.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}  }

4.1登录

<style type="text/css">.input1 {border: 1px solid #CDC28D; /* 输入框表框颜色*/background-color: #F2F9FD; /* 输入框背景颜色*/height:40px; /*输入框高度*/width: 200px; /*输入框宽度*/padding-top: 4px; /*输入框里的文字和输入框上边之间的距离font-family: Arial, Helvetica, sans-serif; /*输入框文字类型*/font-size: 12px; /*输入框内文字大小*/padding-left: 10px; /*输入框里的文字和输入框左边之间的距离*/}.input2 {border: 1px solid #1E1E1E; /* 输入框表框颜色*/background-color: #F2F9FD; /* 输入框背景颜色*/height: 30px; /*输入框高度*/width: 80px; /*输入框宽度*/}</style><body><form action="index" method="post"><table align="center"><tr height="150dp"><td></td></tr><tr align="center"><td colspan="2"><h1>用户登录</h1></td></tr><tr><td>用户名:</td><td><input class="input1" type="text" name="name" /></td></tr><tr><td>密码:</td><td><input class="input1"  type="password" name="pwd" /></td></tr><tr align="center"><td colspan="2"><input class="input2"  type="submit" value="登录" /></td></tr><tr align="right"><td colspan="2"><a href="register.jsp">注册</a></td></tr></table></form></body>
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//执行dopost方法doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//乱码问题的处理response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");//接受前端传递进来的用户名和密码String name=request.getParameter("name");String pwd=request.getParameter("pwd");//数据库的操作Connection conn=DBUtil.getConn();String sql="select * from acca where name=? and pwd=?";PreparedStatement ps=null;ResultSet rs=null;//定义一个flag,默认为falseboolean flag=false;try{ps=conn.prepareStatement(sql);ps.setString(1, name);ps.setString(2, pwd);rs=ps.executeQuery();if(rs.next()){flag=true;//如果存在}else{flag=false;//如果不存在}}catch (SQLException e) {e.printStackTrace();}finally{DBUtil.closeConn(conn,ps,rs);}if(flag){//如果存在,则重定向到我们要访问的Servletresponse.sendRedirect("UserListServlet");}else{//不存在,则返回登录页response.sendRedirect("index.jsp");}}

4.2注册

<style type="text/css">.input1 {border: 1px solid #CDC28D; /* 输入框表框颜色*/background-color: #F2F9FD; /* 输入框背景颜色*/height:40px; /*输入框高度*/width: 200px; /*输入框宽度*/padding-top: 4px; /*输入框里的文字和输入框上边之间的距离font-family: Arial, Helvetica, sans-serif; /*输入框文字类型*/font-size: 12px; /*输入框内文字大小*/padding-left: 10px; /*输入框里的文字和输入框左边之间的距离*/}.input2 {border: 1px solid #1E1E1E; /* 输入框表框颜色*/background-color: #F2F9FD; /* 输入框背景颜色*/height: 30px; /*输入框高度*/width: 80px; /*输入框宽度*/}</style><body><form action="register" method="post"><table align="center"><tr height="150dp"><td></td></tr><tr align="center"><td colspan="2"><h1>用户注册</h1></td></tr><tr><td>用户名:</td><td><input class="input1" type="text" name="name" /></td></tr><tr><td>密码:</td><td><input class="input1"  type="password" name="pwd" /></td></tr><tr align="center"><td colspan="2"><input class="input2"  type="submit" value="注册" /></td></tr></table></form></body>
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//执行dopost方法doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");//接收到的注册内容String name=request.getParameter("name");String pwd=request.getParameter("pwd");//判断是否为空,这里可以在前端部分加上正则表达式if(name!=null && !"".equals(name) && pwd!=null && !"".equals(pwd)){Connection conn=DBUtil.getConn();PreparedStatement ps=null;ResultSet rs=null;//数据库插入String sql="insert into acca (name,pwd) values (?,?)";try{ps=conn.prepareStatement(sql);ps.setString(1, name);ps.setString(2, pwd);int r=ps.executeUpdate();if(r>0){//如果数据库插入成功,则跳转到登录页面response.sendRedirect("index.jsp");}else{//否则注册失败,返回注册页面response.sendRedirect("register.jsp");}}catch (SQLException e) {e.printStackTrace();}finally{DBUtil.closeConn(conn, ps, rs);}}else{//传入数据为空,注册失败response.sendRedirect("register.jsp");}}

4.3查询输出数据库内容

 been类
public class User {private Integer id;private String name;private String pwd;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public User(Integer id,String name,String pwd){super();this.id=id;this.name=name;this.pwd=pwd;}public User() {super();}
}

4.1中登录成功后,首先访问一个Servlet,在这个Servlet中将表中的数据查询,再传递到登录成功后的页面输出显示

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");Connection conn=DBUtil.getConn();PreparedStatement ps=null;ResultSet rs=null;String sql="select * from acca";List<User> users=new ArrayList<User>();try{ps=conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){//循环我们查询的表User user=new User(rs.getInt(1),rs.getString(2),rs.getString(3));users.add(user);//将数据装入users}}catch (Exception e) {e.printStackTrace();}finally{DBUtil.closeConn(conn, ps, rs);}HttpSession session=request.getSession();//建立一个sessionsession.setAttribute("userList", users);response.sendRedirect("login.jsp");//登录后的页面}}
<body><table border="1" cellspacing="0" align="center" width="1000dp"height="500dp"><thead><tr><td>编号</td><td>姓名</td><td>密码</td><td>操作</td></tr></thead><tbody><%List<User> users = (List) session.getAttribute("userList");for (User user : users) {%><tr><td><%=user.getId()%></td><td><%=user.getName()%></td><td><%=user.getPwd()%></td><td>    //获取到要删除的数据的id,并将数据传输到一个servlet<a href="deleteServlet?id=<%=user.getId() %>">删除</a>//获取到要更新的数据的id,并将数据传输到一个servlet<a href="updateShowServlet?id=<%=user.getId() %>">更新</a></td></tr><%}%></tbody></table></body>

显示结果如下,可对页面进行更新或者删除操作

4.4删除数据

在4.3中,登录成功显示页面,将获取到要删除的数据的id传到servlet

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");//接受到将要删除的idString id = request.getParameter("id");Connection conn=DBUtil.getConn();PreparedStatement ps=null;ResultSet rs=null;String sql="delete acca where id = ?";try{ps=conn.prepareStatement(sql);ps.setString(1, id);int r=ps.executeUpdate();if(r>0){//不论删除成功还是失败都会返回到登录成功时的servlet,通过该servlet进入登录成功页面response.sendRedirect("UserListServlet");}else{response.sendRedirect("UserListServlet");}}catch (SQLException e) {e.printStackTrace();}finally{DBUtil.closeConn(conn, ps, rs);}}

4.5数据库更新 修改

4.3中登录成功页面,在点击更新时,页面会先获取到要删除的数据的id,发送给一个servlet进行处理。

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");String id = request.getParameter("id");//获取要删除数据的idConnection conn=DBUtil.getConn();String sql="select * from acca where id=?";//查询出该id的所有字段内容PreparedStatement ps=null;ResultSet rs=null;try{ps=conn.prepareStatement(sql);ps.setString(1, id);rs=ps.executeQuery();if(rs.next()){request.setAttribute("id", rs.getInt(1));request.setAttribute("name", rs.getString(2));request.setAttribute("pwd", rs.getString(3));/**将数据发送到一个jsp页面,在该页面进行人工的数据的修改*/request.getRequestDispatcher("update.jsp").forward(request, response);}}catch (SQLException e) {e.printStackTrace();}finally{DBUtil.closeConn(conn,ps,rs);}}
<style type="text/css">.input1 {border: 1px solid #CDC28D; /* 输入框表框颜色*/background-color: #F2F9FD; /* 输入框背景颜色*/height:40px; /*输入框高度*/width: 200px; /*输入框宽度*/padding-top: 4px; /*输入框里的文字和输入框上边之间的距离font-family: Arial, Helvetica, sans-serif; /*输入框文字类型*/font-size: 12px; /*输入框内文字大小*/padding-left: 10px; /*输入框里的文字和输入框左边之间的距离*/}.input2 {border: 1px solid #1E1E1E; /* 输入框表框颜色*/background-color: #F2F9FD; /* 输入框背景颜色*/height: 30px; /*输入框高度*/width: 80px; /*输入框宽度*/}</style><body><form action="updateServlet" method="post"><table align="center"><tr height="150dp"><td></td></tr><tr><td colspan="2"><h1>用户更新</h1></td></tr><tr><td>ID:</td><td><input class="input1" type="text" name="id" readonly="readonly" value="<%=request.getAttribute("id") %>"/></td></tr><tr><td>用户名:</td><td><input class="input1" type="text" name="name" value="<%=request.getAttribute("name") %>"/></td></tr><tr><td>密码:</td><td><input class="input1" type="text" name="pwd" value="<%=request.getAttribute("pwd") %>"/></td></tr><tr align="center"><td colspan="2"> <input class="input2" type="submit" value="更新"/></td></tr></table></form></body>


在该jsp页面,将要更新的数据进行修改,点击更新按钮后,数据将被发送到一个servlet页面进行处理,处理后会返回到登录成功时的servlet,通过该servlet进入登录成功时的页面。

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");String id = request.getParameter("id");String name=request.getParameter("name");String pwd=request.getParameter("pwd");//获取到要更新的数据Connection conn=DBUtil.getConn();PreparedStatement ps=null;ResultSet rs=null;//更新语句String sql="update acca set name=?, pwd=? where id=?";try{ps=conn.prepareStatement(sql);ps.setString(1, name);ps.setString(2, pwd);ps.setInt(3,Integer.parseInt(id));int r=ps.executeUpdate();if(r>0){   //response.sendRedirect("UserListServlet");}else{response.sendRedirect("UserListServlet");}}catch (SQLException e) {e.printStackTrace();}finally{DBUtil.closeConn(conn, ps, rs);}}

javaWeb实现登录注册的增删改查功能相关推荐

  1. Java-spring数据库编程(idea)实现学生账号登录以及管理员增删改查功能

    通过所学的Spring数据库编程知识,实现学生管理系统的登录及增删改查的功能.要求学生在控制台输入用户名密码,如果用户账号密码正确则显示登录成功,如果登录失败则显示登录失败.登录成功后,可以进行增删改 ...

  2. 使用javaweb进行用户管理系统的增删改查,分页和条件查询

    使用javaweb进行用户管理系统的增删改查,分页和条件查询 如有转载请标注来源!!!谢谢配合 源码已经上传,可以自行下载 https://download.csdn.net/download/wei ...

  3. Spring+SpringMVC+MyBatis明日方舟版人员信息管理系统前端页面代码前后端交互+SSM框架 管理员登录 游客登录 普通用户登录 人员的增删改查 信息更新 图片上传 分页查询)

    Spring+SpringMVC+MyBatis明日方舟版人员信息管理系统前端页面代码(前后端交互+SSM框架 管理员登录 游客登录 普通用户登录 人员的增删改查 信息更新 图片上传 分页查询 修改密 ...

  4. 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!

    一丶使用三层架构创建一个简单的MVC登录操作 1.首先,创建一个项目以及BLL层.DAL层.Entity层,如图一: 图一 2.创建一个数据库如图二: 图二 3基本工作已做好,接下来就编BLL层.DA ...

  5. Python写一个账号密码小助手(包含增删改查功能)

    背景 随着现在的应用越来越多,人们注册账号密码的数量也越来越多,很多时候,我都不记得这个平台有没有创建账号密码,这是第一点.还有一点就是,因为很多人不愿意记很多个密码,或者也记不住很多个密码,导致很多 ...

  6. 使用EF框架实现MVC的增删改查功能!!!Entity Framework

    一.什么是EF? ADO.NETEntity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.ADO.NET Entity Fram ...

  7. ext store 数据修改_Go 数据存储篇(一):基于内存存储实现数据增删改查功能...

    在 Web 编程中,经常需要处理用户请求数据,而用户请求数据的处理往往又涉及到数据存储与获取,支持存储数据的媒介很多,包括内存.文件系统.数据库等,接下来,学院君将花几个篇幅的教程来系统介绍 Go W ...

  8. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)

    JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式                      (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...

  9. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...

最新文章

  1. 【JOURNAL】搭配/ IKEA Match
  2. 斯坦福机器学习公开课学习笔记(2)—监督学习 梯度下降
  3. 成功解决xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b‘Debug is
  4. 自定义拦截器和提供的拦截器
  5. 爬取京东商品分类和链接
  6. win32中如何使用CString
  7. 两个tplink路由器有线桥接_tplink和腾达路由器有线桥接设置图解
  8. Taro+react开发(70):flex布局
  9. 思维认知-读mindhacks杂记
  10. hexo搭建博客系列(六)百度,必应,谷歌收录
  11. Codeforces Round #531 (Div. 3) F.Elongated Matrix(状压dp)
  12. Java常见基础笔试+面试题
  13. Win10更新、重装后 触摸板无法关闭
  14. Java SE 8: 从入门到上瘾
  15. T12焊台和JBC焊台自制资料(原理和电路)
  16. 怎么用计算机算虚数,小E教你们如何用计算机算虚数
  17. 菜鸟学Linux 第107篇笔记 zabbix概念和安装
  18. 子域和域之间共享cookie
  19. FreeImage的图像处理软件
  20. 托福 103,GRE 158+167+3.5

热门文章

  1. Python获取局域网IP(ping)
  2. BAT、360、今日头条的小程序大战 谁会是最后的赢家?
  3. 如何设计群发系统消息表
  4. 你知道CAD中的样条曲线的绘制方法吗?
  5. 仿京东商城商品分类搜索功能
  6. vscode远程连接虚拟机/云服务器
  7. android 头像球_【Android 界面效果44】Android之圆头像实例
  8. 【ArcGIS】地表模型生成和显示
  9. 品牌营销策略:适合初创公司的5种营销方式
  10. 私域运营第五讲:实体店私域流量拉新实体餐饮店如何通过搭建私域流量实现营收增长