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

  User update框架

需要的效果图:

先看用户查询界面,

修改id为4的那个用户:

  

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

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

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

package com.jaovo.jcms.user;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.jaovo.jcms.service.UserService; public class UserModifyServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获得客户端传过来的数据
String id = request.getParameter("id");
System.out.println(id); UserService userService = new UserService();
User user = userService.getUserById(Integer.parseInt(id)); request.setAttribute("user", user); this.getServletContext().getRequestDispatcher("/admin/user_update.jsp").forward(request, response); } }

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

<%@page import="com.jaovo.jcms.util.PageList"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="com.jaovo.jcms.user.*"%>
<%@ page import="java.util.*"%>
<%@ page import="com.jaovo.jcms.util.*"%> <%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%> <html>
<head>
<base href="<%=basePath%>" />
<title>用户修改</title>
<link rel="stylesheet" type="text/css" title="xp"
href="css/skins/xp/validator/component.css" />
<link rel="stylesheet" type="text/css" title="xp"
href="css/skins/xp/navbar/nav.css" />
<link rel="stylesheet" type="text/css" title="xp"
href="css/skins/xp/table/skin.css" />
<link rel="stylesheet" type="text/css" title="xp"
href="css/skins/xp/time/skin.css" />
<script type="text/javascript" src="jscript/time/calendar.js"></script>
<script type="text/javascript" src="jscript/time/calendar-zh.js"></script>
<script type="text/javascript" src="jscript/time/calendar-setup.js"></script>
<script type="text/javascript" src="jscript/common.js"></script>
<script type="text/javascript"
src="jscript/validator/form_validator.js" /></script> <script type="text/javascript">
var validatedInfo = "correct";
var requireErrorInfo = "required<br/>";
var msgInfo = new Array(); msgInfo[] = new Array('name required','name error');
var name = new formEle(true,"no",null,"name_info",msgInfo[]); msgInfo[] = new Array('pwd required','pwd error');
var password = new formEle(true,"no",null,"password_info",msgInfo[]); msgInfo[] = new Array('description required','description error');
var description = new formEle(true,"no",null,"description_info",msgInfo[]); msgInfo[] = new Array('role required','role error');
var role = new formEle(true,"no",null,"role_info",msgInfo[]); msgInfo[] = new Array('valid required','please input number like 1 ,2 ,3');
var valid = new formEle(true,"num",null,"valid_info",msgInfo[]); msgInfo[] = new Array('email required','email error');
var email = new formEle(true,"no",null,"email_info",msgInfo[]); function submitForm(obj) { var ret = validateAll(obj);
if (ret == true) {
if (document.forms[].submit) {
document.forms[].submit.disabled = true;
}
}
return ret;
}
</script>
<style type="text/css">
body,table,td,select,textarea,input {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
}
</style>
</head>
<%
User user = (User)request.getAttribute("user");
%>
<body>
<div id="main"> <form name="backuserform" method="post"
action="admin/UserModifiedServlet"
onSubmit=''>
<table class="standard">
<thead>
<tr>
<th align="center" colspan="">
用户修改
</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">
用户名
</td>
<td align="left">
<input name="name" type="text" TABINDEX="" id="name" value="<%=user.getName() %>"/>
<input name="id" type="hidden" TABINDEX="" value="<%=user.getId() %>" />
<div class="Info">
<div id="name_info"></div>
</div>
</td>
</tr>
<tr>
<td align="left">
用户密码
</td>
<td align="left">
<input name="password" type="password" value="" TABINDEX=""
id="password" value="<%=user.getPassword()%>"/>
<div class="Info">
<div id="password_info"></div>
</div>
</td>
</tr> <tr>
<td align="left">
角色
</td>
<td align="left">
<select name="role" TABINDEX="" id="role">
<option value="">
超级管理员
</option>
</select> <div class="Info">
<div id="role_info"></div>
</div>
</td>
</tr> <tr>
<td align="left">
是否有效
</td>
<td align="left">
<select name="valid" TABINDEX="" id="valid">
<option value="">有</option>
<option value="">无</option>
</select>
<div class="Info">
<div id="valid_info"></div>
</div>
</td>
</tr>
<tr>
<td align="left">
EMAIL
</td>
<td align="left">
<input name="email" type="text" value="<%=user.getEmail() %> " TABINDEX="" id="email" />
<div class="Info">
<div id="email_info"></div>
</div>
</td>
</tr> <tr>
<td align="left">Phone</td>
<td align="left"><input name="phone" type="text" value="<%=user.getPhone() %>"
TABINDEX="" id="phone" />
<div class="Info">
<div id="phone_info"></div>
</div></td>
</tr> <tr>
<td colspan="" align="center">
<input class="submitButton" type="submit" TABINDEX=""
name="submit" value="修&nbsp;改">
<input type="button" name="返回" class="submitButton" value="返回"
onclick="history.back();">
</td>
</tr> </tbody>
<tfoot>
<tr>
<td colspan="" style="text-align: left"></td> </tr>
</tfoot>
</table>
</form>
</div>
</body>
</html>

  4.需要一个ModifiedServlet.java

package com.jaovo.jcms.user;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.jaovo.jcms.service.UserService; public class UserModifiedServlet extends HttpServlet{
private static final long serialVersionUID = 1L;//这里以前没有
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); String id = request.getParameter("id");
String name = request.getParameter("name");
String password = request.getParameter("password");
String valid = request.getParameter("valid");
String email = request.getParameter("email");
String phone = request.getParameter("phone"); User user = new User(); user.setId(Integer.parseInt(id));
user.setName(name);
user.setPassword(password);
user.setValid(Integer.parseInt(valid));
user.setEmail(email);
user.setPhone(phone); UserService userService = new UserService();
userService.updateUser(user); this.getServletContext().getRequestDispatcher("/admin/UserListServlet").forward(request, response);
//从一个Servlet到另外一个Servlet是同一个request对象
}
}

  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. Codeforces Wilbur and Array

    Description Wilbur the pig is tinkering with arrays again. He has the array a1, a2, ..., an initiall ...

  2. jquery timepicker

    <div class="form-group row"> <div class="col-lg-2 control-label l-pd25" ...

  3. 【Away3D代码解读】(一):主要类及说明

    在深入解读Away3D的代码之前,需要对其有个大概的认识.本节主要列出Away3D中常用的类,并附上说明: View3D: Away3D的入口类,即创建该类就会初始化一个可以使用GPU呈现3D的对象, ...

  4. jQuery插件- Autocomplete应用详解

    项目中有时会用到自动补全查询,就像Google搜索框.淘宝商品搜索功能,输入汉字或字母,则以该汉字或字母开头的相关条目会显示出来供用户选择, autocomplete插件就是完成这样的功能. auto ...

  5. 山东理工大学ACM平台题答案关于C语言 1543 Egypt

    Egypt Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述   A long time ago, the Egyptians fi ...

  6. 理解shared_ptr<T>

    1.shared_ptr<T>解决什么问题? auto_ptr有个局限,拥有权转移.这往往不符合我们的需求,有时候我们期望,多个资源管理对象可以共享一个资源,当引用计数为0的时候,执行de ...

  7. C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部【转载】

    这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开发的一样(实际上……跟自己开发的还是有一点点区别的,就是内嵌程序和宿主程序的窗口激活状态问题) ...

  8. git克隆远程项目分支到本地对应分支

    最近公司改用git了,研究了一下如何把远程的代码克隆到本地. 1. 配置对应信息 git config --global user.name git config --global user.emai ...

  9. cocos 3.0 一键打包android平台应该注意的细节

    cocos2d-x 移植越来越便捷,走到cocos2d-x-3.0rc2,能够说移植已经非常完好了,我们仅仅要进行适当的适配,cocos能够直接帮助我们生成apk 我网络不好无法上传图片:(无图无捷豹 ...

  10. 百度之星资格赛,hdu 4825 XOR SUM

    显然是要建一棵0.1树 事实上非常easy就是二叉树,仅仅只是为了操作简便,即程序的速度,所以就採用静态树,即不动态分配内存,使用较大的全局数组.0是根节点 #include<cstdio> ...