项目介绍
本项目分为前后台,前台为普通用户登录,后台为管理员登录;
用户角色包含以下功能:
按分类查看场地,用户登录,查看网站公告,按分类查看器材,查看商品详情,加入购物车,提交订单,查看订单,修改个人信息等功能。
管理员角色包含以下功能:
管理员登录,管理员信息管理,用户信息管理,新闻公告信息管理,实体类型信息管理,场地信息管理,器材信息管理,评价信息管理等功能。
环境需要
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项目:否;
技术栈
- 后端:Spring+SpringMVC+Mybatis
- 前端:JSP+CSS+JavaScript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
- 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; - 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;
- 运行项目,在浏览器中输入http://localhost:8080/ 登录
用户账号/密码: user/123456
管理员账号/密码:admin/admin
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
return "redirect:/user22";
}else{
// System.out.println("密码错误!");
map.put("msg","账号密码错误,请重新输入账号和密码!");
return "Login";
}
}else {
map.put("msg","请输入账号or密码!");
return "Login";
}
}
/*resetpwd
* 点击确认修改密码并且返回登陆页面*/
@PutMapping("/resetpwd")
public String backLogin(@RequestParam("managername") String managername1,
@RequestParam("managerpwd") String managerpwd1,
Map<String,Object> map){
if(!c) {
return Msg.fail().add("va_msg", "用户名可以是2-5位中文,或者6-16位英文和数字的组合");
}
//数据库用户名重复校验
boolean b = userService.checkUserName(userName);
if(b) {
return Msg.success().add("va_msg", "用户名可用");
}else {
return Msg.fail().add("va_msg", "用户名已存在");
}
}
/*校验手机号码格式*/
@RequestMapping("/checkAddTel")
@ResponseBody
public Msg checkAddTel(@RequestParam(value = "usertel")String userTel1) {
String userTel = userTel1.trim();
String regex = "(^1\\d{10}$)";
boolean matches = userTel.matches(regex);
if(matches == true){
return Msg.success().add("va_msg","");
}else{
return Msg.fail().add("va_msg","手机号必须以1开头,11位的数字!");
}
return "ForgotPassword2";
}
@RequestMapping("/logout")
public String toLoginPage(HttpSession session){
Enumeration<String> attributeNames = session.getAttributeNames();
while (attributeNames.hasMoreElements()) {
session.removeAttribute(attributeNames.nextElement());
}
return "Login";
}
//进入重置密码页面
@RequestMapping("/register")
public String toRegisterPage(){
return "Register";
}
//登陆和忘记密码==》检查用户名是否存在
@GetMapping("/checkLoginManagerName")
@ResponseBody
boolean c = userName.matches(regex);
if(!c) {
return Msg.fail().add("va_msg", "用户名可以是2-5位中文,或者6-16位英文和数字的组合");
}
//数据库用户名重复校验
boolean b = userService.checkUserName(userName);
if(b) {
return Msg.success().add("va_msg", "用户名可用");
}else {
return Msg.fail().add("va_msg", "用户名已存在");
}
}
/*校验手机号码格式*/
@RequestMapping("/checkAddTel")
@ResponseBody
public Msg checkAddTel(@RequestParam(value = "usertel")String userTel1) {
String userTel = userTel1.trim();
String regex = "(^1\\d{10}$)";
boolean matches = userTel.matches(regex);
if(matches == true){
return Msg.success().add("va_msg","");
}else{
return Msg.fail().add("va_msg","手机号必须以1开头,11位的数字!");
}
}
}
//进入重置密码页面
@RequestMapping("/register")
public String toRegisterPage(){
return "Register";
}
//登陆和忘记密码==》检查用户名是否存在
@GetMapping("/checkLoginManagerName")
@ResponseBody
public Msg checkLoginManagerName(@RequestParam("managername") String managername1){
String managername = managername1.trim();
String regex = "(^[a-zA-Z0-9_-]{6,16}$)|(^[\\u2E80-\\u9FFF]+$)";
boolean c = managername.matches(regex);
if(!c) {
return Msg.fail().add("va_msg", "用户名是2-5位中文,或者6-16位英文和数字的组合");
}
boolean b = managerService.checkManagerName(managername);
if (b==true){
return Msg.fail().add("va_msg","用户名不存在!");
}else {
return Msg.success().add("va_msg","");
}
}
}else {
map.put("msg","账号或新密码为空,请输入!");
return "ForgotPassword2";
}
}
}
用户管理控制层:
@Controller
public class UserController {
@Autowired
UserServiceImpl userService;
/*
* queryUserlike 通过用户姓名进行模糊查询
* */
@GetMapping("/queryUserlike/{username}")
@ResponseBody
public Msg queryUserlikeId(@RequestParam(value = "pn",defaultValue = "1") Integer pn,
public Msg checkLoginManagerName(@RequestParam("managername") String managername1){
String managername = managername1.trim();
String regex = "(^[a-zA-Z0-9_-]{6,16}$)|(^[\\u2E80-\\u9FFF]+$)";
boolean c = managername.matches(regex);
if(!c) {
return Msg.fail().add("va_msg", "用户名是2-5位中文,或者6-16位英文和数字的组合");
}
boolean b = managerService.checkManagerName(managername);
if (b==true){
return Msg.fail().add("va_msg","用户名不存在!");
}else {
return Msg.success().add("va_msg","");
}
}
//注册检查用户名是否存在
@GetMapping("/checkManagerName")
@ResponseBody
public Msg checkManagerName(@RequestParam("managername") String managername1){
String managername = managername1.trim();
String regex = "(^[a-zA-Z0-9_-]{6,16}$)|(^[\\u2E80-\\u9FFF]+$)";
boolean c = managername.matches(regex);
if(!c) {
return Msg.fail().add("va_msg", "用户名可以是2-5位中文,或者6-16位英文和数字的组合");
}
boolean b = managerService.checkManagerName(managername);
int i = managerService.updateUserPwd(managername,managerpwd);
map.put("msg","reset success!");
if(i>0){
return "redirect:/share.html";
}else {
return "ForgotPassword";
}
}
}else {
map.put("msg","账号或新密码为空,请输入!");
return "ForgotPassword";
}
}
@PutMapping("/resetpwd2")
public String backLogin2(@RequestParam("managername") String managername1,
@RequestParam("managerpwd") String managerpwd1,
Map<String,Object> map){
}
/*校验年龄码格式*/
@RequestMapping("/checkAddAge")
@ResponseBody
public Msg checkAddAge(@RequestParam(value = "userage")Integer userAge1) {
String s = userAge1.toString();
String userTel = s.trim();
String regex = "(^\\d{1,3}$)";
boolean matches = userTel.matches(regex);
if(matches == true){
return Msg.success().add("va_msg","");
}else{
return Msg.fail().add("va_msg","请输入数字");
}
if (managername != "" && managerpwd != ""){
boolean tel = managerService.checkManagerName(managername);
if(tel == true){
map.put("msg","账号不存在,请重新输入!");
return "ForgotPassword";
}else {
int i = managerService.updateUserPwd(managername,managerpwd);
map.put("msg","reset success!");
if(i>0){
return "redirect:/share.html";
}else {
return "ForgotPassword";
}
}
String managerpwd = managerpwd1.trim();
String regex = "(^[a-zA-Z0-9_-]{6,16}$)";
boolean matches = managerpwd.matches(regex);
if(matches == true){
return Msg.success().add("va_msg"," ");
}else{
return Msg.fail().add("va_msg","密码格式不正确:必须超过6位,小于16位!");
}
}
/*新增管理员
**/
@PostMapping("/registerManager")
public String registerManger(Manager manager,Map<String,Object> map){
manager.setManagerid(null);
boolean flag = managerService.createManager(manager);
if(flag == true){
map.put("msg","插入成功!");
return "redirect:share.html";
}else{
map.put("msg","插入失败!");