SSM到Spring Boot 从零开发校园商铺平台11-13到11-15拦截器的实现以及定期备份数据的讲解以及代码

本文详细介绍如何在Spring框架下实现店铺权限验证拦截器,包括登录验证和操作权限检查的具体代码实现。同时,分享了定期备份数据库和图片资源的Shell脚本及Cron定时任务配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、添加拦截器的实现以及代码

  这里主要实现登录验证,实现店铺权限验证,掌握拦截过滤,使用springAOP的功能来实现,在spring-web.xml中实现权限拦截器的功能。

<!-- 5.权限拦截器 -->
	<mvc:interceptors>
	<!-- 校验是否已登录了店家管理系统的拦截器 -->
		<mvc:interceptor>
			<mvc:mapping path="/shopadmin/**" />
			<bean id="ShopInterceptor" class="com.imooc.o2o.interceptor.shopadmin.ShopLoginInterceptor" />
		</mvc:interceptor>
		<!-- 校验是否对该店铺有操作权限的拦截器 -->
		<mvc:interceptor>
			<mvc:mapping path="/shopadmin/**" />
			<!-- shoplist page -->
			<mvc:exclude-mapping path="/shopadmin/shoplist" />
			<mvc:exclude-mapping path="/shopadmin/getshoplist" />
			<!-- shopregister page -->
			<mvc:exclude-mapping path="/shopadmin/getshopinitinfo" />
			<mvc:exclude-mapping path="/shopadmin/registershop" />
			<mvc:exclude-mapping path="/shopadmin/shopoperation" />
			<!-- shopmanage page -->
			<mvc:exclude-mapping path="/shopadmin/shopmanagement" />
			<mvc:exclude-mapping path="/shopadmin/getshopmanagementinfo" />
			<bean id="ShopPermissionInterceptor"
				class="com.imooc.o2o.interceptor.shopadmin.ShopPermissionInterceptor" />
		</mvc:interceptor>
	</mvc:interceptors>

  校验店家管理系统登录验证拦截器

package com.imooc.o2o.interceptor.shopadmin;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.imooc.o2o.entity.PersonInfo;
/**
 * 店家管理系统登录验证拦截器
 * @author acer
 *
 */
public class ShopLoginInterceptor extends HandlerInterceptorAdapter {
	/**
	 * 主要做事前拦截,即用户操作发生前,改写perhandle里的逻辑进行拦截
	 */
	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		//从session中取出用户信息来
		Object userObj = request.getSession().getAttribute("user");
		if (userObj != null) {
			//若用户信息不为空,则将session里的用户信息转换成personInfo实体类对象
			PersonInfo user = (PersonInfo) userObj;
			//做空值判断,确保userid不为空并且该账号的可用状态为1,并且用户类型为店家
			if (user != null && user.getUserId() != null
					&& user.getUserId() > 0 && user.getEnableStatus() == 1)
				//若通过验证则返回true,拦截器返回true之后,用户接下来的操作得以正常进行
				return true;
		}
		//r若不满足登录验证,则直接跳转到账号登录页面
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<script>");
		out.println("window.open ('" + request.getContextPath()
				+ "/local/login?usertype=2','_self')");
		out.println("</script>");
		out.println("</html>");
		return false;
	}
}

  校验是否对该店铺有操作权限的拦截器

package com.imooc.o2o.interceptor.shopadmin;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.imooc.o2o.entity.Shop;
/**
 * 店家管理系统操作验证拦截器
 * @author acer
 *
 */
public class ShopPermissionInterceptor extends HandlerInterceptorAdapter {
	/**
	 * 主要做事前拦截,即用户操作发生前,改写perhandle里的逻辑,进行用户操作权限的拦截
	 */
	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		//从session中获取当前选择的店铺
		Shop currentShop = (Shop) request.getSession().getAttribute(
				"currentShop");
		@SuppressWarnings("unchecked")
		//从session中获取当前用户可操作的店铺列表
		List<Shop> shopList = (List<Shop>) request.getSession().getAttribute(
				"shopList");
		//非空判断
		if (currentShop != null && shopList != null) {
			//遍历可以操作的店铺列表
			for (Shop shop : shopList) {
				//如果当前店铺在可操作的列表里则返回true,进行接下来的用户操作
				if (shop.getShopId() == currentShop.getShopId()) {
					return true;
				}
			}
		}
		//若不满足拦截器的验证则返回false终止用户操作的执行
		return false;
	}
}

二、定期备份数据的实现以及代码

定期备份数据
在root下面建立一个backup的文件夹
在建立两个文件夹 分别用来存储sql和image
mkdir sql mkdir image
首先备份sql的文件
cd sql
mysqldump -uroot -p密码 o2o > /root/backup/sql/o2odate +%Y%m%d%H%M%S.sql
这个`符号是数字1旁边的那个键

下面是image的备份
首先查看图片的路径 我的图片的路径是 cd /D:/image/o2o
然后执行 tar -zcvf /root/backup/image/imagedate +%Y%m%d%H%M%S.tar.gz /D:/image/o2o/upload

创建一个sh文件
把上面的两个备份的语句写入其中
然后执行
执行sh文件
使用sh backup.sh

下面就是要定期执行这个sh文件
crontab -l 查看定期执行的文件
crontab -e 编辑
tail -f /var/log/cron 查看定期执行情况
在线cron表达式生成器
你需要的隔多少时间备份 然后 在加上路径 sh /root/backup/backup.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值