jdbc+jsp实现简单员工管理系统

简单的页面分析

在上一个文章简单的数据库连接测试,已经测试和数据库做简单的交互,也就是dao层的实现,接下来要说的却是action的简单实现,在ssh中有struts作为表示层和server的交换,而这里我不是说的是关于struts这里只是简单的运用jsp的代码书写来实现数据的传输,这也是最繁琐的步骤,但是这却让我们对底层的调用有一个简单的了解,这里是直接调用封装好的数据,交换和使用,首先要书写的是action的使用,用的最多的就是getParameter表单的提交了,这里在网络上提交一个表单吗,然后通过getParameter进行获取,然后通过enployeeDao中的方法进行增删改查,就能够进行基本的逻辑操作了。

代码实现

<%@page import="dao.EmployeeDao"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="entity.Employee"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

  <%
    //1、接收表单提交的参数
    String action = request.getParameter("action");

    //3.调用EmployeeDao中addEmployee(Employee employee)完成员工添加
    EmployeeDao employeeDao = new EmployeeDao();
    if (action.equals("0") || action.equals("1")) {
      //添加 更新
      String empno = request.getParameter("empno");
      String ename = request.getParameter("ename");
      String sal = request.getParameter("sal");
      String hiredate = request.getParameter("hiredate");

      //2.将数据封装至Employee对象中
      Employee employee = new Employee();
      employee.setEmpno(Integer.parseInt(empno));
      employee.setEname(ename);
      employee.setSal(Double.parseDouble(sal));
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      employee.setHiredate(sdf.parse(hiredate));

      if (action.equals("0")) {
        //添加
        employeeDao.addEmployee(employee);
      } else {
        //更新
        employeeDao.updateEmployee(employee);
      }

    } else if (action.equals("2")) {
      //删除
      String empno = request.getParameter("empno");
      employeeDao.deleteEmployee(empno);
    } else if (action.equals("3")) {
      //批量删除
      System.out.println("action="+action);

      String[] chks=request.getParameterValues("chks");
      for(String chk:chks){
        System.out.println("chk="+chk);
      }

    }

    //4.画面跳转至employeeList.jsp 重定向
    response.sendRedirect("employeeList.jsp");
  %>
</body>
</html>

然后我们进行简单的页面设计,运用了表格的形式进行设计,代码如下

<%@page import="java.util.List"%>
<%@page import="entity.Employee"%>
<%@page import="dao.EmployeeDao"%>
<%@page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
  function checkAll() {

    //1.获取chkAll的选中状态checked
    var chkAll = document.getElementById("chkAll");
    //alert(chkAll.checked);

    //2、获取其他所有的checkbox
    var chks = document.getElementsByName("chks");
    for (var i = 0; i < chks.length; i++) {
      //3、将chkAll的选中状态于其他checkbox的选中状态同步
      chks[i].checked = chkAll.checked;
    }
  }

  function onDelete(empno){
    var result=confirm("Delete Employee?");
    if(result){
      window.location.href="employeeManageAction.jsp?action=2&empno=" rel="external nofollow" +empno;
    }
  }

  //function onDeleteBatch(){
    //判断是否有选中的checkbox

    //有选中的场合
    //提示是否删除确认的信息
    //确认删除
    //提交表单
    //var action=document.getElementById("action");
    //action.value="3";

  // document.frmlist.action="employeeManageAction.jsp"
    // document.frmlist.submit();
    //取消删除
    //不用处理

    //无选中的场合
    //提示选中记录的信息

  //}

</script>
</head>
<body>
  <h3>Employee List Page</h3>

  <form name="frmSearch" action="xxxxAction.jsp" method="post">
    ename:<input type="text" /> <input type="submit" name="btnSubmit"
      value="submit" />
  </form>
  <P>
  <hr />

  <a href="employeeManage.jsp?action=0" rel="external nofollow" >Add Employee</a>
  <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" onclick="onDeleteBatch();">Delete
    Employee Batch</a>
  <P>
    <%
      EmployeeDao emplyeeDao = new EmployeeDao();
      List<Employee> employees = emplyeeDao.getEmployees();
    %>

    <%
      if (employees != null && employees.size() > 0) {
    %>

  <form name="frmlist" action="" method="post">
    <input type="hidden" name="action" id="action" value="" />
    <table width="600px" border="1px">

      <tr bgcolor="#009966">
        <td><input type="checkbox" id="chkAll" onclick="checkAll()" /></td>
        <td>empno</td>
        <td>ename</td>
        <td>sal</td>
        <td>hiredate</td>
        <td>action</td>
      </tr>

      <%
        Employee employee = null;
          for (int i = 0; i < employees.size(); i++) {
            employee = employees.get(i);
      %>
      <tr>
        <td><input type="checkbox" id="chk<%=i + 1%>" name="chks"
          value="<%=employee.getEmpno()%>" /></td>
        <td><%=employee.getEmpno()%></td>
        <td><%=employee.getEname()%></td>
        <td><%=employee.getSal()%></td>
        <td><%=employee.getHiredate()%></td>
        <td><a
          href="employeeManage.jsp?action=1&empno=<%=employee.getEmpno()%>" rel="external nofollow" >update</a>
          <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow"
          onclick="onDelete(<%=employee.getEmpno()%>);">delete</a></td>
      </tr>
      <%
        }
      %>
    </table>

  </form>

  <%
    }
  %>
</body>
</html>

接下来要说的是更新操作

<%@page import="entity.Employee"%>
<%@page import="dao.EmployeeDao"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
  function checkForm() {

    var empno = document.getElementById("empno");
    if (empno && empno.value == "") {
      empno.focus();
      alert("please input empno");
      return;
    }

    var ename = document.getElementById("ename");
    if (ename && ename.value == "") {
      ename.focus();
      alert("please input ename");
      return;
    }

    var sal = document.getElementById("sal");
    if (sal && sal.value == "") {
      sal.focus();
      alert("please input sal");
      return;
    }

    var hiredate = document.getElementById("hiredate");
    if (hiredate && hiredate.value == "") {
      hiredate.focus();
      alert("please input hiredate");
      return;
    }

    var frm = document.getElementById("frm");
    frm.submit();

  }
</script>

</head>
<body>

  <%
    String action=request.getParameter("action");

    Employee employee=null;
    if(action.equals("1")){
      //更新操作
      String empno = request.getParameter("empno");

      EmployeeDao employeeDao = new EmployeeDao();
      employee=employeeDao.getEmployeeByEmpno(empno);
    }

  %>

  <h3>Employee <%=action.equals("1")?"Update":"Regist" %> Page</h3>

  <form id="frm" action="employeeManageAction.jsp" method="post"
    onsubmit="return checkForm();">
    <input type="hidden" name="action" value="<%=action%>"/>
    <table>
      <tr>
        <td>empno</td>
        <td><input type="text" id="empno" name="empno" <%=action.equals("1")?"readOnly":"" %> value="<%=employee==null?"":employee.getEmpno()%>"/></td>
      </tr>

      <tr>
        <td>ename</td>
        <td><input type="text" id="ename" name="ename" value="<%=employee==null?"":employee.getEname()%>"/></td>
      </tr>

      <tr>
        <td>sal</td>
        <td><input type="text" id="sal" name="sal" value="<%=employee==null?"":employee.getSal()%>"/></td>
      </tr>

      <tr>
        <td>hiredate</td>
        <td><input type="text" id="hiredate" name="hiredate" value="<%=employee==null?"":employee.getHiredate()%>"/></td>
      </tr>

      <tr>
        <td><input type="button" name="btnSubmit" value="submit"
          onclick="checkForm();" /></td>
        <td><input type="reset" name="btnReset" value="reset" /></td>
      </tr>
    </table>
  </form>
</body>
</html>

在这个过程中刚好用到了简单的js对数据进行非空和数据类型判断,这就是我们需要学会的逻辑,业务层,然后进行其他操作,当然我注释的是还没完成的多个删除和模糊搜索,这个下一个博客再去完善。

总结

在学习这个过程中,学会了更多关于数据调用的知识,而不是像hibernate那样在配置文件配置,然后直接调用就可以了,再用jsp中也发现jsp嵌入代码,更加笨重,这也是我学习的另一个方面吧。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jsp实现剪子石头布小游戏

    本文实例为大家分享了jsp实现剪子石头布游戏的具体代码,供大家参考,具体内容如下 老师前两天除了一道小游戏的题目要大家做做,其实不太难,用了接近两个小时才做出来,先看一下题目. 问题描述:实现两个页面,第一个页面要求用图片或radio或select,第二个页面显示输赢的结果并把所有的结果保存输出.剪子石头布小游戏,跟常理一样,不必多说. 实现过程:使用form表单进行跳转处理,难点在图片传值这部分和数据统计部分,以下是代码: 游戏界面代码: <html> <head> <ba

  • SpringBoot使用JSP作为视图模板的方法

    第一次写博客,其实网上已经有很多关于SpringBoot使用JSP作为视图模板的博客文章了,不过当我在使用他们的文章作为指导发现了一些问题,也许是因为那些大神们境界很高了,不需要注意到一些细枝末节,但作为初学者,因为一些不明白的原因而一直无法入门是一件非常痛苦的事,所以在这里,我是以一个初学者的角度来写这篇文章,顺便给自己做一个备忘. 系统:Windows IDE:IntelliJ IDEA JDK:1.8 SpringBoot:1.5.9RELEASE (1)创建SpringBoot项目,添加

  • 详解JSP 内置对象request常见用法

    request 对象是 HttpServletRequestWrapper 类的实例.它的继承体系如下: _request 对象继承层次结构图.png ServletRequest 接口的唯一子接口是 HttpServletRequest ,HttpServletRequest 接口的唯一实现类 HttpServletRequestWrapper ,单从 request 对象一脉单传的类继承体系可以看出,javaweb 标准类库只支持了 http 协议. Servlet/JSP 中大量使用了接口

  • 在JSP页面中动态生成图片验证码的方法实例

    在JSP页面中动态生成图片验证码 <%@ page language="java" pageEncoding="UTF-8"%> <%@ page import="java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*" %> <%@ taglib http://struts.apache.org/tags-bean">ht

  • SpringBoot+jsp项目启动出现404的解决方法

    通过maven创建springboot项目启动出现404 application.properties配置 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp 项目结构 控制器方法 package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bi

  • spring boot整合jsp及设置启动页面的方法

    前言 这几天在集中学习Spring boot+Shiro框架,因为之前view层用jsp比较多,所以想在spring boot中配置jsp,但是spring boot官方不推荐使用jsp,因为jsp相对于一些模板引擎,性能都比较低,官方推荐使用thymeleaf,但是Spring boot整合jsp的过程已经完成,在这里记录一下. 本文基于springboot2.0.4最新版本 spring官方推荐Thymeleaf但是还是有很多javaweb朋友习惯使用jsp虽然现在jsp有点out.本节教程

  • 在JSP页面内编写java代码方法总结

    JSP脚本元素的类型 脚本元素提供了在jsp中插入java代码的能力.脚本元素有三种类型: 脚本(scriptlet): 是JSP页面中Java代码片段的容器.将页面转换为servlet类时,会将scriptlet内容插入到servlet类的jspService()方法中,同时从JSP生成servlet.语法如下: <% java源代码 %> 表达式(expression): 用于将转换为String的Java表达式的值插入到返回给客户端的响应中.语法如下: <%= 表达式语句 %>

  • SpringBoot使用Jsp的示例代码

    本文是简单总结一下SpringBoot使用Jsp的Demo. 前言 在早期做项目的时候,JSP是我们经常使用的java服务器页面,其实就是一个简化servlet的设计,在本文开始之前,回顾一下jsp的几大对象,如图. 而在现在SpringBoot框架流行的时代,SpringBoot推荐的模版引擎也转变为了thymeleaf,本文来介绍一下SpringBoot使用Jsp页面. 使用springboot搭建的maven web工程,模板引擎是jsp,(工程目录照着之前springmvc的配置,jsp

  • 基于Eclipse 的JSP/Servlet的开发环境的搭建(图文)

    基于Eclipse 的JSP的开发环境的搭建 说明:顺利地开发.测试和运行JSP程序少不了规范而安全的开发环境,本文将会详细地展示如何搭建JSP的开发环境. 内容详尽,适合零基础学者作为学习参考 . 一.JSP介绍: 1.JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签(通常以<%开头以%>结束)在HTML网页中插入Java代码. 2.JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分.网页开发者们通过结合HTML代码

  • JSP实现简单人事管理系统

    本文实例为大家分享了JSP实现简单人事管理系统的具体代码,供大家参考,具体内容如下 此系统使用jsp实现,其中包含了jsp九大内置对象和四大作用域的相关知识,采用map集合模拟数据库的方式,实现用户登录.员工信息展示.员工信息修改功能. JSP的九大内置对象:Application,Config,Exception,Out,PageContent,Page,Request,Respsonse,Sesstion JSP的四大作用域:Application Sesstion Page request

随机推荐