JavaWeb开发实战(四)

简介: JavaWeb开发实战(四)

9.6 创建更新用户业务层

package com.zj.service;
import com.zj.pojo.User;
import java.util.List;
public interface UserManageService {
    void addUser(User user);
    List<User> findUsers(User user);
    User findUserById(int id);
    void modifyUser(User user);
}
/*修改用户*/
    @Override
    public void modifyUser(User user) {
        UserManageDao userManageDao = new UserManageDaoImpl();
        userManageDao.updateUser(user);
    }

9.7 创建更新用户Servlet

/*更新用户*/
    public void modifyUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
        User user = this.createUser(request, response);
        try {
            UserManageService userService = new UserManageServiceImpl();
            userService.modifyUser(user);
            response.sendRedirect("ok.jsp");
        }catch (Exception e) {
            e.printStackTrace();
            response.sendRedirect("error.jsp");
        }
    }

9.8 修改更新用户页面完成用户更新

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
        function update(){
            window.location='ok.html';
        }
    </script>
</head>
<body>
<div class="place">
    <span>位置:</span>
    <ul class="placeul">
        <li><a href="#">用户管理</a></li>
        <li><a href="#">修改用户</a></li>
    </ul>
</div>
<div class="formbody">
    <div class="formtitle"><span>基本信息</span></div>
    <%--从servlet跳转过来的不需要加../--%>
    <form method="post" action="userManage.do">
       <input type="hidden" name="flag" value="modify">
        <input type="hidden" name="userid" value="${requestScope.user.userid}">
    <ul class="forminfo">
        <li><label>用户名</label><input name="username" type="text" class="dfinput" value="${requestScope.user.username}"/> </li>
        <li>
            <label>性别</label>
            <c:choose>
                <c:when test="${requestScope.user.usersex == 1}">
                    <input name="usersex" type="radio" value="1" checked="checked" />男&nbsp;&nbsp;&nbsp;&nbsp;
                    <input name="usersex" type="radio" value="0" />女
                </c:when>
                <c:otherwise>
                    <input name="usersex" type="radio" value="1"  />男&nbsp;&nbsp;&nbsp;&nbsp;
                    <input name="usersex" type="radio" value="0" checked="checked"/>女
                </c:otherwise>
            </c:choose>
        </li>
        <li><label>手机号</label><input name="phonenumber" type="text" class="dfinput" value="${requestScope.user.phonenumber}"/></li>
        <li><label>QQ号</label><input name="qqnumber" type="text" class="dfinput" value="${requestScope.user.qqnumber}"/></li>
        <li><label>&nbsp;</label><input  type="submit" class="btn" value="确认修改"/></li>
    </ul>
    </form>
</div>
</body>
</html>

十、删除用户业务

10.1 创建删除用户持久层

package com.zj.dao;
import com.zj.pojo.User;
import java.util.List;
public interface UserManageDao {
    //用户添加
    void insertUser(User user);
    //查询用户
    List<User> selectUserByProperty(User user);
    //预更新用户
    User selectUserById(int userid);
    //更新用户
    void updateUser(User user);
    /*删除用户*/
    void deleteUserById(int userid);
}
//    根据用户id删除用户
    @Override
    public void deleteUserById(int  userid) {
        Connection con = null;
        try {
            con = jdbcUtils.getConnection();
            con.setAutoCommit(false);
            PreparedStatement ps = con.prepareStatement("DELETE FROM users where userid = ? ");
            ps.setInt(1,userid);
            ps.executeUpdate();
            con.commit();
        }catch (Exception e) {
            e.printStackTrace();
            jdbcUtils.rollbackConnection(con);
        }finally {
            jdbcUtils.closeConnection(con);
        }
    }

10.2 创建删除用户业务层

package com.zj.service;
import com.zj.pojo.User;
import java.util.List;
public interface UserManageService {
    void addUser(User user);
    List<User> findUsers(User user);
    User findUserById(int id);
    void modifyUser(User user);
    void removeUser(int userid);
}
/*删除用户*/
    @Override
    public void removeUser(int userid) {
        UserManageDao userManageDao = new UserManageDaoImpl();
        userManageDao.deleteUserById(userid);
    }

10.3 创建删除用户Servlet

/*删除用户*/
    private void removeUser(HttpServletRequest request, HttpServletResponse response) throws IOException{
        String userid = request.getParameter("userid");
        try {
            UserManageService userService = new UserManageServiceImpl();
            userService.removeUser(Integer.parseInt(userid));
            response.sendRedirect("ok.jsp");
        }catch (Exception e) {
            e.printStackTrace();
            response.sendRedirect("error.jsp");
        }
    }

10.4 修改showUsers.jsp页面完成用户删除

<%--超链接直接发送请求不需要加../--%>
            <td><a href="userManage.do?flag=preUpdate&userid=${user.userid}" class="tablelink">修改</a> &nbsp;&nbsp;&nbsp;&nbsp;  <a href="userManage.do?userid=${requestScope.user.userid}" class="tablelink click"> 删除</a></td>


相关文章
|
5天前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
24 0
|
20小时前
|
设计模式 算法 Java
Java 设计模式:探索策略模式的概念和实战应用
【4月更文挑战第27天】策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在 Java 中,策略模式通过定义一系列的算法,并将每一个算法封装起来,并使它们可以互换,这样算法的变化不会影响到使用算法的客户。
6 1
|
20小时前
|
Java 程序员
Java 异步编程:概念、优势与实战示例
【4月更文挑战第27天】在现代软件开发中,异步编程是一种重要的编程范式,特别适用于处理长时间运行的任务,如网络通信、文件操作等。
7 0
|
20小时前
|
Java Shell API
Java 模块化编程:概念、优势与实战指南
【4月更文挑战第27天】Java 模块化编程是 Java 9 中引入的一项重大特性,通过 Java Platform Module System (JPMS) 实现。模块化旨在解决 Java 应用的封装性、可维护性和性能问题
8 0
|
2天前
|
消息中间件 缓存 NoSQL
Java多线程实战-CompletableFuture异步编程优化查询接口响应速度
Java多线程实战-CompletableFuture异步编程优化查询接口响应速度
|
4天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
9天前
|
IDE Java 数据库连接
使用 Java 进行桌面应用开发
【4月更文挑战第19天】Java 是一款广泛应用于企业级、网络和桌面应用开发的编程语言。其跨平台特性使Java程序能在不同操作系统上运行,而JDK提供了开发所需工具和库。使用Swing等GUI库构建用户界面,结合JDBC进行数据库操作,Socket实现网络通信。虽然面临性能和用户体验的挑战,但通过优化和选用合适的IDE,Java仍能开发出高效稳定的桌面应用。
|
9天前
|
存储 Java 数据库连接
java DDD 领域驱动设计思想的概念与实战
【4月更文挑战第19天】在Java开发中,领域驱动设计(Domain-Driven Design, DDD) 是一种软件设计方法论,强调以领域模型为中心的软件开发。这种方法通过丰富的领域模型来捕捉业务领域的复杂性,并通过软件满足核心业务需求。领域驱动设计不仅是一种技术策略,而且还是一种与业务专家紧密合作的思维方式
31 2
|
9天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
10天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
151 10