天天看点

基于jsp+servlet图书管理系统之后台用户信息修改操作

上一篇的博客写的是查询操作,且附有源码和数据库,这篇博客写的是修改操作,附有从头至尾写的代码(详细的注释)和数据库!

 为了方便理解和说明,先写一下执行的流程和步奏,详细代码可以下载连接。

  1:修改操作的执行流程:

    1.1:修改操作需要先获取到用户信息的编号,然后才可以进行修改,脑子里一定有这个思路。故获取用户编号的操作即为查询操作。这里使用了一个小工具进行分页操作,感兴趣的可以下载源码查看,当作练手使用也是灰常不错的选择。

      <d:column href="system/userinfoupdate" value="修改" title="修改"

            paramId="userId"  paramProperty="userId">      

      </d:column>

                 <!-- 这里提交到的是相对应的servlet的doSet方法里面 -->

          1.2:点击修改提交到system/userinfoupdate这个路径的servlet层。然后到了后台调用service业务逻辑层的getUser方法。

      UserInfoService service=new UserInfoServiceImpl();

           //调用service业务逻辑层的getUser方法

           UserInfo userInfo=service.getUser(user);     

    1.3:然后业务逻辑层调用dao层(数据处理=层),return dao.getUser(user.getUserId());

    1.4:dao层(数据处理层)执行和数据库的连接等等操作之后执行 return user;//返回用户的信息

    1.5:service层执行return dao.getUser(user.getUserId());返回到servlet层 

    1.6:servlet层转发到 userinfo_update.jsp更新操作的jsp页面

      request.getRequestDispatcher("/view/system/userinfo/userinfo_update.jsp").forward(request, response);

      1.7:在更新页面没修改好之后就可以提交到system/userinfoupdate这个执行更新操作的servlet层的doPost方法。需要注意的是隐藏文本框是为了获取用户编号,一定要写,不然获取不到用户的编号,无法进行修改。

      <form action="system/userinfoupdate" class="form-horizontal" method="post">

            <input type="hidden" name="userId" value="${user.userId }"/>

      </form>  

   1.8:执行到这个修改的servlet层之后调用业务逻辑层的修改方法。

            boolean mark=service.updateUser(user);

   1.9:service业务逻辑层(修改,插入,伪删除都是使用提出来的工具类的方法),所以调用工具类里面的方法。

      //添加和修改(伪删除)都可以调用工具类里面公共的方法。

                int count=DbUtils.addAndUpdate(sql, list.toArray());

         2.0:工具类里面的方法执行之后返回执行的结果。return ps.executeUpdate();         

   2.1:又返回到了service层,将执行的true或者false结果返回到servlet层。

                if(count>0){

                    return true;

                }else{

                    return false;

                } 

    2.2:最后返回到了修改的servlet层

      boolean mark=service.updateUser(user);

            //判断最后返回值是否为true,如果为true,提示修改成功,否则提示修改失败

            if(mark){

                request.setAttribute("info", "用户信息修改成功");

            }else{

                request.setAttribute("info", "用户信息修改失败");

            }

            request.getRequestDispatcher("/view/system/userinfo/user_info.jsp").forward(request, response);

      2.3:判断上面的true或者false之后转发到user_info.jsp这个页面,这个页面用来提示信息

    2.4:提示信息之后又由js的window跳转到system/userinfoselect这个路径的servlet层。

      window.location="system/userinfoselect"; 

   2.5:  跳转到这个servlet层之后转发到userinfo_list.jsp这个页面。显示出修改之后的结果。完成修改操作 

      request.getRequestDispatcher("/view/system/userinfo/userinfo_list.jsp").forward(request, response);

     至此修改操作基本完成;

下面将执行流程的重要代码写一下,希望对学习基于java开发的web方法的小伙伴有所帮助,也方便以后自行脑补。详细的代码可以去链接地址下载。 1

  1:按照页面点击修改的流程进行写代码,方便理解。第一是找到页面点击修改。

   2:点击修改之后就到了修改的servlet层的doSet方法

  3:执行了上面的servlet层之后又到了service层(业务逻辑层)页面。

   4:由于是查询操作,所以还需要写dao层(数据处理层),所以又执行到了dao层

   5:执行到了dao层之后返回到service层(业务逻辑层),返回到service层之后servlet层,返回到servlet层之后又返回到userinfo_update.jsp页面。返回到这个页面开始修改,修改之后又提交到修改的servlet的doPost的这个方法。提交到servlet的方法之后又调用service层的修改的方法,修改的方法有调用工具类,由于代码都贴过了,这里介绍了一下执行流程,大家有个思路,这种小项目下去练练手就行了。

最后到了user_info.jsp提示信息的页面,又由js的window转到了userinfo_list.jsp页面。最后修改完成。

  由于代码过多,这里强调的是执行流程,详细的代码设计可以下载源码和数据库自行脑补。

下面简单看看执行的效果。(想想一个修改,执行起来。还TMD搞真复杂,哎,码农不容易啊!)

 用户管理界面的信息:

基于jsp+servlet图书管理系统之后台用户信息修改操作

点击修改之后的页面:需要注意的是账号设置为可读不可写,即不可修改。

基于jsp+servlet图书管理系统之后台用户信息修改操作

保存用户之后对比显示用户信息已经修改完成了。

基于jsp+servlet图书管理系统之后台用户信息修改操作

至此修改演示基本完毕,感兴趣的的可以下载源码看看。