基于javaweb的邮件收发管理系统(java+ssm+jsp+jq+mysql)

基于javaweb的邮件收发管理系统(java+ssm+jsp+jq+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220819204641

20220819204642

20220819204643

20220819204644

20220819204646

20220819204647

基于javaweb+mysql的邮件收发管理系统(java+SSM+JSP+JQ+mysql)

项目介绍

本项目为基于SSM的邮件收发管理系统;

用户角色包含以下功能: 用户登录,写信给好友,查看收件箱,查看已发送的邮件,草稿箱查看,通讯录设置,个人资料管理等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中config/db.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/xx登录

管理员管理控制层:

/**

  • 管理员维护的接口

*/

@Controller

public class AdminController {

private Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired

private IUserService userService;

@Autowired

private IVerifyCodeService iVerifyCodeService;

/**

  • 用户修改密码的接口,可以直接访问

  • @param userName userName

  • @param password password

*/

@RequestMapping(“/alterPassword”)

@ResponseBody

public void alterSecret(@RequestParam String userName, @RequestParam String password) {

userService.alterPassword(userName, password);

/**

  • 根据用户名删除用户,可以直接访问

  • @param userName userName

*/

@RequestMapping(“/deleteUser”)

@ResponseBody

public void deleteUser(@RequestParam String[] userName) {

userService.deleteByUsernames(userName);

/**

  • 用户产生验证码的接口,只有特定用户可以访问

*/

@RequestMapping(value = “/registerCode”)

public ModelAndView registerCode(ModelAndView modelAndView, HttpServletRequest request) {

String username = WebUtil.getUserNameByRequest(request);

if (“sandeepin”.equals(username) || “cflower”.equals(username)) {

modelAndView.setViewName(“registerCode”);

return modelAndView;

} else {

modelAndView.setViewName(“errorPage”);

modelAndView.addObject(“message”, “没有权限生成验证码!”);

return modelAndView;

/**

  • 根据操作人的名字和要验证码人的名字来生成注册码

  • @param customName

  • @param request

  • @return

*/

@RequestMapping(value = “proRegisterCode”, produces = “application/json; charset=utf-8”)

@ResponseBody

public ResponseMsg proRegisterCode(@RequestParam String customName, HttpServletRequest request) {

String registerCode = PassWordCreate.createPassWord(6);

VerifyCode verifyCode = new VerifyCode();

verifyCode.setState(false);

verifyCode.setRegisterCode(registerCode);

verifyCode.setOperatePerson(WebUtil.getUserNameByRequest(request));

verifyCode.setDate(new Date());

verifyCode.setCustomName(customName);

boolean result = iVerifyCodeService.save(verifyCode);

ResponseMsg responseMsg = new ResponseMsg();

responseMsg.setSuccess(result);

if (result) {

responseMsg.setMsg(registerCode);

} else {

responseMsg.setMsg(“生成注册码失败,请重新操作!”);

return responseMsg;

登录管理控制层:

/**

  • 登录

  • 管理员admin

*/

@Controller

public class LoginController {

private Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired

private IUserService userService;

@Autowired

private IVerifyCodeService iVerifyCodeService;

// 登录

@RequestMapping(value = “/login”, method = RequestMethod.POST)

@ResponseBody

public Map<String, Object> login(HttpServletRequest request, HttpServletResponse response) {

Map<String, Object> map = new HashMap<>();

String userName = request.getParameter(“userName”);

String password = request.getParameter(“password”);

String encryptedPwd = “”;

try {

//加密的用户密码

encryptedPwd = Md5SaltTool.getEncryptedPwd(password);

logger.warn(“encryptedPwd:” + encryptedPwd);

} catch (NoSuchAlgorithmException e) {

logger.error(“Exception:”, e);

} catch (UnsupportedEncodingException e) {

logger.error(“Exception:”, e);

User dataBaseUser = userService.queryUserByUsername(userName);

if (dataBaseUser != null && encryptedPwd.equals(dataBaseUser.getPassWord())) {

User user = new User(userName, encryptedPwd, dataBaseUser.getLevelType(), dataBaseUser.getEmail(),

dataBaseUser.getPhone(), dataBaseUser.getAlias());

request.getSession().setAttribute(“user”, user);

logger.info(“用户登录成功!”);

map.put(“result”, “1”);

map.put(“userName”, userName);

} else if (dataBaseUser != null && !encryptedPwd.equals(dataBaseUser.getPassWord())) {

logger.info(“密码错误!”);

map.put(“result”, “2”);

} else {

logger.info(“用户不存在!”);

map.put(“result”, “0”);

return map;

// 退出登录

@RequestMapping(value = “/quit”, method = RequestMethod.GET)

public String loginOut(HttpServletRequest request) {

if (!SystemUtil.isWindows()) {

// 非windows环境下要删除用户文件

FileUtil.deleteDir(fileRootPath + WebUtil.getUserNameByRequest(request));

// 清除session

request.getSession().invalidate();

logger.info(“退出登录成功!”);

return “login”;

// 注册

@RequestMapping(value = “/signin”, method = RequestMethod.POST)

@ResponseBody

public Map<String, Object> signin(@RequestParam(required = false) String alias,

@RequestParam(required = true) String userName, @RequestParam(required = true) String password,

@RequestParam(required = false) String regcode, @RequestParam(required = false) String email,

@RequestParam(required = false) String phone, HttpServletRequest request, HttpServletResponse response) {

Map<String, Object> map = new HashMap<>();

String encryptedPwd = “”;

try {

//加密的用户密码

encryptedPwd = Md5SaltTool.getEncryptedPwd(password);

} catch (NoSuchAlgorithmException e) {

logger.error(“NoSuchAlgorithmException:”, e);

} catch (UnsupportedEncodingException e) {

logger.error(“UnsupportedEncodingException:”, e);

User dataBaseUser = userService.queryUserByUsername(encryptedPwd);

//regcode的重新写入

if (!iVerifyCodeService.isValid(regcode)) {

logger.info(“注册失败,激活码失效或不正确!”);

map.put(“result”, “2”);

return map;

} else {

if (dataBaseUser == null) {

User user = new User(userName, encryptedPwd, “0”, email, phone, alias);

userService.add(user);

logger.info(“账号注册成功!”);

map.put(“result”, “1”);

} else {

logger.info(“用户已经存在,请登录或换一个用户名!”);

map.put(“result”, “0”);

return map;

@RequestMapping(value = “/username”, produces = “application/json; charset=utf-8”)

@ResponseBody

public ResponseMsg fileRename(HttpServletRequest request) {

ResponseMsg j = new ResponseMsg();

// 获取用户名

User user = (User) request.getSession().getAttribute(“user”);

String userName = user.getUserName();

if (userName == null) {

userName = “null”;

j.setMsg(userName);

j.setSuccess(true);

return j;

@RequestMapping(value = “/getUserByUserName”)

@ResponseBody

public User getUserByUserName(HttpServletRequest request) {

User user = (User) request.getSession().getAttribute(“user”);

return user;

//更新当前用户信息

@RequestMapping(value = “/updateUserByUserName”)

@ResponseBody

public ResponseMsg updateUserByUserName(@RequestParam(required = false) String username,

@RequestParam(required = false) String alias, @RequestParam(required = false) String password,

@RequestParam(required = false) String email, @RequestParam(required = false) String phone,

HttpServletRequest request) {

ResponseMsg j = new ResponseMsg();

User user = (User) request.getSession().getAttribute(“user”);

if (username != null) {

user.setUserName(username);

if (alias != null) {

user.setAlias(alias);

if (password != null) {

try {

String encryptedPwd = Md5SaltTool.getEncryptedPwd(password);

user.setPassWord(encryptedPwd);

} catch (NoSuchAlgorithmException e) {

logger.error(“NoSuchAlgorithmException:”, e);

} catch (UnsupportedEncodingException e) {

logger.error(“UnsupportedEncodingException:”, e);

if (email != null) {

user.setEmail(email);

if (phone != null) {

user.setPhone(phone);

userService.update(user);

j.setMsg(“更新用户信息成功!”);

j.setSuccess(true);

return j;

//检查是否是登录状态

@RequestMapping(value = “/islogin”)

@ResponseBody

public ResponseMsg isLogin(@RequestParam(required = false) String savePath, HttpServletRequest request) {

if (savePath == null) {

savePath = “/”;

ResponseMsg j = new ResponseMsg();

// 获取用户名

User user = (User) request.getSession().getAttribute(“user”);

if (user == null) {

//未登录,跳转到登录界面,登录之后默认保存到网盘连接的地址链接到app

j.setMsg(“未登录”);

j.setSuccess(false);

} else {

j.setMsg(“已登录”);

j.setSuccess(true);

return j;


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
网选课系统是一个非常实用的系统,可以方便学生进行选课操作,也可以方便教师进行课程管理。下面是一个基于JavaWeb的网上选课系统的设计思路: 1. 系统架构 该系统采用 B/S 架构,即浏览器/服务器架构。前端使用 HTML、CSS、JavaScript 和 JQuery,后端使用 Java+SSM 框架和 MySQL 数据库。 2. 系统功能 (1)学生模块:学生可以登录系统后进行选课操作,查看已选课程,并对已选课程进行退选操作。 (2)教师模块:教师可以登录系统后进行课程管理操作,包括添加课程、修改课程、删除课程等操作。 (3)管理员模块:管理员可以登录系统后对学生和教师进行管理,包括添加学生、添加教师、修改学生信息、修改教师信息等操作。 (4)公告管理:管理员可以发布公告,学生和教师可以浏览公告。 (5)选课规则管理:管理员可以设置选课规则,例如每个学生最多选择多少门课程,每门课程最多选多少人等。 3. 数据库设计 该系统需要设计以下数据库表: (1)学生表:包括学生编号、学生姓名、学生性别、学生年龄、所在班级等字段。 (2)教师表:包括教师编号、教师姓名、教师性别、所教课程、教龄等字段。 (3)课程表:包括课程编号、课程名称、授课教师、上课时间、选课人数等字段。 (4)选课记录表:包括学生编号、课程编号等字段。 (5)公告表:包括公告编号、公告内容、发布时间等字段。 4. 技术实现 该系统采用 Java+SSM 框架进行实现,其中: (1)后端技术:采用 SpringMVC 框架进行控制器的开发,采用 MyBatis 框架进行数据库操作。 (2)前端技术:采用 HTML、CSS、JavaScript 和 JQuery 进行页面布局和交互效果的实现。 (3)数据库技术:采用 MySQL 数据库进行数据存储和管理。 5. 总结 网上选课系统是一个非常实用的系统,它可以方便学生进行选课操作,也可以方便教师进行课程管理。该系统采用 B/S 架构,采用 Java+SSM 框架进行开发,实现了学生模块、教师模块、管理员模块、公告管理和选课规则管理等功能。在实现时需要注意数据库表的设计和技术实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值