Java项目:UMS 用户管理系统(一)

简介: Java项目:UMS 用户管理系统(一)

项目介绍&环境搭建


名称:UMS


UMS : User Manager System , 用户管理系统


整体需求


1)查询所有【阶段1】


2)添加【阶段1】


3)删除【阶段1】


4)查询详情【阶段1】


5)条件查询【阶段1】


6)修改【阶段2】


搭建环境


步骤1:创建web项目

步骤2:导入jar包,导入原型

把xml放置在了d:根目录


步骤3:创建package包及JavaBean

public class User {
private String id; //唯一标识
private String loginName; //登录名
private String loginPwd; //登录密码
private String userName; //用户名(昵称)
private String sex; //性别
private String education; //学历
private String birthday; //生日
private String telephone; //电话
private String[] interest; //兴趣爱好
private String remark; //备注
private String utype; //权限: 管理员/普通用户
}
  1. 步骤4:创建Dao,service,servlet
public class UserDao {
    //成员位置 指定xml路径
    public static final String PATH="D:/javaweb1_ums.xml";
}
public class UserService {
    //成员位置,初始化一个UserDao,防止每个方法都创建一次的麻烦
    //将来UserService进行创建,对应一个UserDao,而不是多个Service对应一个Dao。不加static
    private UserDao userDao = new UserDao();
}
@WebServlet({"/user"})
public class UserServlet extends BaseServlet {
    private UserService userService = new UserService();
}

步骤5:配置并启动tomcat

UMS:查询所有【阶段1】


1.1、需求说明


1.2、需求分析


分析:


关键点:


1、XmlUtils.readAll


2、request域对象进行数据保存


3、请求转发


4、java脚本  <% %>


流程图


代码实现

/login/left.jsp

<table width="100%" border="0">
   <tr>
      <td>
         <a href="<%=request.getContextPath() %>/login/welcome.jsp" target="mainFrame">员工管理</a> <br/>
         <a href="<%=pageContext.getServletContext().getContextPath()%>/user?method=list"  target="mainFrame">用户管理</a>
      </td>
   </tr>
</table>

UserServlet

/**
 * 查询所有用户信息
 * @return
 */
public String list(){
    //1、调用service,查询用户列表
    List<User> ulist =  userService.list();
    System.out.println(ulist);
    //2、查询结果存入request作用域
    getRequest().setAttribute("ulist",ulist);
    //3、请求转发到/user/list.jsp
    return "forward:/user/list.jsp";
}

UserService

/**
 * 查询所有用户信息
 * @return
 */
public List<User> list() {
    return userDao.searchAll();
}

UserDao

/**
 * 读取xml中所有的用户信息
 * @return
 */
public List<User> searchAll() {
    return XmlUtils.readAll(PATH,User.class);
}

/user/list.jsp

<tr
   style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; HEIGHT: 25px; BACKGROUND-COLOR: #afd1f3">
   <td align="center" width="18%">
      登录名
   </td>
   <td align="center" width="17%">
      用户姓名
   </td>
   <td align="center" width="8%">
      性别
   </td>
   <td align="center" width="23%">
      联系电话
   </td>
   <td width="11%" align="center">
      学历
   </td>
   <td width="7%" align="center">
      编辑
   </td>
   <td width="7%" align="center">
      查看
   </td>
   <td width="7%" align="center">
      删除
   </td>
</tr>
<%
   //1、尝试从request作用域获取ulist集合数据
   List<User> ulist = (List<User>) request.getAttribute("ulist");
   //2、若ulist不为null,进行遍历展示
   if(ulist!=null){
      //3、进行遍历展示即可
      for (User user : ulist) {
         %>
         <tr onmouseover="this.style.backgroundColor = 'white'"
            onmouseout="this.style.backgroundColor = '#F5FAFE';">
            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
               width="18%">
               <%=user.getLoginName()%>
            </td>
            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
               width="17%">
               <%=user.getUserName()%>
            </td>
            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
               width="8%">
               <%=user.getSex()%>
            </td>
            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
               width="23%">
               <%=user.getTelephone()%>
            </td>
            <td style="CURSOR: hand; HEIGHT: 22px" align="center">
               <%=user.getEducation()%>
            </td>
            <td align="center" style="HEIGHT: 22px">
               <a href="<%=request.getContextPath() %>/">
                  <img src="<%=request.getContextPath() %>/images/i_edit.gif" border="0" style="CURSOR: hand">
               </a>
            </td>
            <td align="center" style="HEIGHT: 22px">
               <a href="<%=request.getContextPath() %>/">
                  <img src="<%=request.getContextPath() %>/images/button_view.gif" border="0" style="CURSOR: hand">
               </a>
            </td>
            <td align="center" style="HEIGHT: 22px">
               <a href="<%=request.getContextPath() %>/">
                  <img src="<%=request.getContextPath() %>/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
               </a>
            </td>
         </tr>
         <%
      }
   }
%>

2、UMS-添加用户【阶段1】


2.1、需求说明


要求:跳转使用重定向。


2.2、需求分析


分析:


关键点:


1、JS事件  onclick


2、location.href


3、toBean()


4、生成随机ID。 UUID.randomUUID().toString().replaceAll("-","");


5、XmlUtils.write


6、重定向:return "redirect:/";


流程图:


2.3、代码实现


/user/list.jsp

<td class="ta_01" align="right">
   <a class="button_add" style="padding: 2px 4px 2px 10px; border: 1px solid #8AA2CC;" href="<%=request.getContextPath() %>/user/add.jsp" id="add">添加</a>
</td>

/user/add.jsp

<form name="Form1" method="post"  action="<%=pageContext.getServletContext().getContextPath()%>/user" >
   <input type="hidden" name="method" value="addUser"/>

UserServlet

/**
 * 添加用户
 * @return
 */
public String addUser(){
    //1、接收表单数据
    User param = toBean(User.class);
    //2、调用service进行保存
    boolean result = userService.addUser(param);
    //3、根据service处理结果,做不同的跳转
    if(result){
        //添加成功
        return "redirect:/user?method=list";
    }else{
        //添加失败
        getRequest().setAttribute("errorMsg","添加失败");
        return "forward:/user/error.jsp";
    }
}

UserService

/**
 * 添加用户
 * @param param
 * @return
 */
public boolean addUser(User param) {
    //1、生成随机ID
    param.setId(UUID.randomUUID().toString().replaceAll("-",""));
    //2、调用Dao进行数据保存
    //3、try...catch对处理结果进行判断:没有出现异常,保存成功,否则保存失败
    try {
        userDao.addUser(param);
    } catch (Exception e) {
        //出现异常,添加失败
        return false;
    }
    //没有出现异常,添加成功
    return true;
}
UserDao
/**
 * 向xml中追加一个新用户
 * @param param
 */
public void addUser(User param) {
    XmlUtils.write(PATH,param);
}

/user/error.jsp

<tr>
   <td height="220" align="center" valign="middle"
      background="<%=request.getContextPath() %>/images/loginbg.gif">
      <p class="style1">
         <font color="red">${errorMsg}</font><br>
         <font color="red"></font>
      </p>
      <p>
      </p>
   </td>
</tr>
相关文章
|
2月前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
293 8
|
2月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
228 24
|
2月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
177 11
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
225 10
|
2月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
438 4
|
2月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
362 0
|
3月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
3月前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
187 1
|
3月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
JavaScript Java 测试技术
基于Java的通讯录管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的通讯录管理系统的设计与实现(源码+lw+部署文档+讲解等)
333 5