剩下代码编写

jsp前台编写 html

代码

在index.jsp里编写前台页面

<%@ page import="tools.JDBCUtiles" %>
<%@ page import="java.sql.Connection" %><%--
  Created by IntelliJ IDEA.
  User: hx
  Date: 2022/6/12
  Time: 20:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
    <style>
      table {
        width: 600px;
        margin: 0 auto;
      }

      table td {
        text-align: center;
      }

      table td, table th {
        border: 1px solid black;
      }

      .green {
        background-color: #04dc01;
      }
    </style>
    <script src="jquery-1.8.2.min.js"></script>
    <script>
      $(function () {
        $("body").css("backgroundColor","green")
      })
    </script>
  </head>
  <body>
  <%
    Connection connection = JDBCUtiles.getConnection();
    out.print(connection);
  %>
  <table cellspacing="0" border="1" width="600">
    <caption><h1>人员列表</h1></caption>
    <thead>
    <tr class="green">
      <th>编号</th>
      <th>姓名</th>
      <th>性别</th>
      <th>年龄</th>
      <th>等级</th>
      <th>部门</th>
      <th>操作</th>
    </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
        <td>6</td>
        <td>7</td>
      </tr>
      <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
        <td>6</td>
        <td>7</td>
      </tr>
      <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
        <td>6</td>
        <td>7</td>
      </tr>
      <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
        <td>6</td>
        <td>7</td>
      </tr>
    </tbody>
    <tfoot>
    <tr>
      <td colspan="7">
        <button class="addData">添加人员</button>
      </td>
    </tr>
    </tfoot>
  </table>

  </body>
</html>

效果

前台编写完毕

servlet编写/index的路径

创建servlet包

新建Index文件

package servlet;

import bean.PersonBean;
import service.impl.PersonServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet("/index")
public class Index extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取参数
        //让业务员干活,得到返回值
        PersonServiceImpl personService = new PersonServiceImpl();
        List<PersonBean> personBeanList = personService.getAll();
        personService.close();
        //处理返回值
        req.setAttribute("personBeanList",personBeanList);
        //返回内容
        req.getRequestDispatcher("index.jsp").forward(req,resp);
    }
}

编写完毕

jsp动态的填入数据

填入数据前先进行测试 是否能拿到所有数据

<%
  PersonServiceImpl personService = new PersonServiceImpl();
  List<PersonBean> all = personService.getAll();
  out.print(all);
%>

结果

如果能正常拿到 即可继续编写代码

使用<c:forEach></c:forEach>遍历

<c:forEach items="${requestScope.personBeanList}" var="personBean">
    <tr person_id="${personBean.id}">
        <td>${personBean.id}</td>
        <td>${personBean.name}</td>
        <td>${personBean.sex}</td>
        <td>${personBean.age}</td>
        <td>${personBean.rank}</td>
        <td>${personBean.department}</td>
        <td>
            <a href="javascript:;" class="del">删除</a>
        </td>
    </tr>
</c:forEach>

结果

数据查询完毕

给a链接设置点击事件 可拿到信息id

点击删除按钮 可弹出当前行的id

$(function () {
    // 改变颜色
    changeColor();
    // 给按钮绑定事件
    $("button.addData").click(add_click);
    // 点击删除a链接时
    $("a.del").click(delete_data);
});
function delete_data() {
    var $tr = $(this).parent().parent();
    var id = $tr.attr("person_id");
    alert(id + "ajax");
    $.ajax({
        url: "delete",
        type: "get",
        data: {"id": id},
        dataType: "json",
        success: function (result) {
            alert(result["msg"]);
        }
    });
    // 成功
    // {"status":1,"msg":"删除成功"}
    // 删除
    // 失败 {"status":0,"msg":"删除失败"}

编写完成

编写dao中删除的方法

在dao目录下的接口中定义一个删除的方法

package dao;

import bean.PersonBean;

import java.util.List;

public interface PersonDao {
    //显示所有
    List<PersonBean> select();

    //删除
    int delete(String id);
}

再到实现类里重写此方法

package dao.impl;

import bean.PersonBean;
import dao.PersonDao;
import tools.BaseDao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class PersonDaoImpl extends BaseDao implements PersonDao {
    public PersonDaoImpl(Connection connection) {
        super(connection);
    }

    @Override
    public List<PersonBean> select() {
        //sql
        String sql = "SELECT * FROM person";
        //obj
        Object[] objects = {};
        //father
        ResultSet resultSet = commonQuery(sql, objects);
        //deal
        List<PersonBean> personBeanList = new ArrayList<>();
        while (true){
            try {
                if (!resultSet.next()) break;
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            PersonBean personBean = lineToObject(resultSet);
            personBeanList.add(personBean);
        }
        return personBeanList;
    }

    @Override
    public int delete(String id) {
        // sql
        String sql = "DELETE FROM person WHERE id = ?";
        // obj
        Object[] objects = {id};
        // 调用父类的方法
        int i = commonUpdate(sql, objects);
        // deal
        // return
        return i;
    }

    @Override
    public PersonBean lineToObject(ResultSet resultSet) {
        //获取零散数据
        int id = 0;
        String name = null;
        String sex = null;
        int age = 0;
        String rank = null;
        String department = null;
        try {
            id = resultSet.getInt("id");
            name = resultSet.getString("name");
            sex = resultSet.getString("sex");
            age = resultSet.getInt("age");
            rank = resultSet.getString("rank");
            department = resultSet.getString("department");
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        //实例化一个bean对象
        PersonBean personBean = new PersonBean();
        //给对象赋值零散数据
        personBean.setId(id);
        personBean.setName(name);
        personBean.setSex(sex);
        personBean.setAge(age);
        personBean.setSex(rank);
        personBean.setDepartment(department);
        //返回
        return personBean;

    }
}

编写service中删除的方法

先在service的目录下的接口中定义删除方法

package service;

import bean.PersonBean;

import java.util.List;

public interface PersonService {
    //查询所有
    List<PersonBean> getAll();

    // 删除
    int delete(String id);
}

再到实现类里重写此方法

package service.impl;

import bean.PersonBean;
import dao.PersonDao;
import dao.impl.PersonDaoImpl;
import service.PersonService;
import tools.JDBCUtiles;

import java.sql.Connection;
import java.util.List;

public class PersonServiceImpl implements PersonService {
    //连接对象
    private Connection connection;
    //人类dao
    private PersonDaoImpl personDao;
    public PersonServiceImpl() {
        //获得链接对象
        connection = JDBCUtiles.getConnection();
        //获得dao对象
        personDao = new PersonDaoImpl(connection);

    }

    //关闭
    public void close(){
        //关dao的资源
        this.personDao.close();
        //关连接对象
        JDBCUtiles.close(this.connection);
    }

    @Override
    public List<PersonBean> getAll() {
        return personDao.select();
    }

    @Override
    public int delete(String id) {
        return personDao.delete(id);
    }
}

在前端发ajax请求并处理返回

// 删除按钮的事件
function delete_data() {
    var $tr = $(this).parent().parent();
    var id = $tr.attr("person_id");
    alert(id + "ajax");
    $.ajax({
        url: "delete",
        type: "get",
        data: {"id": id},
        dataType: "json",
        success: function (result) {
            if (result["status"] === 1) {
                // 把tr删掉
                $tr.remove();
                // 隔行换色
                changeColor();
            }
            alert(result["msg"]);
        }
    });
    // 成功
    // {"status":1,"msg":"删除成功"}
    // 删除
    // 失败 {"status":0,"msg":"删除失败"}
}

编写jsp页 当用户访问添加页时 显示表单

$(function () {
    // 改变颜色
    changeColor();
    // 给按钮绑定事件
    $("button.addData").click(add_click);
    // 点击删除a链接时
    $("a.del").click(delete_data);
});
// 添加人员的按钮事件
function add_click() {
    window.location.href = "add";
}

当用户点击添加按钮是 跳转到添加页面

新建一个add.jsp

前端页面

<form action="add" method="post">
        <table>
            <caption>添加人员</caption>
            <%--        (tr>td{$$}*2)*6--%>
            <tr>
                <td>
                    姓名
                </td>
                <td>
                    <input type="text" class="name" name="name">
                </td>
            </tr>
            <tr>
                <td>性别</td>
                <td>
                    <select name="sex" class="sex" id="">
                        <option value="-1">请选择</option>
                        <option value="男">男</option>
                        <option value="女">女</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>年龄</td>
                <td>
                    <input type="text" name="age" class="age">
                </td>
            </tr>
            <tr>
                <td>等级</td>
                <td>
                    <select name="rank" class="rank" id="">
                        <option value="-1">请选择</option>
                        <option value="一级">一级</option>
                        <option value="二级">二级</option>

                    </select>
                </td>
            </tr>
            <tr>
                <td>部门</td>
                <td>
                    <select name="department" class="department" id="">
                        <option value="-1">请选择</option>
                        <option value="开发部">开发部</option>
                        <option value="支持部">支持部</option>
                        <option value="工程质量部">工程质量部</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" value="提交">
                </td>
            </tr>
        </table>
    </form>
</body>

页面

编写dao中的添加方法 形参是bean对象

package dao;

import bean.PersonBean;

import java.util.List;

public interface PersonDao {
    //显示所有
    List<PersonBean> select();

    //删除
    int delete(String id);

    // 添加
    int insert(PersonBean personBean);
}

先在dao目录下面的接口中定义添加方法 以bean对象为形参

再到实现类中重写此方法

编写业务中的添加方法 形参全是字符串 不含id

在service目录下的接口中编写添加方法

再到实现类中重写此方法

 编写servlet逻辑 当用户访问add路径时显示表单

 编写jsp页 当用户访问添加页时 显示表单

 

增强jsp页 进行非空验证 重名验证 日期格式验证等

 验证完毕

添加功能完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值