网站建设教程免费湖南岚鸿,天津搜索引擎推广系统,网站建设对企业重要性,唐山app开发公司作者主页#xff1a;源码空间codegym 简介#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍
系统有管理员、房东和用户
【主要功能】 1、后台#xff1a;房源管理、信息审批管理、订单信息管理、房东管理、用户管理 2、前台#xff1… 作者主页源码空间codegym 简介Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍
系统有管理员、房东和用户
【主要功能】 1、后台房源管理、信息审批管理、订单信息管理、房东管理、用户管理 2、前台注册登录、寻找房源、租赁、收藏、个人中心
管理员管理房东和用户对房东提交的信息审批信息进行审核审核房东发布的房源信息。房东提交信息审批信息发布房源信息审核用户租房订单。用户收藏房屋租用房屋支付租房订单。
环境要求
1.运行环境最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境Tomcat7.x,8.X,9.x版本均可
4.硬件环境windows7/8/10 4G内存以上或者Mac OS;
5.是否Maven项目是查看源码目录中是否包含pom.xml;若包含则为maven项目否则为非maven.项目
6.数据库MySql5.7/8.0等版本均可
技术栈
运行环境jdk8 tomcat9 mysql5.7 windows10
服务端技术SpringBoot MyBatis Vue Bootstrap jQuery
使用说明
1.使用Navicati或者其它工具在mysql中创建对应sq文件名称的数据库并导入项目的sql文件
2.使用IDEA/Eclipse/MyEclipse导入项目修改配置运行项目
3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置然后运行
运行指导
idea导入源码空间站顶目教程说明(Vindows版)-ssm篇
http://mtw.so/5MHvZq
源码地址http://codegym.top
运行截图
文档截图 项目截图 代码
package com.interceptor;import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;import com.annotation.IgnoreAuth;
import com.entity.EIException;
import com.entity.TokenEntity;
import com.service.TokenService;
import com.utils.R;/*** 权限(Token)验证*/
Component
public class AuthorizationInterceptor implements HandlerInterceptor {public static final String LOGIN_TOKEN_KEY Token;Autowiredprivate TokenService tokenService;Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String servletPath request.getServletPath();if(/dictionary/page.equals(request.getServletPath()) || /file/upload.equals(request.getServletPath()) || /yonghu/register.equals(request.getServletPath()) ){//请求路径是字典表或者文件上传 直接放行return true;}//支持跨域请求response.setHeader(Access-Control-Allow-Methods, POST, GET, OPTIONS, DELETE);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Credentials, true);response.setHeader(Access-Control-Allow-Headers, x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization);response.setHeader(Access-Control-Allow-Origin, request.getHeader(Origin));IgnoreAuth annotation;if (handler instanceof HandlerMethod) {annotation ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);} else {return true;}//从header中获取tokenString token request.getHeader(LOGIN_TOKEN_KEY);/*** 不需要验证权限的方法直接放过*/if(annotation!null) {return true;}TokenEntity tokenEntity null;if(StringUtils.isNotBlank(token)) {tokenEntity tokenService.getTokenEntity(token);}if(tokenEntity ! null) {request.getSession().setAttribute(userId, tokenEntity.getUserid());request.getSession().setAttribute(role, tokenEntity.getRole());request.getSession().setAttribute(tableName, tokenEntity.getTablename());request.getSession().setAttribute(username, tokenEntity.getUsername());return true;}PrintWriter writer null;response.setCharacterEncoding(UTF-8);response.setContentType(application/json; charsetutf-8);try {writer response.getWriter();writer.print(JSONObject.toJSONString(R.error(401, 请先登录)));} finally {if(writer ! null){writer.close();}}
// throw new EIException(请先登录, 401);return false;}
}