失物招领信息管理系统1拥有两种角色,分别为管理员和用户,具体功能如下:
管理员:招领信息管理、寻物信息管理、留言信息管理、申请信息管理、物品类型管理、学生管理、管理员管理、公告管理
用户:招领信息查看与发布、寻物信息查看与发布、留言查看与发布,个人信息查看及修改
失物招领信息管理系统是一款方便用户报告丢失物品并帮助找回的在线工具,提供快速的信息发布、搜索和匹配功能。通过该系统,失主可及时登记丢失物品信息,而拾到者可主动上传所拾物品,提高失物归还率,助力社区互助与诚信建设。
后端框架:JFinal、 Servlet、mvc模式
前端框架:FreeMarker、html、css、JavaScript、JQuery
JFinal是一个基于Java语言的轻量级Web框架,它可以帮助开发者快速搭建Web应用程序。JFinal将Servlet API、Spring和MyBatis等技术进行整合,使得开发者能够更加高效地开发Web应用。JFinal还提供了丰富的插件和工具类,简化了开发过程,提高了开发效率。同时,JFinal还支持多种数据库访问方式,包括ORM、SQL语句等,方便开发者根据需求选择合适的访问方式。
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
管理员和用户均可以通过此界面登录至系统,前端会自动校验信息
jdbcUrl=jdbc:mysql://localhost:3306/lostandfound?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
user=root
password=root
devMode=true
showSql=true
package controller;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.kit.Kv;
import com.jfinal.kit.LogKit;
import com.jfinal.plugin.activerecord.Db;
import interceptor.LoginValidator;
import model.*;
import java.util.List;
public class MainController extends Controller {
public void index() {
renderFreeMarker("login.ftl");
}
public void register() {
renderFreeMarker("register.ftl");
}
public void Stu_Register() {
String stuName = getPara("stuName");
String password = getPara("password");
String gender = getPara("gender");
String email = getPara("email");
String tel = getPara("tel");
String QQ = getPara("QQ");
String major = getPara("major");
int stuId = getParaToInt("stuId");
Student student = new Student();
student.setStuId(stuId);
student.setStuName(stuName);
student.setGender(gender);
student.setEmail(email);
student.setQQ(QQ);
student.setTel(tel);
student.setMajor(major);
student.setPassword(password);
boolean success = false;
try {
student.save();
success = true;
} catch (Exception e) {
LogKit.error("用户注册失败,原因是:" + e.getMessage());
}
String message = success ? "success" : "failed";
Kv result = Kv.by("success", success).set("message", message);
renderJson(result);
}
public void login() {
renderFreeMarker("login.ftl");
}
@Before(LoginValidator.class)
public void loginCheck() {
String username = getPara("username");
String password = getPara("password");
String usertype = getPara("usertype");
boolean success = false;
int flag = 0;
if (usertype.equals("1")){
String sql_stu = Db.getSql("check_login_stu");
List students = Student.dao.find(sql_stu, username, password);
System.out.println("1");
if (students.size() != 0) {
System.out.println("2");
setSessionAttr("user", students.get(0));
success = true;
flag = 1;
} else {
setAttr("errmsg", "用户名或密码错误");
}
}else if(usertype.equals("2")){
String check_login_admin = Db.getSql("check_login_admin");
List admin = Admin.dao.find(check_login_admin, username, password);
System.out.println("size"+admin.size());
if (admin.size() != 0) {
setSessionAttr("user", admin.get(0));
success = true;
flag = 2;
} else {
setAttr("errmsg", "用户名或密码错误");
}
}
String message = success ? "登录成功" : "登录失败,密码或者用户名错误";
Kv result = Kv.by("success", success).set("message", message).set("flag", flag);
renderJson(result);
}
public void logout() {
removeSessionAttr("users");
redirect("/login");
}
}
点击这里播放视频