沿着昨天整理好的页面,今天实现list页面中的修改,

  User update框架

需要的效果图:

先看用户查询界面,

修改id为4的那个用户:

  

  修改后返回用户查看界面。

  1 .先是从list界面开始,在昨天的代码基础上,实现修改功能:

   2.携带被修改用户的Id属性,跳转到UserModifyServlet

  1. package com.jaovo.jcms.user;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9.  
  10. import com.jaovo.jcms.service.UserService;
  11.  
  12. public class UserModifyServlet extends HttpServlet{
  13. private static final long serialVersionUID = 1L;
  14. @Override
  15. protected void service(HttpServletRequest request, HttpServletResponse response)
  16. throws ServletException, IOException {
  17. //获得客户端传过来的数据
  18. String id = request.getParameter("id");
  19. System.out.println(id);
  20.  
  21. UserService userService = new UserService();
  22. User user = userService.getUserById(Integer.parseInt(id));
  23.  
  24. request.setAttribute("user", user);
  25.  
  26. this.getServletContext().getRequestDispatcher("/admin/user_update.jsp").forward(request, response);
  27.  
  28. }
  29.  
  30. }

  3.UserModifyServlet携带的Id,获取该用户的属性,并跳转到update界面,依然是在Eclips工具中写一个user_update.jsp:

  1. <%@page import="com.jaovo.jcms.util.PageList"%>
  2. <%@ page language="java" contentType="text/html; charset=utf-8"
  3. pageEncoding="utf-8"%>
  4. <%@ page import="com.jaovo.jcms.user.*"%>
  5. <%@ page import="java.util.*"%>
  6. <%@ page import="com.jaovo.jcms.util.*"%>
  7.  
  8. <%
  9. String path = request.getContextPath();
  10. String basePath = request.getScheme() + "://"
  11. + request.getServerName() + ":" + request.getServerPort()
  12. + path + "/";
  13. %>
  14.  
  15. <html>
  16. <head>
  17. <base href="<%=basePath%>" />
  18. <title>用户修改</title>
  19. <link rel="stylesheet" type="text/css" title="xp"
  20. href="css/skins/xp/validator/component.css" />
  21. <link rel="stylesheet" type="text/css" title="xp"
  22. href="css/skins/xp/navbar/nav.css" />
  23. <link rel="stylesheet" type="text/css" title="xp"
  24. href="css/skins/xp/table/skin.css" />
  25. <link rel="stylesheet" type="text/css" title="xp"
  26. href="css/skins/xp/time/skin.css" />
  27. <script type="text/javascript" src="jscript/time/calendar.js"></script>
  28. <script type="text/javascript" src="jscript/time/calendar-zh.js"></script>
  29. <script type="text/javascript" src="jscript/time/calendar-setup.js"></script>
  30. <script type="text/javascript" src="jscript/common.js"></script>
  31. <script type="text/javascript"
  32. src="jscript/validator/form_validator.js" /></script>
  33.  
  34. <script type="text/javascript">
  35. var validatedInfo = "correct";
  36. var requireErrorInfo = "required<br/>";
  37. var msgInfo = new Array();
  38.  
  39. msgInfo[] = new Array('name required','name error');
  40. var name = new formEle(true,"no",null,"name_info",msgInfo[]);
  41.  
  42. msgInfo[] = new Array('pwd required','pwd error');
  43. var password = new formEle(true,"no",null,"password_info",msgInfo[]);
  44.  
  45. msgInfo[] = new Array('description required','description error');
  46. var description = new formEle(true,"no",null,"description_info",msgInfo[]);
  47.  
  48. msgInfo[] = new Array('role required','role error');
  49. var role = new formEle(true,"no",null,"role_info",msgInfo[]);
  50.  
  51. msgInfo[] = new Array('valid required','please input number like 1 ,2 ,3');
  52. var valid = new formEle(true,"num",null,"valid_info",msgInfo[]);
  53.  
  54. msgInfo[] = new Array('email required','email error');
  55. var email = new formEle(true,"no",null,"email_info",msgInfo[]);
  56.  
  57. function submitForm(obj) {
  58.  
  59. var ret = validateAll(obj);
  60. if (ret == true) {
  61. if (document.forms[].submit) {
  62. document.forms[].submit.disabled = true;
  63. }
  64. }
  65. return ret;
  66. }
  67. </script>
  68. <style type="text/css">
  69. body,table,td,select,textarea,input {
  70. font-family: Verdana, Arial, Helvetica, sans-serif;
  71. font-size: 11px;
  72. }
  73. </style>
  74. </head>
  75. <%
  76. User user = (User)request.getAttribute("user");
  77. %>
  78. <body>
  79. <div id="main">
  80.  
  81. <form name="backuserform" method="post"
  82. action="admin/UserModifiedServlet"
  83. onSubmit=''>
  84. <table class="standard">
  85. <thead>
  86. <tr>
  87. <th align="center" colspan="">
  88. 用户修改
  89. </th>
  90. </tr>
  91. </thead>
  92. <tbody>
  93. <tr>
  94. <td align="left">
  95. 用户名
  96. </td>
  97. <td align="left">
  98. <input name="name" type="text" TABINDEX="" id="name" value="<%=user.getName() %>"/>
  99. <input name="id" type="hidden" TABINDEX="" value="<%=user.getId() %>" />
  100. <div class="Info">
  101. <div id="name_info"></div>
  102. </div>
  103. </td>
  104. </tr>
  105. <tr>
  106. <td align="left">
  107. 用户密码
  108. </td>
  109. <td align="left">
  110. <input name="password" type="password" value="" TABINDEX=""
  111. id="password" value="<%=user.getPassword()%>"/>
  112. <div class="Info">
  113. <div id="password_info"></div>
  114. </div>
  115. </td>
  116. </tr>
  117.  
  118. <tr>
  119. <td align="left">
  120. 角色
  121. </td>
  122. <td align="left">
  123. <select name="role" TABINDEX="" id="role">
  124. <option value="">
  125. 超级管理员
  126. </option>
  127. </select>
  128.  
  129. <div class="Info">
  130. <div id="role_info"></div>
  131. </div>
  132. </td>
  133. </tr>
  134.  
  135. <tr>
  136. <td align="left">
  137. 是否有效
  138. </td>
  139. <td align="left">
  140. <select name="valid" TABINDEX="" id="valid">
  141. <option value=""></option>
  142. <option value=""></option>
  143. </select>
  144. <div class="Info">
  145. <div id="valid_info"></div>
  146. </div>
  147. </td>
  148. </tr>
  149. <tr>
  150. <td align="left">
  151. EMAIL
  152. </td>
  153. <td align="left">
  154. <input name="email" type="text" value="<%=user.getEmail() %> " TABINDEX="" id="email" />
  155. <div class="Info">
  156. <div id="email_info"></div>
  157. </div>
  158. </td>
  159. </tr>
  160.  
  161. <tr>
  162. <td align="left">Phone</td>
  163. <td align="left"><input name="phone" type="text" value="<%=user.getPhone() %>"
  164. TABINDEX="" id="phone" />
  165. <div class="Info">
  166. <div id="phone_info"></div>
  167. </div></td>
  168. </tr>
  169.  
  170. <tr>
  171. <td colspan="" align="center">
  172. <input class="submitButton" type="submit" TABINDEX=""
  173. name="submit" value="修&nbsp;改">
  174. <input type="button" name="返回" class="submitButton" value="返回"
  175. onclick="history.back();">
  176. </td>
  177. </tr>
  178.  
  179. </tbody>
  180. <tfoot>
  181. <tr>
  182. <td colspan="" style="text-align: left"></td>
  183.  
  184. </tr>
  185. </tfoot>
  186. </table>
  187. </form>
  188. </div>
  189. </body>
  190. </html>

  4.需要一个ModifiedServlet.java

  1. package com.jaovo.jcms.user;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9.  
  10. import com.jaovo.jcms.service.UserService;
  11.  
  12. public class UserModifiedServlet extends HttpServlet{
  13. private static final long serialVersionUID = 1L;//这里以前没有
  14. @Override
  15. protected void service(HttpServletRequest request, HttpServletResponse response)
  16. throws ServletException, IOException {
  17. request.setCharacterEncoding("utf-8");
  18. response.setCharacterEncoding("utf-8");
  19.  
  20. String id = request.getParameter("id");
  21. String name = request.getParameter("name");
  22. String password = request.getParameter("password");
  23. String valid = request.getParameter("valid");
  24. String email = request.getParameter("email");
  25. String phone = request.getParameter("phone");
  26.  
  27. User user = new User();
  28.  
  29. user.setId(Integer.parseInt(id));
  30. user.setName(name);
  31. user.setPassword(password);
  32. user.setValid(Integer.parseInt(valid));
  33. user.setEmail(email);
  34. user.setPhone(phone);
  35.  
  36. UserService userService = new UserService();
  37. userService.updateUser(user);
  38.  
  39. this.getServletContext().getRequestDispatcher("/admin/UserListServlet").forward(request, response);
  40. //从一个Servlet到另外一个Servlet是同一个request对象
  41. }
  42. }

  5.跳转到UserListServlet,同时携带ModifiedServletrequestresponse对象,最后在list界面中显示出修改后的用户信息。

以上就是这次优化的所有代码,后面还会持续优化,望大家斧正。

2015-10-09   09:06:38

  • 生命不息,代码不止!

Web前端开发:SQL Jsp小项目(二)------添加修改的更多相关文章

  1. Web前端开发中的小错误

    Web前端开发中的小错误 错误1:表单的label标签跟表单字段没有关联 利用“for”属性允许用户单击label也可以选中表单中的内容.这可以扩大复选框和单选框的点击区域,非常实用. 错误2:log ...

  2. Web前端开发:SQL Jsp小项目(一)

    Jsp的学习算是告一段落,针对这段时间的学习,写了一个Jsp小项目来巩固学到的知识. 框架示意图 User list process UserAdd process 需要的界面效果: 需要工具:Ecl ...

  3. 腾讯WEB前端开发面试经历,一面二面HR面,面面不到!

    [一面]~=110分钟  2014/09/24 11:20  星期三 进门静坐30分钟做题. 填空题+大题+问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理        延 ...

  4. 大三小学期 web前端开发的一些小经验

    1.html是页面的布局设计,就是页面上要放哪些东西,比如登录界面需要按钮,输入框等等:css是被用于使用设计部件和布局,例如哪些部件放在哪里,多宽多大,是否有边框等:js/jQuery是用于实现函数 ...

  5. 编写高质量代码:Web前端开发修炼之道(二)

    第四章:高质量的css 1)怪异模式和标准模式 在标准模式中,浏览器根据规范表现页面:而怪异模式通常模拟老式浏览器的行为以防止老站点无法工作. 他们两者之间的差异比较典型的表现在IE对盒模型的解析:在 ...

  6. Web 前端开发人员和设计师必读精华文章【系列二十六】

    <Web 前端开发精华文章推荐>2014年第5期(总第26期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  7. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  8. Web 前端开发人员和设计师必读文章推荐【系列二十八】

    <Web 前端开发精华文章推荐>2014年第7期(总第28期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  9. Web 前端开发精华文章集锦(jQuery、HTML5、CSS3)【系列二十】

    <Web 前端开发精华文章推荐>2013年第八期(总第二十期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 C ...

随机推荐

  1. 高性能mysql主主架构

    A.环境描述 服务器A(主) 192.168.0.105 服务器B(主) 192.168.0.108 Mysql版本: 5.6.21 System OS:CentOS release 6.5 主从需同 ...

  2. hdoj 2682 Tree

    Tree Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. hdoj 2544 最短路【dijkstra or spfa】

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  4. iOS block并发

    多核运算 在iOS中concurrency编程的框架就是GCD(Grand Central Dispatch), GCD的使用非常简单.它把任务分派到不同的queue队列来处理.开发者把任务代码装到一 ...

  5. 转载 基于Selenium WebDriver的Web应用自动化测试

    转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...

  6. LVS+DR源码安装

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. Design Pattern Explained 读书笔记二——设计模式序言

    设计模式的由来: 20 世纪 90 年代初,一些聪明的开发者偶然接触到 Alexander(Christopher Alexander 的建筑师) 有关模式的工作.他们非常想知道,在建筑学成立的理论, ...

  8. 采用Reflector的VS.net插件断点调试无源码DLL 分类:

    .Net的编程利器Reflector可以反编译基于.net开发的应用程序和DLL,其功能强大不用多说.今天想试验一把利用VS.net的插件断点调试外部无源码的DLL(只要是程序集都可以,所以exe也行 ...

  9. VK Cup 2015 - Finals, online mirror D. Restructuring Company 并查集

    D. Restructuring Company Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  10. U-BOOT 移植到友善之臂mini2440

    U-BOOT 移植到友善之臂mini2440 开发环境:ubuntu 10.10 编译器:友善之臂mini2440光盘自带arm-linux-gcc 4.4.3 一. 在denx官网下载源码,我所用版 ...