奖学金公示系统初步完成

前端界面

前端
搜索结果界面 (搜索软件专业学生)

图片描述

技术要点

  • 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

图片描述

1.学生需求 学生既是综合测评的对象,也是综合测评的主体。学生可以查询并维护自己的个人档案,同时参加其他同学的综合测评。学生对功能上的需求主要有: (1) 查询学校、学院、班级发布的种类消息和公告; (2) 查询课程信息和考试成绩; (3) 更新和维护自己的个人信息,查看其他同学的信息; (4) 查询自己的测评结果,查看本班测评结果统计信息。 2.管理员需求 管理员按身份级别可分为班委(测评小组)、辅导员、系统管理员四种级别。管理员除具备学生需求的功能外,按照不同身份还具备以下不同的权限。 (1) 班委:学生个人信息的录入和修改,各学期课程信息的录入和修改,学生综合测评结果的统计和修改。操作权限范围是本班同学。 (2) 辅导员:辅导员除了具备班委的权限外,还要负责对学生奖惩情况的核实,相关数据的维护。操作权限范围是本学院全体学生。 (3) 系统管理员:系统与管理员负责系统的管理维护,除具备上述所有功能外,管理员还负责数据备份与恢复、人员管理、权限设置等。 1.3.2系统子功能需求分析 本系统包括学生用户管理,数据库管理,学生信息管理,统计分析,报表的生成。根据所需功能要求包括以下的功能模块。 学生信息的管理:包括对学生信息的查询,修改,删除等更新。 课程信息的管理:对学生选修课程信息的查询,修改和删除等更新。 成绩信息的管理:对学生成绩信息的查询,修改和删除等更新。 统计分析:对成绩的分类统计,加以整合,以便得出综合评分标准。 报表生成:对评奖结果及其所需要的信息生成报表。 大概的子功能图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值