首页 > 其他 > 详细

奖学金公示系统初步完成

时间:2020-01-18 23:09:52      阅读:106      评论:0      收藏:0      [点我收藏+]

前端界面

技术分享图片
搜索结果界面 (搜索软件专业学生)

技术分享图片

技术要点

  • jsp
  • mysql
  • HTML

开发过程

  • 网上自学jsp基本语法
  • 搭建环境

    • eclipse安装java EE,创建web工程
    • 安装mysql创建数据库
    • 安装apache tomcat服务器在电脑上,学习基本使用方法
    • 下载安装链接器mysql-connector-java, 放在项目Java Resources/Libraries 中
  • mysql中新建数据库,数据表(并设为主要工作表),导入csv文件

    • 设4列,分别为 id, college, name,type.
  • 基本思路

    • 为方便写代码,添加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中连接数据库

<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: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>

到此,基本完成,接下来就是美化搜索结果界面以及接入学校数据库啦。

附:sql条件查询的tips

技术分享图片

奖学金公示系统初步完成

原文:https://www.cnblogs.com/10manongit/p/12210331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!