软件需求过程——课后作业
软件需求过程——课后作业
Policy:
package bean; public class Policy { private String name;//政策名称 private String organ;//发文机构 private String date; private String type; public Policy(String name, String organ, String date, String type) { this.name = name; this.organ = organ; this.date = date; this.type = type; } @Override public String toString() { return "Policy{" + "name='" + name + '\'' + ", organ='" + organ + '\'' + ", date='" + date + '\'' + ", type='" + type + '\'' + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOrgan() { return organ; } public void setOrgan(String organ) { this.organ = organ; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getType() { return type; } public void setType(String type) { this.type = type; } }
shu:
package bean; import java.util.List; public class shu { private String id; private String name; private int num; private List<shu> son; public shu() { } @Override public String toString() { return "shu{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", num=" + num + ", son=" + son + '}'; } public shu(String id, String name, List<shu> son) { this.id = id; this.name = name; this.son = son; } public shu(String id, String name) { this.id = id; this.name = name; } public shu(String id, String name, int num, List<shu> son) { this.id = id; this.name = name; this.num = num; this.son = son; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public List<shu> getSon() { return son; } public void setSon(List<shu> son) { this.son = son; } }
Text:
package bean; public class Text { private String text; public Text(String text) { this.text = text; } public String getText() { return text; } public void setText(String text) { this.text = text; } }
dao:
package dao; import java.sql.Connection; import java.util.ArrayList; import java.util.List; import bean.*; import java.sql.ResultSet; import java.sql.Statement; import dbutil.DBUtil; public class dao { public static List<Policy> SelectAll(String name,String doucument,String organ,String full) { System.out.println("11111111111"); String sql = "select * from policy where "; if (!name.equals("")){ sql+="name like '%"+name+"%'"; } if (!doucument.equals("")){ if(!name.equals("")) sql+="and "; sql+="document like'%"+doucument+"%'"; } if (!organ.equals("")){ if (!name.equals("")||!doucument.equals("")) sql+="and "; sql+="organ like '%"+organ+"%'"; } Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接 Statement state =null; List<Policy> list = new ArrayList<>(); ResultSet rs = null; int flag=0; try { System.out.println("22222222222222"); state = conn.createStatement(); rs=state.executeQuery(sql); Policy kc=null; while(rs.next()) { String name1=rs.getString("name"); String organ1=rs.getString("organ"); String date=rs.getString("perdata"); String type=rs.getString("type"); kc =new Policy(name1,organ1,date,type); System.out.println(kc.toString()); list.add(kc); } // System.out.println("3"); } catch(Exception e) { e.printStackTrace(); } finally { DBUtil.close(rs, state, conn); } return list; } public static List<Policy> SelectType(String method) { String sql = "select * from policy where type like '"+method+"'"; Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接 Statement state =null; List<Policy> list = new ArrayList<>(); ResultSet rs = null; int flag=0; try { state = conn.createStatement(); rs=state.executeQuery(sql); Policy kc=null; while(rs.next()) { String name1=rs.getString("name"); String organ1=rs.getString("organ"); String date=rs.getString("perdata"); String type=rs.getString("type"); kc =new Policy(name1,organ1,date,type); // System.out.println(kc.toString()); list.add(kc); } // System.out.println("3"); } catch(Exception e) { e.printStackTrace(); } finally { DBUtil.close(rs, state, conn); } return list; } public static List<Text> Select(String method) { String sql = "select * from policy where name = '"+method+"'"; Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接 Statement state =null; List<Text> list = new ArrayList<>(); ResultSet rs = null; int flag=0; try { state = conn.createStatement(); rs=state.executeQuery(sql); Text kc=null; while(rs.next()) { String text=rs.getString("text"); kc =new Text(text); // System.out.println(kc.toString()); list.add(kc); } // System.out.println("3"); } catch(Exception e) { e.printStackTrace(); } finally { DBUtil.close(rs, state, conn); } return list; } public static List<shu> shu() { String sql = "select * from policy_class"; Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接 Statement state =null; List<shu> list = new ArrayList<>(); ResultSet rs = null; ResultSet rs1 = null; int flag=0; try { state = conn.createStatement(); rs=state.executeQuery(sql); shu kc=null; String www="01"; int i=0; List<shu> shuList=new ArrayList<>(); int j=0; while(rs.next()) { String id=rs.getString("Type_id"); String name=rs.getString("Type_Name"); String str=id.substring(0,2); // System.out.println(str); // System.out.println(www+"wwwwwwwwwwwww"); if (str.equals(www)&&!www.equals("01")){ shu kc1=new shu(id,name); kc1.setNum(num(name)); // System.out.println(kc1+" kc1"); shuList.add(kc1); j++; // System.out.println(kc1+" kc1"); continue; } www=str; if (j!=0){ try { list.get(i-1).setSon(shuList); }catch (ArrayIndexOutOfBoundsException e){ System.out.println("只 能输 "); } j=0; shuList=new ArrayList<>(); } kc =new shu(id,name); kc.setNum(num(name)); System.out.println(num(name)); // System.out.println(kc.toString()); list.add(kc); i++; } // System.out.println("3"); } catch(Exception e) { e.printStackTrace(); } finally { DBUtil.close(rs, state, conn); } return list; } public static int num(String method) { String sql = "select * from policy where type = '"+method+"'"; Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接 Statement state =null; List<Text> list = new ArrayList<>(); ResultSet rs = null; int flag=0; try { flag=0; state = conn.createStatement(); rs=state.executeQuery(sql); while(rs.next()) { // System.out.println("我进来了"); flag++; } // System.out.println("3"); } catch(Exception e) { e.printStackTrace(); } finally { DBUtil.close(rs, state, conn); } return flag; } }
DBUtil:
package dbutil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBUtil {//这个类就是套模板如果需要用的时候只需要改数据库(db)的名字即可******* //public static String db_url="jdbc:mysql://localhost:3306/database?uerUnicode=true&characterEncoding=UTF-8"; public static String db_url="jdbc:mysql://localhost:3306/canteen?serverTimezone=GMT%2B8&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8";//db是数据库的名字 //这是连接数据库,servlet是数据库的名称,uerUnicode=true&characterEncoding=UTF-8是将字符集设置为utf-8,避免乱码。 public static String db_user="root";//数据的用户名 public static String db_password="123456";//数据库的密码 public static Connection getConn()//获取连接,返回Connection类型,必须设置为static这样才能在其他类中使用 { Connection conn=null; try { Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动 conn=DriverManager.getConnection(db_url,db_user,db_password);//连接数据库 } catch(Exception e) { e.printStackTrace(); } return conn; } public static void close(Statement state,Connection conn)//关闭函数 { if(state!=null)//只有状态和连接时,先关闭状态 { try { state.close(); } catch(SQLException e) { e.printStackTrace(); } } if(conn!=null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs,Statement state,Connection conn) { if(rs!=null)//有结果集,状态和连接时,先关闭结果集,在关闭状态,在关闭连接 { try { rs.close(); } catch(SQLException e) { e.printStackTrace(); } } if(state!=null) { try { state.close(); } catch(SQLException e) { e.printStackTrace(); } } if(conn!=null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); } } } }
ceshi:
package servlet; import bean.shu; import dao.dao; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; import java.util.List; @WebServlet("/ceshi") public class ceshi extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<shu> kc1= dao.shu(); for (shu shu : kc1) { if (shu.getSon()!=null){ int num=0; for (bean.shu shu1 : shu.getSon()) { num+=shu1.getNum(); } num+=shu.getNum(); shu.setNum(num); System.out.println("-----------------------------------"); } } request.setAttribute("kc1", kc1); request.getRequestDispatcher("/main.jsp").forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
Servlet:
package servlet; import bean.Policy; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Map; import bean.shu; import dao.*; @WebServlet("/servlet") public class Servlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { return; } protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8");// 设置字符集,避免乱码 // 获取jsp界面需要进行的操作, String method = req.getParameter("method"); if (method.equals("SelectAll"))// 转到login函数 { SelectAll(req,resp); } else if (method.equals("shu")) { shu(req,resp); } else { SelectType(req,resp,method); } } private void SelectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); String name=req.getParameter("name"); String document=req.getParameter("document"); String organ=req.getParameter("organ"); String full=req.getParameter("full"); List<Policy> kc1=dao.SelectAll(name,document,organ,full); req.setAttribute("kc", kc1); req.getRequestDispatcher("/main.jsp").forward(req, resp); } private void SelectType(HttpServletRequest req, HttpServletResponse resp,String method) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); List<Policy> kc1=dao.SelectType(method); List<shu> kc2=dao.shu(); for (shu shu : kc2) { if (shu.getSon()!=null){ int num=0; for (bean.shu shu1 : shu.getSon()) { num+=shu1.getNum(); } num+=shu.getNum(); shu.setNum(num); System.out.println("-----------------------------------"); } } req.setAttribute("kc", kc1); req.setAttribute("kc1",kc2); // System.out.println(req.getAttribute("kc")+"qqqqqqqqqq"); req.getRequestDispatcher("/main.jsp").forward(req, resp); } private void shu(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); List<shu> kc1=dao.shu(); req.setAttribute("kc", kc1); req.getRequestDispatcher("/main.jsp").forward(req, resp); } }
Servlet1:
package servlet; import bean.Policy; import bean.Text; import dao.dao; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; import java.util.List; @WebServlet("/servlet1") public class Servlet1 extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { service(request,response); } protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8");// 设置字符集,避免乱码 // 获取jsp界面需要进行的操作, System.out.println("------------------------------------------------------"); String method = req.getParameter("method1"); System.out.println(method); resp.setContentType("text/html;charset=utf-8"); System.out.println(method); List<Text> kc1=dao.Select(method); req.setAttribute("kc", kc1); // System.out.println(req.getAttribute("kc")+"qqqqqqqqqq"); req.getRequestDispatcher("/vewe.jsp").forward(req, resp); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } }
ceshi.jsp:
<%-- Created by IntelliJ IDEA. User: LLL Date: 2022/10/26 Time: 13:24 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <a href="/untitled_war_exploded/ceshi">点击链接</a> </body> </html>
main.jsp
<%-- Created by IntelliJ IDEA. User: LLL Date: 2022/10/25 Time: 14:28 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@page isELIgnored="false" %> <html> <head> <title>科技政策查询系统</title> <script src="jquery-3.6.1-min.js"></script> </head> <link rel="stylesheet" href="layui/css/layui.css" media="all"> <script src="layui/layui.js" charset="utf-8"></script> <%--<script> function fun(){ $.ajax({ url:"servlet?method=SelectAll", type:"Get", data:{"name":$("#name").val(),"document":$("#document").val(),"organ":$("#organ").val(),"full":$("#full").val()}, success:function (data) { $("#name").val(""); $("#document").val(""); $("#organ").val(""); $("#full").val(""); }, error:function (){ alert("出错了") }, successful: function (data) { }, dataType:"text" }); } </script>--%> <body> <div class="layui-layout layui-layout-admin"> <div class="layui-header" style=" padding: 0px; font-family: "Courier New", serif; font-size: inherit; line-height: 1.5; color: rgb(0, 0, 255);">> <div class="layui-logo layui-hide-xs layui-bg-black">科技政策查询系统</div> <!-- 头部区域(可配合layui 已有的水平导航) --> <ul class="layui-nav layui-layout-left"> <!-- 移动端显示 --> <li class="layui-nav-item layui-show-xs-inline-block layui-hide-md" lay-header-event="menuLeft"> <i class="layui-icon layui-icon-spread-left"></i> </li> <li class=" layui-hide-xs" style="color:deepskyblue ;vertical-align: center"> <img src="layui/LOGO.png" alt="" width="45" height="45" style="margin-bottom:4px"> <span style="padding-top: 10px;font-size: 35px">科技政策查询系统</span> </li> </ul> <ul class="layui-nav layui-layout-right"> <li class="layui-nav-item layui-hide layui-show-md-inline-block"> <a href="javascript:;"> <img src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" class="layui-nav-img"> <span style="color: black">tester</span> </a> </li> </ul> </div> <div class="layui-side layui-bg-black"> <div class="layui-side-scroll"> <!-- 左侧导航区域(可配合layui已有的垂直导航) --> <ul class="layui-nav layui-nav-tree" lay-filter="test"> <li class="layui-nav-item"> <a href="javascript:;">科技文档管理</a> <dl class="layui-nav-child"> <dd><a href="javascript:;">list 1</a></dd> <dd><a href="javascript:;">list 2</a></dd> <dd><a href="">超链接</a></dd> </dl> </li> <li class="layui-nav-item"> <a href="javascript:;">系统设置</a> <dl class="layui-nav-child"> <dd><a href="javascript:;">list 1</a></dd> <dd><a href="javascript:;">list 2</a></dd> <dd><a href="">超链接</a></dd> </dl> </li> </ul> </div> </div> <div class="layui-body"> <!-- 内容主体区域 --> <div style="width: 200px;height: 815px;float: left"> <div class="layui-panel"> <ul class="layui-menu" id="docDemoMenu1"> <c:forEach items="${kc1}" var="shu"> <c:if test="${empty shu.son}"> <li lay-options="{id: 100}"> <div class="layui-menu-body-title"><a href="/untitled_war_exploded/servlet?method=${shu.name}">${shu.name}(${shu.num})</a></div> </li> </c:if> <c:if test="${not empty shu.son}" > <li class="layui-menu-item-parent" lay-options="{type: 'parent'}"> <div class="layui-menu-body-title"> <a href="/untitled_war_exploded/servlet?method=${shu.name}"> ${shu.name}(${shu.num})</a> <i class="layui-icon layui-icon-right"></i> </div> <div class="layui-panel layui-menu-body-panel"> <ul> <c:forEach items="${shu.son}" var="shu1"> <li lay-options="{id: 1051}"> <div class="layui-menu-body-title"> <a href="/untitled_war_exploded/servlet?method=${shu1.name}"> ${shu1.name}(${shu1.num})</a> </div> </li> </c:forEach> </ul> </div> </li> </c:if> </c:forEach> </ul> </div> </div> <div style="width: 1300px;height: 75px;float: top;"> <form action="/untitled_war_exploded/servlet?method=SelectAll" method="post"> <span style="margin-top: 50px"> 项目名称 </span> <input type="text" id="name" name="name" style="margin-top: 25px;height: 25px;width: 150px;border: none" placeholder="请输入政策名称"> <span style="margin-top: 50px">发文字号 </span> <input type="text" id="document" name="document" style="margin-top: 25px;height: 25px;width: 150px;border: none" placeholder="发文字号"> <span style="margin-top: 50px">发文机构 </span> <input type="text" id="organ" name="organ" style="margin-top: 25px;height: 25px;width: 150px;border: none" > <span style="margin-top: 50px">全文检索 </span> <input type="text" id="full" name="full" style="margin-top: 25px;height: 25px;width: 150px;border: none" > <input type="submit" class="layui-btn" > </form> </div> <div style="float:top;float: right"> <%-- <iframe src="select.jsp" id="main" height="100%" width="1110px"> </iframe>--%> <div style="float:top;float: right;width: 1110px;height: 100%"> <table class="layui-table" layui-data= "{skin: even:true, } "> <tr> <th>政策名称</th> <th>发文机构</th> <th>颁布日期</th> <th>政策分类</th> <th>操作</th> </tr> <c:forEach items="${kc}" var="Policy"> <tr> <td><c:out value="${Policy.name}"></c:out> </td> <td><c:out value="${Policy.organ}"></c:out></td> <td><c:out value="${Policy.date}"></c:out></td> <td><c:out value="${Policy.type}"></c:out></td> <td><a href="/untitled_war_exploded/servlet1?method1=${Policy.name}"}><button class="layui-btn">查看</button></a></td> </tr> </c:forEach> </table> </div> </div> </div> <%--<script> <c:forEach items="${kc}" var="Text"> if (${Text.text}!=null){ } alert() </c:forEach> </script>--%> <div class="layui-footer layui-bg-black"> <!-- 底部固定区域 --> <div style="text-align: center">Copyright 1996-2022 All Rights Reserved 版权所有:河北省科学技术情报研究院 河北省科技创新战略研究院 技术支持:河北省科技信息处理实验室。</div> <%-- 底部固定区域--%> </div> </div> <script src="./layui/layui.js"></script> <script> //JS layui.use(['element', 'layer', 'util'], function(){ var element = layui.element ,layer = layui.layer ,util = layui.util ,$ = layui.$; //头部事件 util.event('lay-header-event', { //左侧菜单事件 menuLeft: function(othis){ layer.msg('展开左侧菜单的操作', {icon: 0}); } ,menuRight: function(){ layer.open({ type: 1 ,content: '<div style="padding: 15px;">处理右侧面板的操作</div>' ,area: ['260px', '100%'] ,offset: 'rt' //右上角 ,anim: 5 ,shadeClose: true }); } }); }); </script> </body> </html>
vewe.jsp:
<%-- Created by IntelliJ IDEA. User: LLL Date: 2022/10/26 Time: 13:34 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@page isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <c:forEach items="${kc}" var="Text"> ${Text.text} </c:forEach> </body> </html>