2018年4月19日更新
* 班级论坛 同一个专业并且同班的同学能在论坛里自由发帖点赞(beta)* 班级成员系统 能够发现和自己同班的同学 (在设置成公开的情况下)能看到同班同学的资料以及自我介绍
学习了Spring Spring-MVC 和 MyBatis整合 制作了一个学生助手 欢迎大家交流分享经验
基本介绍
- IDE : Intellij IDEA
- 语言:Java
- 数据库:MySQL
- 项目管理:Maven
- 爬虫:Jsoup
- 使用Spring + Spring-MVC + MyBatis整合
- 在用户的登录等地方使用JQuery的$Ajax异步调用(不得不说Ajax真的好用 特别是jQuery)
基本功能
- 用户的登录与注册
- 设置课程表,首页显示当天课程
- 爬取校园学生通知
http://my.dlmu.edu.cn/student/oaxstz.h
并且显示详情页面 - 设置考试倒计时功能,首页显示前五条考试安排
- 个人备忘录,可在设置首页置顶
- 学生信息的修改,密码修改
- 班级论坛 同一个专业并且同班的同学能在论坛里自由发帖点赞(beta)
- 班级成员系统 能够发现和自己同班的同学 (在设置成公开的情况下)能看到同班同学的资料以及自我介绍
如何使用本项目
- 项目地址点击打开链接 欢迎fork和star follow 一起学习交流
- 下载本项目或者使用
git clone https://github.com/Crearns/studenthelper.git
命令 - 打开Intellij IDEA - import project - /pom.xml
- 导入database.sql
- 设置Tomcat后即可使用(有任何问题疑问可以在下面留言哦)
部分代码
Jsoup爬虫爬取校园学生通知 http://my.dlmu.edu.cn/student/oaxstz.h
有了Jsoup 能让我们爬取内容变得很简单,以爬取我校学生通知并且以集合保存下来为例
package com.cms.Action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.cms.Entity.Inform;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class InformDigger {
public List<Inform> getInform() throws Exception{
List<Inform> informs = new ArrayList<Inform>();
Document doc = Jsoup.connect("http://my.dlmu.edu.cn/student/oaxstz.h?pageNo=1").get();
Elements content = doc.select("table").get(4).select("a");
for (int i = 0; i < 20; i++) {
//System.out.println("http://my.dlmu.edu.cn" + content.get(i).attr("href") + " --- " + content.get(i).attr("title"));
informs.add(this.getInform("http://my.dlmu.edu.cn" + content.get(i).attr("href")));
}
return informs;
}
public Inform getInform(String url) throws Exception{
Inform inform = new Inform();
Document doc = Jsoup.connect(url).get();
Elements title = doc.getElementsByClass("ctitle1");
Elements info = doc.getElementsByClass("ctitleinfo");
Elements pbox = doc.getElementsByClass("pbox");
inform.setTitle(title.text());
inform.setInfo(info.text());
inform.setPbox(pbox.text());
return inform;
}
}
Ajax进行异步调用Controller,jQuery的Ajax比JavaScript原生Ajax方便 代码量也变小了(想看JavaScript原生Ajax可以看以前的图书馆项目点击打开链接) 下面以登录判断为例
function login(that) {
var username = $("#username").val();
var password = $("#password").val();
if(username == "" || password == ""){
$("#msg").text("请输入用户名或密码");
return false;
}
$.ajax({
data: {
username:$("#username").val(),
password:$("#password").val()
},
type: "post",
url: "/checklogin",
dataType: "json",
error: function (data) {
alert("系统错误 请重试");
$(that).removeClass("processing");
},
success: function (response) {
$(that).removeClass("processing");
if (response == "error") {
$("#msg").text("用户名或密码错误");
} else {
window.location.href = "/login";
}
}
});
}