獎學金公示系統初步完成

前端界面html

前端
搜索結果界面 (搜索軟件專業學生)前端

圖片描述

技術要點

  • jsp
  • mysql
  • HTML

開發過程

  • 網上自學jsp基本語法
  • 搭建環境java

    • eclipse安裝java EE,建立web工程
    • 安裝mysql建立數據庫
    • 安裝apache tomcat服務器在電腦上,學習基本使用方法
    • 下載安裝連接器mysql-connector-java, 放在項目Java Resources/Libraries 中
  • mysql中新建數據庫,數據表(並設爲主要工做表),導入csv文件mysql

    • 設4列,分別爲 id, college, name,type.
  • 基本思路git

    • 爲方便寫代碼,添加sql以及c標籤庫,到web app libraries中。
<%@ 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

附:sql條件查詢的tips

圖片描述

相關文章
相關標籤/搜索