Web应用——驾培管理系统之个人管理(作者:小圣)

本节博文旨在实现本次Web应用的个人管理功能。能够在登陆后 查看并改动个人信息或者进行password改动。同一时候,在输入的时候进行表单验证,验证输入的格式。

笔者会把大概实现过程贴出来,有看不懂过程且须要项目源代码的请戳:http://download.csdn.net/detail/xie_xiansheng/9486872。须要数据库表格的请留言。有些小细节没完好,有些代码冗余。初学请见谅。

效果图例如以下:

接下来,上代码:

org.great.servlet包下的PersonalServlet类:

public class PersonalServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
/**依据LoginServlet的session拿到登录用户*/
HttpSession session = req.getSession();
UserBean userBean = (UserBean)session.getAttribute("Logindo");
//获取jsp页面传过来的task。推断要进行什么操作
String task = req.getParameter("task");
String lname = userBean.getUser_lname();
UserDao userDao = DaoFactory.getUserDao();
//点击导航栏获取的task->checkinfo.jsp
if("checkinfo".equals(task)){
userBean = userDao.findUser_ByLname(lname);
req.setAttribute("userBean", userBean);
req.getRequestDispatcher("jsp/personal/checkinfo.jsp").forward(req, resp);
//checkinfo.jsp->个人管理下的信息改动
}else if("alerinfo".equals(task)){
userBean = userDao.findUser_ByLname(lname);
req.setAttribute("userBean", userBean);
req.getRequestDispatcher("jsp/personal/alertperson.jsp").forward(req, resp);
//alertperson-> 改动个人信息点击提交
}else if("alertinfoend".equals(task)){
String username = req.getParameter("username");
String usex = req.getParameter("usex");
String tel = req.getParameter("tel");
int alertinfoid = Integer.parseInt(req.getParameter("userid"));
//改动个人管理信息
String msg = userDao.alertInfo_ById(alertinfoid, username, usex, tel); userBean = userDao.findUser_ById(alertinfoid);
req.setAttribute("userBean", userBean);
req.setAttribute("msg", msg);
req.getRequestDispatcher("jsp/personal/alertperson.jsp").forward(req, resp);
}else if("alertpwd".equals(task)){
//点击导航栏获取的task->alertpwd.jsp
userBean = userDao.findUser_ByLname(lname);
req.setAttribute("userBean", userBean);
req.getRequestDispatcher("jsp/personal/alertpwd.jsp").forward(req, resp);
//改动password点击提交
}else if("alertpwdend".equals(task)){
String oldPwd = req.getParameter("oldpwd");
String newPwd = req.getParameter("newpwd");
String newPwd2 = req.getParameter("newpwd2"); int alertpwdid = Integer.parseInt(req.getParameter("userid"));
userBean = userDao.findUser_ById(alertpwdid);
if(oldPwd.equals(userBean.getUser_pwd())){
if(newPwd.equals(newPwd2)){
//改动新password
String msg = userDao.alertPwd_ById(alertpwdid, newPwd);
req.setAttribute("msg", msg);
}else{
req.setAttribute("msg", "password确认失败,请又一次输入。");
}
}else{
req.setAttribute("msg", "原password错误,请又一次输入!");
}
req.setAttribute("userBean", userBean);
req.getRequestDispatcher("jsp/personal/alertpwd.jsp").forward(req, resp);
}
}
}

UserDao的实现类中org.great.daoimpl包下UserDaoImpl的方法:

public UserBean findUser_ByLname(String lname) { //依据username查找用户信息

		Connection conn = DBUtils.getConn();
UserBean userBean = null;
String sql = "select user_id,role_id,user_lname,user_pwd,user_name,user_sex,user_status," +
"createtime,driving_id,tel from t_user where user_lname = ? and user_status!='D'" ;
try {
pre = conn.prepareStatement(sql);
pre.setString(1, lname);
rs = pre.executeQuery(); if(rs.next()){
userBean = new UserBean();
userBean.setUser_id(rs.getInt(1));
userBean.setRole_id(rs.getInt(2));
userBean.setUser_lname(rs.getString(3));
userBean.setUser_pwd(rs.getString(4));
userBean.setUser_name(rs.getString(5));
userBean.setUser_sex(rs.getString(6));
userBean.setUser_status(rs.getString(7));
userBean.setCreatetime(rs.getString(8));
userBean.setDriving_id(rs.getInt(9));
userBean.setTel(rs.getString(10));
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBUtils.close(conn, pre, rs);
}
return userBean; }
public String alertInfo_ById(int userID, String username, String usersex,
String tel) { //依据用户填写的信息改动用户数据表
Connection conn = DBUtils.getConn();
String msg = "";
String sql = "update t_user set user_name = ?,user_sex = ?,tel = ? where user_id = ? " ;
try {
pre = conn.prepareStatement(sql);
pre.setString(1, username);
pre.setString(2, usersex);
pre.setString(3, tel);
pre.setInt(4, userID);
rs = pre.executeQuery(); if(rs.next()){
msg = "改动完毕。";
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBUtils.close(conn, pre, rs);
}
return msg;
}
public UserBean findUser_ById(int userID) { //依据用户ID查找用户信息

		Connection conn = DBUtils.getConn();
UserBean userBean = null;
String sql = "select u.user_id,u.role_id,u.user_lname,u.user_pwd,u.user_name,u.user_sex,u.user_status,"+
"u.createtime,u.tel,d.driving_name from t_user u,t_drivingschool d where "+
"u.driving_id = d.driving_id and user_id = ? and user_status!='D'" ;
try {
pre = conn.prepareStatement(sql);
pre.setInt(1, userID);
rs = pre.executeQuery(); if(rs.next()){
userBean = new UserBean();
userBean.setUser_id(rs.getInt(1));
userBean.setRole_id(rs.getInt(2));
userBean.setUser_lname(rs.getString(3));
userBean.setUser_pwd(rs.getString(4));
userBean.setUser_name(rs.getString(5));
userBean.setUser_sex(rs.getString(6));
userBean.setUser_status(rs.getString(7));
userBean.setCreatetime(rs.getString(8));
userBean.setTel(rs.getString(9));
userBean.setDriving_name(rs.getString(10));
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBUtils.close(conn, pre, rs);
}
return userBean;
}
public String alertPwd_ById(int userID,String newPwd) {  //依据用户ID改动新password
Connection conn = DBUtils.getConn();
String msg = "";
String sql = "update t_user set user_pwd = ? where user_id = ?" ;
try {
pre = conn.prepareStatement(sql);
pre.setString(1, newPwd);
pre.setInt(2, userID);
rs = pre.executeQuery(); if(rs.next()){
msg = "改动完毕。";
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBUtils.close(conn, pre, rs);
}
return msg;
}

左側导航栏点击信息查看跳转的地址——jsp/personal/checkinfo.jsp

<%@ page language="java" import="java.util.*,org.great.bean.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'usermanager.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link rel="stylesheet" type="text/css" href="<%=basePath%>/background/Style/skin.css" />
</head>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<!-- 头部開始 -->
<tr>
<td width="17" valign="top" background="<%=basePath%>/background/Images/mail_left_bg.gif">
<img src="<%=basePath%>/background/Images/left_top_right.gif" width="17" height="29" />
</td>
<td valign="top" background="<%=basePath%>/background/Images/content_bg.gif">
<table width="100%" height="31" border="0" cellpadding="0" cellspacing="0" background="<%=basePath%>/background/<%=basePath%>/background/Images/content_bg.gif">
<tr><td height="31"><div class="title" style="color: red">信息查看</div></td></tr>
</table>
</td>
<td width="16" valign="top" background="<%=basePath%>/background/Images/mail_right_bg.gif"><img src="<%=basePath%>/background/Images/nav_right_bg.gif" width="16" height="29" /></td>
</tr>
<!-- 中间部分開始 -->
<tr>
<!--第一行左边框-->
<td valign="middle" background="<%=basePath%>/background/Images/mail_left_bg.gif"> </td>
<!--第一行中间内容-->
<td valign="top" bgcolor="#F7F8F9">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<!-- 空白行-->
<tr><td colspan="2" valign="top"> </td><td> </td><td valign="top"> </td></tr>
<tr>
<td colspan="4">
<table>
<tr>
<td width="100" align="center"><img src="<%=basePath%>/background/Images/mime.gif" /></td>
<td valign="bottom"><h3 style="letter-spacing:1px;color: blue">在这里,您能够查看您的个人信息</h3></td>
</tr>
</table>
</td>
</tr>
<!-- 一条线 -->
<tr>
<td height="40" colspan="4">
<table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr><td></td></tr>
</table>
</td>
</tr>
<!-- 产品列表開始 -->
<%UserBean userBean = (UserBean)request.getAttribute("userBean"); %>
<tr>
<td width="2%"> </td>
<td width="96%">
<table width="100%">
<tr>
<td colspan="2">
<form action="" method="post">
<table width="100%" class="cont tr_color">
<tr>
<th>ID</th>
<th>账户</th>
<th>username</th>
<th>性别</th>
<th>电话号码</th>
<th>注冊时间</th>
<th>操作</th>
</tr> <tr align="center" class="d">
<td><%=userBean.getUser_id()%></td>
<td><%=userBean.getUser_lname() %></td>
<td><%=userBean.getUser_name() %></td>
<td><%=userBean.getUser_sex().equals("M")?"男":"女" %></td>
<td><%=userBean.getTel() %></td>
<td><%=userBean.getCreatetime() %></td>
<td>
<a href="personal.do? task=alerinfo&lname=<%=userBean.getUser_lname() %>"style="color: blue">改动 </a>
</td>
</tr> </table>
</form>
</td>
</tr>
</table>
</td>
<td width="2%"> </td>
</tr>
<!-- 产品列表结束 -->
<tr>
<td height="40" colspan="4">
<table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr><td></td></tr>
</table>
</td>
</tr>
<tr>
<td width="2%"> </td>
<td width="51%" class="left_txt">
<img src="<%=basePath%>/background/Images/icon_mail.gif" width="16" height="11"> 客户服务邮箱:870873201@qq.com<br />
<img src="<%=basePath%>/background/Images/icon_phone.gif" width="17" height="14"> 官方站点:<a href="http://my.csdn.net/xie_xiansheng" target="_blank">作者博客</a>
</td>
<td> </td><td> </td>
</tr>
</table>
</td>
<td background="<%=basePath%>/background/Images/mail_right_bg.gif"> </td>
</tr>
<!-- 底部部分 -->
<tr>
<td valign="bottom" background="<%=basePath%>/background/Images/mail_left_bg.gif">
<img src="<%=basePath%>/background/Images/buttom_left.gif" width="17" height="17" />
</td>
<td background="<%=basePath%>/background/Images/buttom_bgs.gif">
<img src="<%=basePath%>/background/Images/buttom_bgs.gif" width="17" height="17">
</td>
<td valign="bottom" background="<%=basePath%>/background/Images/mail_right_bg.gif">
<img src="<%=basePath%>/background/Images/buttom_right.gif" width="16" height="17" />
</td>
</tr>
</table>
</body>
</html>

页面点击改动跳转的地址——jsp/personal/alertperson.jsp

<%@ page language="java" import="java.util.*,org.great.bean.*" pageEncoding="utf-8"%>
<%@page import="org.great.bean.UserBean"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'alertuser.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link rel="stylesheet" type="text/css" href="<%=basePath%>/background/Style/skin.css" />
<script type="text/javascript" src="<%=basePath%>/jquery-2.1.4/jquery1.9.0.min.js"></script>
<script type="text/javascript" src="<%=basePath%>/easyvalidator2/js/validate.pack.js">
</script>
<link href="<%=basePath%>/easyvalidator2/css/validate.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<!-- 头部開始 -->
<tr>
<td width="17" valign="top" background="<%=basePath%>/background/Images/mail_left_bg.gif">
<img src="<%=basePath%>/background/Images/left_top_right.gif" width="17" height="29" />
</td>
<td valign="top" background="<%=basePath%>/background/Images/content_bg.gif">
<table width="100%" height="31" border="0" cellpadding="0" cellspacing="0" background="<%=basePath%>/background/<%=basePath%>/background/Images/content_bg.gif">
<tr><td height="31"><div class="title" style="color: red">信息改动</div></td></tr>
</table>
</td>
<td width="16" valign="top" background="<%=basePath%>/background/Images/mail_right_bg.gif"><img src="<%=basePath%>/background/Images/nav_right_bg.gif" width="16" height="29" /></td>
</tr>
<!-- 中间部分開始 -->
<tr>
<!--第一行左边框-->
<td valign="middle" background="<%=basePath%>/background/Images/mail_left_bg.gif"> </td>
<!--第一行中间内容-->
<td valign="top" bgcolor="#F7F8F9">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<!-- 空白行-->
<tr><td colspan="2" valign="top"> </td><td> </td><td valign="top"> </td></tr>
<tr>
<td colspan="4">
<table>
<tr>
<td width="100" align="center"><img src="<%=basePath%>/background/Images/mime.gif" /></td>
<td valign="bottom"><h3 style="letter-spacing:1px;color: blue">在这里,您能够改动您的个人信息</h3></td>
</tr>
</table>
</td>
</tr>
<!-- 一条线 -->
<tr>
<td height="40" colspan="4">
<table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr><td></td></tr>
</table>
</td>
</tr>
<!-- 加入栏目開始 -->
<%UserBean userBean = (UserBean)request.getAttribute("userBean"); %>
<tr>
<td width="2%"> </td>
<td width="96%">
<table width="100%">
<tr>
<td colspan="2">
<form action="personal.do?task=alertinfoend" method="post">
<table width="50%" class="cont" >
<tr>
<td width="2%"> </td>
<td>用户名:</td>
<td width="80%"><input class="text" type="text" name="username" value="<%=userBean.getUser_name() %>"
reg="^[\u4e00-\u9fa5]{1,6}$"/> <span name="easyTip">(仅仅同意1-6个中文字符)</span>
<input type="hidden" name="userid" value="<%=userBean.getUser_id()%>" />
</td>
<td width="2%"> </td>
</tr>
<tr>
<td width="2%"> </td>
<td>性别:</td>
<td width="20%">
<select id="usex" name="usex">
<option value="M">男</option>
<option value="W">女</option>
</select>
</td>
<td width="2%"> </td>
</tr>
<tr>
<td width="2%"> </td>
<td>电话号码:</td>
<td width="20%">
<input class="text" type="text" name="tel" value="<%=userBean.getTel()%>"
reg="^1\d{10}$" /><span name="easyTip">(11位以1开头手机号码格式)</span>
</td>
<td width="2%"> </td>
</tr> <tr>
<td> </td>
<td colspan="5" align="center"><input class="btn" type="submit" value="提交" /></td>
<td> </td> </tr>
</table>
</form>
</td>
</tr>
</table>
</td>
<td width="2%"> </td>
</tr>
<!-- 加入栏目结束 -->
<tr>
<td height="40" colspan="4">
<table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr><td></td></tr>
</table>
</td>
</tr>
<tr>
<td width="2%"> </td>
<td width="51%" class="left_txt">
<img src="<%=basePath%>/background/Images/icon_mail.gif" width="16" height="11"> 客户服务邮箱:870873201@qq.com<br />
<img src="<%=basePath%>/background/Images/icon_phone.gif" width="17" height="14"> 官方站点:<a href="http://my.csdn.net/xie_xiansheng" target="_blank">作者博客</a>
</td>
<td> </td><td> </td>
</tr>
</table>
</td>
<td background="<%=basePath%>/background/Images/mail_right_bg.gif"> </td>
</tr>
<!-- 底部部分 -->
<tr>
<td valign="bottom" background="<%=basePath%>/background/Images/mail_left_bg.gif">
<img src="<%=basePath%>/background/Images/buttom_left.gif" width="17" height="17" />
</td>
<td background="<%=basePath%>/background/Images/buttom_bgs.gif">
<img src="<%=basePath%>/background/Images/buttom_bgs.gif" width="17" height="17">
</td>
<td valign="bottom" background="<%=basePath%>/background/Images/mail_right_bg.gif">
<img src="<%=basePath%>/background/Images/buttom_right.gif" width="16" height="17" />
</td>
</tr>
</table>
</body> <script type="text/javascript">
$("#usex").val("<%=userBean.getUser_sex()%>"); var msg = "<%=request.getAttribute("msg")%>";
if("null"!=msg){
alert(msg);
}
</script>
</html>

左側导航栏点击password改动跳转的地址——jsp/personal/alertpwd.jsp

<%@ page language="java" import="java.util.*,org.great.bean.*" pageEncoding="utf-8"%>
<%@page import="org.great.bean.UserBean"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'alertuser.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link rel="stylesheet" type="text/css" href="<%=basePath%>/background/Style/skin.css" />
<script type="text/javascript" src="<%=basePath%>/jquery-2.1.4/jquery1.9.0.min.js"></script>
<script type="text/javascript" src="<%=basePath%>/easyvalidator2/js/validate.pack.js">
</script>
<link href="<%=basePath%>/easyvalidator2/css/validate.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<!-- 头部開始 -->
<tr>
<td width="17" valign="top" background="<%=basePath%>/background/Images/mail_left_bg.gif">
<img src="<%=basePath%>/background/Images/left_top_right.gif" width="17" height="29" />
</td>
<td valign="top" background="<%=basePath%>/background/Images/content_bg.gif">
<table width="100%" height="31" border="0" cellpadding="0" cellspacing="0" background="<%=basePath%>/background/<%=basePath%>/background/Images/content_bg.gif">
<tr><td height="31"><div class="title" style="color: red">password改动</div></td></tr>
</table>
</td>
<td width="16" valign="top" background="<%=basePath%>/background/Images/mail_right_bg.gif"><img src="<%=basePath%>/background/Images/nav_right_bg.gif" width="16" height="29" /></td>
</tr>
<!-- 中间部分開始 -->
<tr>
<!--第一行左边框-->
<td valign="middle" background="<%=basePath%>/background/Images/mail_left_bg.gif"> </td>
<!--第一行中间内容-->
<td valign="top" bgcolor="#F7F8F9">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<!-- 空白行-->
<tr><td colspan="2" valign="top"> </td><td> </td><td valign="top"> </td></tr>
<tr>
<td colspan="4">
<table>
<tr>
<td width="100" align="center"><img src="<%=basePath%>/background/Images/mime.gif" /></td>
<td valign="bottom"><h3 style="letter-spacing:1px; color: blue">在这里,您能够改动您的个人password</h3></td>
</tr>
</table>
</td>
</tr>
<!-- 一条线 -->
<tr>
<td height="40" colspan="4">
<table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr><td></td></tr>
</table>
</td>
</tr>
<!-- 加入栏目開始 -->
<%UserBean userBean = (UserBean)request.getAttribute("userBean"); %>
<tr>
<td width="2%"> </td>
<td width="96%">
<table width="100%">
<tr>
<td colspan="2">
<form action="personal.do?task=alertpwdend" method="post">
<table width="50%" class="cont" >
<tr>
<td width="4%"> </td>
<td width="20%">username:</td>
<td width="80%"><span><%=userBean.getUser_name() %></span>
<input type="hidden" name="userid" value="<%=userBean.getUser_id()%>" />
</td>
<td width="2%"> </td>
</tr>
<tr>
<td width="4%"> </td>
<td width="20%">原password:</td>
<td width="20%">
<input class="text" type="text" name="oldpwd" value="" />
</td>
<td width="2%"> </td>
</tr>
<tr>
<td width="4%"> </td>
<td width="20%">新password:</td>
<td width="20%">
<input class="text" type="password" name="newpwd" value="" reg="^[A-Za-z0-9 ]{1,16}$" />
<span name="easyTip" style="width: 220px;">(*仅仅同意英文或数字1-16位)</span>
</td>
<td width="2%"> </td>
</tr>
<tr>
<td width="4%"> </td>
<td width="20%">新password确认:</td>
<td width="20%">
<input class="text" type="password" name="newpwd2" value="" />
</td>
<td width="2%"> </td>
</tr> <tr>
<td> </td>
<td colspan="5" align="center"><input class="btn" type="submit" value="提交" /></td>
<td> </td> </tr>
</table>
</form>
</td>
</tr>
</table>
</td>
<td width="2%"> </td>
</tr>
<!-- 加入栏目结束 -->
<tr>
<td height="40" colspan="4">
<table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr><td></td></tr>
</table>
</td>
</tr>
<tr>
<td width="2%"> </td>
<td width="51%" class="left_txt">
<img src="<%=basePath%>/background/Images/icon_mail.gif" width="16" height="11"> 客户服务邮箱:870873201@qq.com<br />
<img src="<%=basePath%>/background/Images/icon_phone.gif" width="17" height="14"> 官方站点:<a href="http://my.csdn.net/xie_xiansheng" target="_blank">作者博客</a>
</td>
<td> </td><td> </td>
</tr>
</table>
</td>
<td background="<%=basePath%>/background/Images/mail_right_bg.gif"> </td>
</tr>
<!-- 底部部分 -->
<tr>
<td valign="bottom" background="<%=basePath%>/background/Images/mail_left_bg.gif">
<img src="<%=basePath%>/background/Images/buttom_left.gif" width="17" height="17" />
</td>
<td background="<%=basePath%>/background/Images/buttom_bgs.gif">
<img src="<%=basePath%>/background/Images/buttom_bgs.gif" width="17" height="17">
</td>
<td valign="bottom" background="<%=basePath%>/background/Images/mail_right_bg.gif">
<img src="<%=basePath%>/background/Images/buttom_right.gif" width="16" height="17" />
</td>
</tr>
</table>
</body> <script type="text/javascript"> var msg = "<%=request.getAttribute("msg")%>";
if("null"!=msg){
alert(msg);
}
</script>
</html>

Web应用——驾培管理系统之个人管理(作者:小圣)的更多相关文章

  1. web项目_学生证管理系统

    项目简述: 基于java web实现学生卡管理系统,用户包括学生和学生处,分别实现以下功能. 学生: 1.对本人登录密码的修改 2.申请补办学生卡 3.查看学生卡补办状态 学生处: 1.对学生信息的管 ...

  2. Web开发框架之权限管理系统

    Web开发框架之权限管理系统 记得我在很早之前,开始介绍我的Winform开发框架和我的WCF开发框架之初,我曾经给出下面的视图,介绍我整理的一个框架体系,其中包含有WInform开发框架以及我的We ...

  3. 使用webgl(three.js)搭建3D智慧园区、3D大屏,3D楼宇,智慧灯杆三维展示,3D灯杆,web版3D,bim管理系统——第六课

    前言: 今年是建国70周年,爱国热情异常的高涨,为自己身在如此安全.蓬勃发展的国家深感自豪. 我们公司楼下为庆祝国庆,拉了这样的标语,每个人做好一件事,就组成了我们强大的祖国. 看到这句话,深有感触, ...

  4. 02 【PMP】项目管理系统、PMIS、工作授权系统、配置管理系统、变更管理

    PMBOK融会贯通:盘点八大系统<项目管理系统.PMIS.工作授权系统.配置管理系统.变更管理>   一.  PMBOK相关系统: 工作系统作为事业环境因素,提高或限制项目管理的灵活性,并 ...

  5. java web 之客户关系管理系统

    这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...

  6. VM Depot 镜像新增系列II – 学习管理系统,内容管理系统以及平台管理工具

     发布于 2014-06-23 作者 刘 天栋 继上周企业管理软件和电子商务镜像的加盟之后,我们看到又有一批内容管理解决方案(CMS),学习管理解决方案(LMS)以及平台管理工具 (如 Open ...

  7. Django Web开发【4】 用户注册与管理

    几乎所有的网站都提供了用户注册与管理功能,这一节,我们将讲解如何利用Django自身提供的用户认证系统实现用户注册与管理功能. 会话认证 在上一节中,我们学习了User数据模型,并用它来保存用户信息, ...

  8. 我的第一个python web开发框架(23)——代码版本控制管理与接口文档

    书接上一回,小白和老菜聊到代码的版本控制和接口文档 小白:为什么要做版本控制,我不弄版本控制不也完成了项目了吗?要做版本控制不是很麻烦,又要安装服务又要提交代码,代码又不是多人用开发,还要写文档... ...

  9. Java Web项目 慧心人力资源管理系统

    题目:慧心人力资源管理系统 文档下载:https://download.csdn.net/download/weixin_44893902/16336711 完整项目下载:https://downlo ...

随机推荐

  1. Oracle 11g 安装环境配置脚本

    #!/bin/bash #Test in RHEL 5.5 for 11g c=`cat /etc/shadow | grep oracle | wc -l`if [ $c != 0 ]then  w ...

  2. 1.flume概述

    我们的web服务器等等每天会产生大量的日志,我们要把这些日志收集起来,移动到hadoop平台上进行分析. 那么如何移动这些数据呢?一种方法是通过shell cp到hadoop集群上,然后通过hdfs ...

  3. python--opencv模块

    1.图片的读取与展示 #!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat import cv2 # 接收两个参数,一个是文件名 ...

  4. 网络编程学习笔记--1.socket可读可写条件

    转至 :http://blog.csdn.net/majianfei1023/article/details/45788591 socket可读可写条件,经常做为面试题被问,因为它考察被面试者对网络编 ...

  5. DB2 v9.7官方下载链接

    http://blog.sina.com.cn/s/blog_8ea8e9d50102w2s6.html

  6. 【转载】一键安装maven脚本

    #!/bin/bashif [ -z "${MAVEN_HOME}" ]; then #得到时间 TIME_FLAG=`date +%Y%m%d_%H%M%S` #备份配置文件 c ...

  7. DNS无响应

    无语,运行某某大品牌的杀毒软件后,无法上网,window检查后是DNS服务器无响应. 开始>运行>输入"netsh winsock reset"  然后重启电脑. pi ...

  8. [Codeforces 26E] MultiThreading

    Brief Intro: 给你n个数,每个数有2*CNT[i]个,让你构造一个序列 使得最终的Y值为W(其余见题面) Solution: 就是一道纯构造的题目: 先把特殊情况特殊处理,接下来考虑一般情 ...

  9. []ARC098

    咕咕咕 C:普及组难度的题 D:给定$a_{1\cdots n}$,求有多少$1\leq l\leq r\leq n$满足$x_l+\cdots+x_r=x_l\text^\cdots\text^x_ ...

  10. 【动态规划】【最短路】【spfa】bzoj1207 [HNOI2004]打鼹鼠

    <法一>若打了一只鼹鼠后,还能打另一只,我们可以在它们之间连权值为1的边.于是答案就是 以m为终点的最长路长度+1.建反图,就是单源最长路. MLE TLE 一时爽. #include&l ...