前端界面html
搜索結果界面 (搜索軟件專業學生)前端
搭建環境java
mysql中新建數據庫,數據表(並設爲主要工做表),導入csv文件mysql
基本思路git
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
jsp中鏈接數據庫web
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/Scholarship?useUnicode=true&characterEncoding=utf-8" user="root" password="xxx"/> <c:set var="SiteId" value="3"/>
java代碼提取查詢字符串中的年份正則表達式
<%! /* 從字符串提取數字 */ public String getNumbers(String content) { Pattern pattern = Pattern.compile("\\d+"); Matcher matcher = pattern.matcher(content); while (matcher.find()) { return matcher.group(0); } return ""; } %> <% request.setCharacterEncoding("utf-8"); String content = request.getParameter("content"); // 默認爲查詢當前年份 Calendar now = Calendar.getInstance(); int year=now.get(Calendar.YEAR); // 若指定年份,則提取查詢字符串中的數字做爲年份 String str_digit = getNumbers(content); if (str_digit.length()>0){ year = Integer.valueOf(str_digit); } // 去除查詢字符串中的數字 content = content.replaceAll("\\d+", ""); %>
sql查詢 獲取到的前端搜索框中的關鍵字sql
<sql:query dataSource="${snapshot}" var="result"> <!-- request.getParameter獲取搜索的關鍵字,名稱要與html中定義的相同 SELECT * 表明選擇數據表中全部rows WHERE XXX LIKE '%xxx%'爲正則表達式中,起到contains的做用。 --> SELECT * FROM Scholarship.`<%=year %>` WHERE name LIKE '%<%=content %>%' OR type LIKE '%<%=content %>%' OR college LIKE '%<%=content %>%' ORDER BY id; </sql:query>
將查詢結果以表格形式顯示在界面上數據庫
<table border="1" width="100%"> <tr> <th>序號</th> <th>院系</th> <th>姓名</th> <th>類別</th> </tr> <c:forEach var="row" items="${result.rows}" varStatus="status"> <!-- 表格隔行背景色變化,文字居中 status.count爲循環計數值--> <tr <c:if test="${status.count%2==0}">bgcolor="#CCCCFF"</c:if> align="center"> <td><c:out value="${status.count}"></c:out></td> <td><c:out value="${row.college}"/></td> <td><c:out value="${row.name}"/></td> <td><c:out value="${row.type}"/></td> </tr> </c:forEach> </table>
到此,基本完成,接下來就是美化搜索結果界面以及接入學校數據庫啦。apache