【JAVA EE#6】【传智书城·源码阅读】后台管理模块:权限控制+页面分析+商品管理+销售榜单+订单管理+公告管理+项目结构思维导图

本文详细介绍了JAVA EE后台管理模块的权限控制机制,页面分析,商品管理,销售榜单,订单管理和公告管理等功能。通过源码阅读,揭示了权限过滤、页面构建、数据查询、文件下载及事务管理等关键操作。分析了jsp和Servlet技术在大型项目中的应用,强调了学习后端技术的重要性。
摘要由CSDN通过智能技术生成

权限控制
普通用户只能访问client文件夹下面的jsp文件,对于没有权限操作的admin文件夹就会提示错误,而超级用户同时可以访问两者,一直很好奇这个权限限制怎么实现的。
在这里插入图片描述
原来在存在一个AdminPrivilegeFilter类继承自过滤器Fliter,获取Sessionrole属性对此进行的管制:

// 1 强制转换
		HttpServletRequest request = (HttpServletRequest) req;
		HttpServletResponse response = (HttpServletResponse) resp;

		// 2判断是否具有权限
		User user = (User) request.getSession().getAttribute("user");

		if (user != null && "超级用户".equals(user.getRole())) {
   
			// 3.放行
			chain.doFilter(request, response);
			return;
		}

		response.sendRedirect(request.getContextPath() + "/error/privilege.jsp");

并在web.xml注册信息里面对所有访问进行了拦截:

<filter>
		<filter-name>adminPrivilegeFilter</filter-name>
		<filter-class>cn.itcast.itcaststore.web.filter.AdminPrivilegeFilter</filter-class>
</filter>
<filter-mapping>
		<filter-name>adminPrivilegeFilter</filter-name>
		<url-pattern>/admin/*</url-pattern>
</filter-mapping>

页面分析
按照代码逻辑,管理员登陆后只能进入home.jsp页面,并不像和普通用户一样可以进行购书操作的逻辑。页面由四个jsp组成,利用<frameset>标签划分各个<frame>搭建框架。body { SCROLLBAR-ARROW-COLOR: SCROLLBAR-BASE-COLOR:}语句控制滚动条颜色。
在这里插入图片描述
jsp代码:

<%@ page language="java" pageEncoding="UTF-8"%>
<html>
    <head>
		<meta http-equiv="Content-Language" content="zh-cn">
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style>
		body
		{
   
			SCROLLBAR-ARROW-COLOR: #ffffff;  SCROLLBAR-BASE-COLOR: #dee3f7;
		}
    </style>
   </head>
<frameset rows="103,*,43" frameborder=0 border="0" framespacing="0">
  <frame src="${pageContext.request.contextPath}/admin/login/top.jsp" name="topFrame" scrolling="NO" noresize>
  <frameset cols="159,*" frameborder="0" border="0" framespacing="0">
		<frame src="${pageContext.request.contextPath}/admin/login/left.jsp" name="leftFrame" noresize scrolling="YES">
		<frame src="${pageContext.request.contextPath}/admin/login/welcome.jsp" name="mainFrame">
  </frameset>
  <frame src="${pageContext.request.contextPath}/admin/login/bottom.jsp" name="bottomFrame" scrolling="NO"  noresize>
</frameset>
</html>

top.jsp有两个功能,显示日期以及退出系统,日期显示利用document内置对象进行输出的,js语句不用<%>内嵌,而是语句块一样写在一起。

<font color="#000000">
	<script language="JavaScript">								
		tmpDate = new Date();
		date = tmpDate.getDate();
		month = tmpDate.getMonth() + 1;
		year = tmpDate.getFullYear();
		document.write(year);
		document.write("年");
		document.write(month);
		document.write("月");
		document.write(date);
		document.write("日 ");

		myArray = new Array(6);
		myArray[0] = "星期日"
		yArray[1] = "星期一"
		myArray[2] = "星期二"
		myArray[3] = "星期三"
		myArray[4] = "星期四"
		myArray[5] = "星期五"
		myArray[6] = "星期六"
		weekday = tmpDate.getDay();
		if (weekday == 0 | weekday == 6) {
   
			document.write(myArray[weekday])
		} else {
   
			document.write(myArray[weekday])
		};								
	</script> 
</font>

退出登录调用了自定义函数exitSys(),利用window内置对象window.top返回该页面的顶层窗口(不过实测,点击后并无反应,Session也没有失效)。

<script type="text/javascript">
	function exitSys() {
   
		var flag = window.confirm("确认退出系统吗?");
		if (flag) {
   
			window.top.open('', '_parent','',true);
			window.top.close();
		}
		//如果你使用的是firefox浏览器必须要做以下设置 
		//1、在地址栏输入about:config然后回车,警告确认 
		//2、在过滤器中输入”dom.allow_scripts_to_close_windows“,双击即可将此值设为true 即可完成了 

	}
</script
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值