100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【JAVA项目实战】【图书管理系统】用户添加功能【Servlet】+【Jsp】+【Mysql】

【JAVA项目实战】【图书管理系统】用户添加功能【Servlet】+【Jsp】+【Mysql】

时间:2021-04-14 10:44:44

相关推荐

【JAVA项目实战】【图书管理系统】用户添加功能【Servlet】+【Jsp】+【Mysql】

🚀个人主页:欢迎访问Ali.s的首页

⏰ 最近更新:7月27日

⛽ Java框架学习系列:【Spring】【SpringMVC】【Mybatis】

🔥 Java项目实战系列:【飞机大战】【图书管理系统】

⛳ Java基础学习系列:【继承】【封装】【多态】

🏆 通信仿真学习系列:【硬件】【通信】【MATLAB】

🍄 个人简介:通信工程本硕🌈、Java程序员🚴。目前只会CURD😂

💌 点赞 👍 收藏 💗留言 💬 都是我最大的动力💯

文章目录

前言一、需求分析二、功能实现1.控制层2.业务层3.持久层4.constant工具类5.表单提交三、功能测试总结

前言

这里是【JAVASE】项目实战的第二节课,接着前天的用户信息查询功能继续做,今天做的是用户的添加功能,使用【servlet】【Jsp】【Mysql】来实现该功能。

一、需求分析

在前面用户信息的查询功能实现后,在用户信息页面有【增删改】的按钮。

实现用户信息的增加、修改、删除的操作。下面对增加的功能进行需求分析。

当点击添加按钮,就是用户发送了请求,这里由于在UserServlet中都是POST请求,所以后面在点击按钮触发事件时,应将actionmethod设置为post方式。用户发送请求后controller层的Servlet就应该要处理请求,而根据MVC架构,controller需要调用service层的方法,所以将业务逻辑交给Service层进行处理,service的处理有需要对请求处理的数据与dao层的数据进行比对,dao层访问数据库信息,对请求数据操作进行校验,并对操作返回数据响应。

二、功能实现

dao层和service层中创建接口以及工具constant类。constant类为了处理项目中需要的常量,防止所使用的量被修改后使用,方便统一管理常量信息。

1.控制层

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String type=req.getParameter(Constant.SERVLET_TYPE_SQLTYPE);if (type!=null && !"".equals(type)){//对请求进行判断,针对不同的请求进行不同的处理if(Constant.SERVLET_TYPE_SAVE.equals(type)){//进行添加操作saveUser(req, resp);}else if (Constant.SERVLET_TYPE_UPDATE.equals(type)){//进行更新操作}else if (Constant.SERVLET_TYPE_DELETE.equals(type)){//进行删除操作}else if(Constant.SERVLET_TYPE_QUERY.equals(type)){//进行查询操作queryUser(req, resp);}}else{/*** 上面对非空进行判断,如果为空,也要进行数据库信息比对,* 所以也是进行查询操作*/queryUser(req,resp);}}

为了避免代码重复,将处理的方法抽象出来,便于调用函数,使代码更加简洁。下面是提交表单和查询用户信息的方法。

private void saveUser(HttpServletRequest req, HttpServletResponse resp) throws IOException {//获取表单提交信息User user=new User();user.setUserName(req.getParameter("userName"));user.setPassword(req.getParameter("password"));user.setPhoneNum(req.getParameter("phoneNum"));user.setEmail(req.getParameter("email"));//记录影响行数Integer count= userService.addUser(user);//是否成功,进行事务的处理if (count>0){//重定向查询resp.sendRedirect("/userServlet");}else{//失败就跳转失败页面System.out.println("插入失败……");}}//查询用户信息private void queryUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//通过service进行信息查询List<User> list=userService.getUser(null);//进行绑定req.setAttribute("list",list);//跳转请求req.getRequestDispatcher("/user/user.jsp").forward(req, resp);}

2.业务层

在接口中调用添加用户的方法,注意返回值为Integer,表示影响的数据库的数据条数。

package com.song.bookmanagersystem.service;import com.song.bookmanagersystem.entity.User;import java.util.List;public interface UserService {List<User> getUser(User user);//业务层添加用户Integer addUser(User user);}

在实现类实现所调用的接口就能完成业务层的处理。

package com.song.bookmanagersystem.service;import com.song.bookmanagersystem.entity.User;import java.util.List;public interface UserService {List<User> getUser(User user);//业务层添加用户Integer addUser(User user);}

3.持久层

在dao层要完成信息的查库操作,与数据库的信息进行比对,并返回响应的结果,这是添加的操作,所以返回响应的结果是是否插入成功,以添加成功的条数来作为结果返回。

@Overridepublic Integer save(User user) {QueryRunner queryRunner = DBUtils.getQueryRunner();//创建sql语句String sql="insert into t_user(user_name, password, phone_num, email, is_deleted, salt) VALUES (?,?,?,?,?,?)";try {return queryRunner.update(sql,user.getUserName(),user.getPassword(),user.getPhoneNum(),user.getEmail(),user.getIsDeleted(),user.getSalt());} catch (SQLException e) {e.printStackTrace();}return 0;//插入失败,}

4.constant工具类

这里统一管理需要使用的常量,防止被修改和调用,做到统一处理,统一调用的目的。

package com.song.bookmanagersystem.utils;public class Constant {public static final String SERVLET_TYPE_SAVE="save";public static final String SERVLET_TYPE_UPDATE="update";public static final String SERVLET_TYPE_DELETE="delete";public static final String SERVLET_TYPE_QUERY="query";public static final String SERVLET_TYPE_SQLTYPE="sqltype";}

5.表单提交

通过action事件触发,设置<input type="hidden" name="sqltype" value="save">submit按钮进行数据的提交。

<div class="formbody"><div class="formtitle"><span>基本信息</span></div><form action="/userServlet" method="post"><ul class="forminfo"><input type="hidden" name="sqltype" value="save"><li><label>账号</label><input name="userName" type="text" class="dfinput" /><i>请输入想要设置的用户名</i></li><li><label>密码</label><input name="password" type="text" class="dfinput" /><i>请输入需要设置的密码</i></li><li><label>手机号</label><input name="phoneNum" type="text" class="dfinput" /><i>请输入手机号</i></li><li><label>邮箱</label><input name="email" type="text" class="dfinput" /><i>注意邮箱格式</i></li><li><label>&nbsp;</label><input name="" type="submit" class="btn" value="确认添加"/></li></ul></form></div>

三、功能测试

启动服务器,让项目在服务器中运行,然后在网页进行添加用户数据信息,在用户信息页面点击添加按钮,

页面进行跳转到田间表单页面,输入想设置的信息后点击确认添加按钮

添加完毕后,页面再次跳转回用户信息页面,并且显示刚刚添加的数据信息。

因为使用了静态模板,所以数据查询比较清楚,展现形式比较好。发现能成功添加到数据库中的用户信息,并且能够将查询到的数据返回到前端页面进行渲染,重新跳转到在用户信息页面进行显示。

总结

以上就是今天要讲的内容,使用【Servlet】+【Jsp】+【Mysql】对用户添加功能进行了处理,发现能成功添加到数据库中的用户信息,并且能够将添加到的数据返回到前端页面进行渲染,将新添加的用户信息返回到前端页面进行显示,能够很好的完成功能需求。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。