设备缺陷管理系统
用Jsp Servlet和Jquery實現設備缺陷管理系統。
設備缺陷管理系統采用MVC三層架構模式進行開發,有效地解決了對缺陷設備的管理和修正。
效果演示:
查詢和聯合查詢頁面
添加頁面
點擊刪除之后
功能分析:
1.查詢所有設備
2.聯合查詢
3.添加缺陷設備
4.刪除缺陷設備
5.處理缺陷設備
實現此系統要準備兩大方面的內容,分別是數據庫和程序。
一: 數據庫(SQLServer數據庫)
我的數據庫名為Test
設備表
缺陷表
當然在開始我們的程序之前還要特別注意:
引入sqljdbc.jar架包和jquery-3.3.1.js架包
二:完整程序
我們先看一下目錄結構
正式進入程序
bean包:
bean包里的Defect.java
bean包里的Device.java
package com.hnpi.bean;public class Device {private Integer deviceId;private String deviceName;public Integer getDeviceId() {return deviceId;}public void setDeviceId(Integer deviceId) {this.deviceId = deviceId;}public String getDeviceName() {return deviceName;}public void setDeviceName(String deviceName) {this.deviceName = deviceName;}public Device(Integer deviceId, String deviceName) {super();this.deviceId = deviceId;this.deviceName = deviceName;}public Device() {super();// TODO Auto-generated constructor stub}}servlet包:
servlet包里的DefectAddServlet.java
servlet包里的DefectDel.java
package com.hnpi.servlet;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.hnpi.util.DBUtil;public class DefectDel extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");String defectId = request.getParameter("id");Connection conn = DBUtil.getConn();PreparedStatement ps = null;String sql = "delete from defect where defectId = ?";try {ps = conn.prepareStatement(sql);ps.setInt(1, Integer.parseInt(defectId));ps.executeUpdate();response.sendRedirect("defectList");} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{DBUtil.closeConn(conn, ps, null);}}}servlet包里的DefectListServlet.java
package com.hnpi.servlet;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import com.hnpi.bean.Defect; import com.hnpi.bean.Device; import com.hnpi.util.DBUtil;public class DefectListServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");String deviceId = request.getParameter("deviceId");String content = request.getParameter("content");String defectState = request.getParameter("defectState");Connection conn = DBUtil.getConn();PreparedStatement ps = null;ResultSet rs = null;String sql = "select * from defect where 1=1";List<Defect> defects = new ArrayList<Defect>();List<Device> devices = new ArrayList<Device>();Map<Integer, String> deviceMaps = new HashMap<Integer, String>();List<Object> params = new ArrayList<Object>();boolean deviceIdFlag = (deviceId != null && !"".equals(deviceId) && !"*".equals(deviceId));boolean contentFlag = (content != null && !"".equals(content));boolean defectStateFlag = (defectState != null && !"".equals(defectState) && !"*".equals(defectState));if (deviceIdFlag) {sql += " and deviceId = ?";params.add(Integer.parseInt(deviceId));}if (contentFlag) {sql += " and contents like ?";params.add("%"+ content +"%");}if (defectStateFlag) {sql += " and defectState = ?";params.add(Integer.parseInt(defectState));}try {ps = conn.prepareStatement(sql);for (int i = 1; i <= params.size(); i++) {Object obj = params.get(i-1);if (obj instanceof Integer) {ps.setInt(i, (Integer) obj);}if (obj instanceof String) {ps.setString(i, (String) obj);}}rs = ps.executeQuery();while (rs.next()) {Defect defect = new Defect(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getTimestamp(4),rs.getInt(5), rs.getTimestamp(6), rs.getInt(7));defects.add(defect);}sql = "select * from device";ps = conn.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()) {Device device = new Device(rs.getInt(1), rs.getString(2));devices .add(device);deviceMaps.put(device.getDeviceId(), device.getDeviceName());}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{DBUtil.closeConn(conn, ps, rs);}HttpSession session = request.getSession();session.setAttribute("defects", defects);session.setAttribute("devices", devices);session.setAttribute("deviceMaps", deviceMaps);response.sendRedirect("defectList.jsp");}}servlet包里的DefectUp.java
package com.hnpi.servlet;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Timestamp;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.hnpi.util.DBUtil;public class DefectUp extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");String defectId = request.getParameter("id");Connection conn = DBUtil.getConn();PreparedStatement ps = null;String sql = "update defect set defectState = 2,dealTime = ? where defectId = ?";try {ps = conn.prepareStatement(sql);ps.setTimestamp(1, new Timestamp(System.currentTimeMillis()));ps.setInt(2, Integer.parseInt(defectId));ps.executeUpdate();response.sendRedirect("defectList");} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{DBUtil.closeConn(conn, ps, null);}}}servlet包里的DeviceIdString.java
package com.hnpi.servlet;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import com.hnpi.bean.Device; import com.hnpi.util.DBUtil;public class DeviceIdString extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");Connection conn = DBUtil.getConn();PreparedStatement ps = null;ResultSet rs = null;List<Device> devices = new ArrayList<Device>();String sql = "select * from device";try {ps = conn.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()) {Device device = new Device(rs.getInt(1), rs.getString(2));devices .add(device);}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{DBUtil.closeConn(conn, ps, null);}HttpSession session = request.getSession();session.setAttribute("devices", devices);response.sendRedirect("defectAdd.jsp");}}util包
util包里的DBUtil.java
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>DefectListServlet</servlet-name><servlet-class>com.hnpi.servlet.DefectListServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>DefectDel</servlet-name><servlet-class>com.hnpi.servlet.DefectDel</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>DefectUp</servlet-name><servlet-class>com.hnpi.servlet.DefectUp</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>DeviceIdString</servlet-name><servlet-class>com.hnpi.servlet.DeviceIdString</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>DefectAddServlet</servlet-name><servlet-class>com.hnpi.servlet.DefectAddServlet</servlet-class></servlet><servlet-mapping><servlet-name>DefectListServlet</servlet-name><url-pattern>/defectList</url-pattern></servlet-mapping><servlet-mapping><servlet-name>DefectDel</servlet-name><url-pattern>/defectDel</url-pattern></servlet-mapping><servlet-mapping><servlet-name>DefectUp</servlet-name><url-pattern>/defectUp</url-pattern></servlet-mapping><servlet-mapping><servlet-name>DeviceIdString</servlet-name><url-pattern>/deviceId</url-pattern></servlet-mapping><servlet-mapping><servlet-name>DefectAddServlet</servlet-name><url-pattern>/defectAdd</url-pattern></servlet-mapping><welcome-file-list><welcome-file>defectList</welcome-file></welcome-file-list> </web-app>jsp頁面
defectAdd.jsp
defectList.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="com.hnpi.bean.Device"%> <%@page import="com.hnpi.bean.Defect"%> <% 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%>"><script src="jquery-3.3.1.js"></script><title>My JSP 'index.jsp' starting page</title></head><body><form action="defectList" method="post">所屬設備:<select name="deviceId"><option selected="selected" value="*">全部設備</option><%List<Device> devices = (List)session.getAttribute("devices");for(Device device : devices){%><option value="<%=device.getDeviceId() %>"><%=device.getDeviceName() %></option><%} %></select>缺陷內容:<input type="text" name="content"/>缺陷狀態:<input type="radio" name="defectState" id="state1" value="1"/><label for="state1">未解決</label><input type="radio" name="defectState" id="state2" value="2"/><label for="state1">已解決</label><input type="radio" name="defectState" id="state3" value="*"/><label for="state1">全部</label><input type="submit" value="查詢"/><a href="deviceId"><input type="button" value="添加"/></a></form><table border="1" cellspacing="0"><thead><tr><td>所屬設備</td><td>缺陷類型</td><td>缺陷內容</td><td>缺陷添加時間</td><td>缺陷狀態</td><td>缺陷處理時間</td><td>操作</td></tr></thead><tbody><%List<Defect> defects = (List)session.getAttribute("defects");Map<Integer,String> deviceMaps = (HashMap)session.getAttribute("deviceMaps");for(Defect defect : defects){ %><tr><td><%=deviceMaps.get(defect.getDeviceId()) %></td><td><%if(defect.getDefectType() == 1){ %>緊急<%} %><%if(defect.getDefectType() == 2){ %>重要<%} %><%if(defect.getDefectType() == 3){ %>一般<%} %></td><td><%=defect.getContent() %></td><td><%=defect.getAddTime() %></td><td><%if(defect.getDefectState() == 1){ %>未處理<%} %><%if(defect.getDefectState() == 2){ %>已處理<%} %></td><td><%=defect.getDealTime() %></td><td><a style="display:<%=defect.getDefectState()!=1?"none":"block"%>" href="defectUp?id=<%=defect.getDefectId() %>"><input type="button" value="處理缺陷" id="up"/></a><a href="defectDel?id=<%=defect.getDefectId()%>"><input type="button" value="刪除"/></a></td></tr><%} %></tbody></table></body> </html>程序已經完全結束,趕快去試試吧!!!
掃一掃添加我的微信公眾號獲取更多資訊呦!!!
總結
- 上一篇: 新网 云服务器,云服务器的使用教程
- 下一篇: html怎么引入圆角插件,jQuery圆