struts2(7)------拦截器, token

struts2(7)

----拦截器
----token

<package name="struts2"  extends="struts-default">




struts2这个web框架的核心控制器是由一组拦截器加上过滤器共同构成


struts2这个框架的所有功能都是由这些拦截器与过滤器来提供,如果不加载它们,struts2就没有任何功能


这些拦截器与过滤器默认的都在struts-default这个包中,只有让自己的package继承于struts-default这个包,这些拦截器与过滤器才能加载,struts2这个框架才会有功能



------------------------------------------------------------------------

在struts2一般给系统附加功能的时候,都会选择通过自定义拦截器来实现


interceptor -------拦截器
filter-------------过滤器

------------------------------通过拦截器实现权限控制

基本步骤:

1、用户登录时,根据用户名与密码,查询数据库,返回一个Inf对象,根据Inf对象是否为null,判断用户登录成功还是失败(id,name,pwd,roleId)

2、如果用户登录成功,把Inf对象存到session中
3、编写拦截器实现权限控制:

A、编写一个类继承于一个抽象类  AbstractInterceptor
B、在interceptor方法,首先得到session作用域
C、从session中,取user对象,如果等于null,表示用户没有登录,否则就是登录用户
D、判断Inf对象是否为null,判断出用户是否登录,如果没有登录,向request中存储一条错误信息,并且返回到指定页面
E、如果用户不为null,调用return ivk.invoke();
4、在struts.xml文件中配置拦截器

1、在<Action>标签之前配置拦截器
<interceptors>
<interceptor name="role" class="org.java.util.RoleInterceptor"/>
<interceptor-stack name="myStack">
<interceptor-ref name="role"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
myStack是一个拦截器的栈,这里面包含了一组系统必须拦截器与自定义的拦截器
2、在action标签中,引用拦截器
<action name="test" class="org.java.web.OpAction">
<interceptor-ref name="myStack"/>
<result name="ok">/yes.jsp</result>
<result name="show">/show.jsp</result>
</action>





static关键字,可以修饰方法与属性:

修饰属性:表示是一个静态属性,特点:不管类被实例化多少次,静态属性都中会被初始化一次

修改方法:表示方法是一个静态方法,也称为:“类方法”,不需要实例化就可以直接访问


public class MyClass{

public static String name="jack";

public static void show(){

}

}
-------------------------------------------------------------

public class 其他类{

public void 方法(){


String val = MyClass.name;
MyClass.show();
}





}



一个类中最优先的"方法",是构造方法,它会在实例化的时候调用

一个类中最优先的"代码",是静态块,它会比构造方法还要优先


static{

代码;
}


静态块,没有名称,所以,用户无法调用,只要类被访问,如果存在静态块,系统将会优先调用





























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值