背景:星期四之前,SSH网上商城终于在我的“轮番轰炸”中“臣服”,拿下它的一瞬间感觉整个人都轻松了不少。这个项目已经在我这里静静了待了将近两个月,延期四次,说实在的,自己都不晓得是怎么回事。想着这个项目结了,在周四犒劳一下貌似勤劳的自己。结果很不幸,周四早晨起来就有点晕晕的,中午做了红烧肉和炸鸡柳,但是自己没有吃多点儿。然后就是一下午的发烧。下午3点多吃过药,睡了不知道几觉,感觉很冷,但是温度计显示的数值一直停留在39.5。晚上8点多,还是在小伙伴的带领下去了医院。找医院,找门诊,挂号,检查,拿药,感觉时间过了好久,最后的最后终于回到了自己的小窝。唉?这个时间应该是要写拦截器的,怎么写自己的苦历史了。还是先写拦截器吧,一会儿时间够的话再详细地讲自己的苦历史。
一、什么是拦截器
大家应该听说过“短信拦截器”和“电话拦截器”,这两个拦截器的作用就是使用一款应用软件对用户已经设置为拦截状态的垃圾短信号码和联系人号码进行拦截,使用户免受垃圾短信和骚扰电话的骚扰,保障用户的信息安全。
二、什么是权限拦截器
SSH网上商城中有前台和后台两部分,前台负责消费者的注册登录、加入购物车、提交订单、在线支付、确认收货等功能,后台负责商品的一级分类、二级分类管理,商品的增删改查、订单管理、订单状态管理等。前台提交的数据都能在后台显示,此刻后台的存在尤为重要,既不能让消费者损失,又不能让自己损失。
后台涉及到“银子”的问题,一提到“银子”,大多商家都会十分小心。那么后台的登陆权限就是一个问题了,不是谁都能登陆商城的后台。只有商城指定的人才能登陆到商城的后台,对商城的商品和订单进行管理维护。这么一来权限拦截器就能帮上大忙了。
拦截器可以对Action的访问进行拦截。能够保证系统每次刷新的后都让用户重新登陆,登陆的用户才能到后台进行维护管理。
三、编写使用拦截器
1、编写一个PrivilegeInterceptor.java类实现Interceptor接口,或者继承Interceptor的子类
package cn.itcast.shop.interceptor;
import org.apache.struts2.ServletActionContext;
import cn.itcast.shop.adminuser.vo.AdminUser;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
/**
* 后台权限校验的拦截器
* 对没有登录后台的用户是不能够访问的
* @author 丽杰
*
*/
public class PrivilegeInterceptor extends MethodFilterInterceptor{
@Override
//执行拦截的方法
protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
//判断session中是否保存了后台用户的信息
AdminUser existAdminUser = (AdminUser) ServletActionContext
.getRequest().getSession().getAttribute("existAdminUser");
if(existAdminUser == null){
//没有登录
ActionSupport actionSupport = (ActionSupport) actionInvocation
.getAction();
actionSupport.addActionError("亲,您还没有登录,没有权限访问!");
return "loginFail";
}else{
//已经登录
return actionInvocation.invoke();
}
}
}
2、在Struts.xml中配置拦截器
在全局Action中配置登陆失败跳转页面。
/WEB-INF/jsp/msg.jsp
/WEB-INF/jsp/login.jsp
/admin/index.jsp
在配置用户、配置后台一级分类管理的Action、配置后台二级分类管理的Action、配置商品管理的Action、配置后台订单管理的Action中使用拦截器。
/admin/category/list.jsp
adminCategory_findAll.action
adminCategory_findAll.action
/admin/category/edit.jsp
adminCategory_findAll.action
四、展示效果
首先进入后台管理的界面:http://localhost:8080/shop/admin/home.jsp
原来点击左侧的任何分支都会出现各自的内容。使用权限拦截器后的效果是:都只出现index页面,并且带有提示。
五、我的故事详情
拦截器的使用的好出显而易见,我就不再赘述了。
咳咳,现在回来听我讲我的苦历史——周四,对于我们来说本来是个人人乐的日子。但是由于自己的失误,造成了生病的后果。下面简单介绍一下原因:在玩high的周三晚上,洗了个头发,然而并没有吹开就入眠了,一觉醒来就然处于高烧的状态了。上午出门买菜的时候晕晕的,做饭的时候晕晕的,吃饭的时候晕晕的,然后就晕晕的睡了一下午。
刚开始的时候我还以为是简单的感冒呢,然后让李芬带了盒感冒冲剂回来。下午三点多量了一下体温——妈呀,39.5度,从来没有体验过这个温度,但是我还是纯纯的以为是感冒,喝了一袋感冒冲剂,冲剂的说明书上说体温超过38度就不能喝这个药,但是,我还是喝了,喝完冲剂好好睡觉。她们两个出去了,出门前还一个劲的叮嘱我:说感觉不行了就打电话,说晚上回来她们做饭云云。
然后,自己就进入了和病毒斗争的阶段。做了无数的梦,出了无数的汗,翻了无数次身,好像自己掉进了漩涡一样,想跳出来,但是又无计可施。感觉很冷,脑仁很疼,还感觉自己的身体就像被冰冻住了一样,碰一下就会碎。
大约七点多,她们两个回来了,挣扎着起来打开门。丽男做饭,李芬在忙着打下手,我拿体温计测了一下还是39.5,难倒是温度计坏了?还是眼花了?在自己的被窝了坐了一会儿,饭熟了,丽男做的土豆方便面,面条看起来不错,但是我已失去味觉,根本尝不出来是什么味道,又没有什么胃口,然后就浪费了很多美味的食物。
吃过饭已经晚上八点多了,在丽男和李芬的监督下又测了一下体温。还是39.5度,根本就没有减嘛。最后她们决定要带我去医院,然后忍着冷和头疼,换衣服,穿鞋,拿身份证,拿银行卡,收拾完毕出发。
丽男用自行车载着我,李芬自己一辆,前往附近的医院,结果,到是到医院了,但是人家根本没有内科。好吧,又辗转到下一个医院。我感觉走了好久,终于到了,这个医真是大的不像话,好多楼,又黑又冷,路上的人又特别少,再加上谁都没有来过,东找西找,终于找到地方挂号,然后又找发热科,看完后回到挂号处交钱,拿药。终于折腾完了。
回来的时候是小马去接的,然后丽男回自己的住处,李芬、小马还有我回我们的住处,小马说要煮鸡蛋,贤达说要打豆浆,李芬收拾了我们晚上吃完饭的残局……
虽然,周四晚上很冷,我整个人也处于不清醒的状态下,但是我真的感觉很温暖,感觉自己真的很幸运,能够遇到他(她)们。
有人说过:朋友是一种相遇。大千世界,红尘滚滚,于芸芸众生、茫茫人海中,朋友能够彼此遇到,能够走到一齐,彼此相互认识,相互了解,相互走近,实在是缘份。
有人说过:朋友是一种相助。风雨人生路,朋友能够为你挡风寒,为你分担忧愁,为你解除痛苦和困难,朋友时时会伸出友谊之手。
还有人说过:朋友是一杯清茶,很淡;朋友是一屡清风,很柔;朋友是一丝丝的小雨,很甜。
而我说:朋友是平凡日子里的一本好书,清晰地为你记载生命的感动!
六、学习心得
1、用户的利益放在首位,这样用户高兴了,受益了,自己也就收益的。
2、身体是革命的本钱,病来如山倒,病去如抽丝,身边的你,远方的你,记得照顾好自己。
3、在人来人往,聚散分离的人生旅途中,在各自不一样的生命轨迹上,在不一样经历的心海中,能够彼此相遇、相聚、相逢,能够说是一种幸运,缘份不是时刻都会有的,就应珍惜得来不易的缘。