-
客户端通过HttpServletRequest提交一个请求,这个请求通过一系列的过滤器,最终被Struts2核心控制器过滤到,核心控制器通过ActionMapper决定是否要调用某一个Action ,即用户是否请求某个Action,Action代理,通过配置管理器加载Strusts核心配置文件,加载Struts.xml ActionProxy创建Action实例(拦截器),调用拦截器,再调用action,调用action中的业务处理方法进行业务处理,同时业务返回一个结果,再次将拦截器反向执行,通过HttpServletResponse响应客户端请求查看全部
-
4.定义拦截器,判断用户是否已经登录.此拦截器在跳转的action中引用. 在拦截器的intercept(ActionInvocation arg0)方法中通过获取session对象(三种方式其中一种),判断session里面是否存在登录成功的那个属性,即loginsuccess,来判断用户是否登录成功. 如果loginsuccess属性不为空,则直接调用arg0的invoke()方法,此方法返回字符串与在执行action方法中返回的字符串一致.(引用了该拦截器的action),直接返回这个字符串即可. 如果判断用户未登录,则直接返回"login",表示用户需要登录.那么在此action中也要配置一个<result name="login">login.jsp</result>,当直接访问未登录时,便会跳转到登录页面. 拦截器与Action方法里的返回值,即return,都会与struts.xml中的result结果集进行匹配.拦截器可以在访问Action之前,进行一些操作. 整个项目结果:通过login.jsp登录,当登录成功便自动跳转到管理页面,否则跳转到登录页面. 当直接访问跳转到后台的action时,如果用户登录了,便会跳转到后台管理页面,未登录的话则跳转到登录页面.查看全部
-
添加struts配置文件和jar包:右击工程名----MyEclipse----Add Struts Capp...--------选择版本-----next------再回去配置一下Struts.xml文件 下面是4个开发模式常用配置的简介--- <!-- 开启使用开发模式,详细错误提示 --> <!-- <constant name="struts.devMode" value="true"/>--> <!-- 指定每次请求到达,重新加载资源文件 --> <!-- <constant name="struts.i18n.reload" value="true"/>--> <!-- 指定每次配置文件更改后,自动重新加载 --> <!-- <constant name="struts.configuration.xml.reload" value="true"/>--> <!-- 指定XSLT Result使用样式表缓存 --> <!-- <constant name="struts.xslt.nocache" value="true"/>-->查看全部
-
默认拦截器栈: <!-- 为Action显示引用拦截器后,默认的拦截器defaultStack不再生效,需要手工引用。而且从顺序角度去讲,最好把默认的拦截器写在自定义拦截器上面 --> <interceptor-ref name="defaultStack"></interceptor-ref>查看全部
-
Struts2内置常用的拦截器: 1.params拦截器: -负责将请求参数设置为Action属性 2.staticParams拦截器: -将配置文件中action元素的子元素param参数设置为Action属性 3.servletConfig拦截器: -将源于Servlet API的各种对象注入到Action,必须实现对应接口 4.fileUpload拦截器: -对文件上传提供支持,将文件和元素设置到对应的Action属性,实际上内部依然使用了Commons-FileUpload组件。 5.exception拦截器: -捕获异常,并且将异常映射到用户自定义的错误页面 6.validation拦截器: -调用验证框架进行数据验证 更多的拦截器可在struts核心包的struts-default.xml中查看查看全部
-
新建拦截器的步骤: 1. 建立一个拦截器类继承自AbstractInterceptor类,并实现intercept方法 invocation.invoke()方法调用下一个拦截器,如果已经是最后一个拦截器,则执行目标action 2. 在strut的配置文件的package中注册拦截器,注册拦截器在action调用之前,在响应的action配置中,通过interceptor-ref标签来引用拦截器查看全部
-
用会话来Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。查看全部
-
可以用action来访问查看全部
-
WEB-INF是Java的WEB应用的安全目录。WEB-INF简介 WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。查看全部
-
WEB-INF是Java的WEB应用的安全目录。WEB-INF简介 WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。查看全部
-
自定义拦截器: 1.方法一:实现Interceptor接口 -void init():初始化拦截器所需资源 -void destroy() :释放在init()中分配的资源 -String intercept(ActionInvocation ai)throws Exception 实现拦截器功能,利用ActionInvocation参数获取Action状态,返回result字符串作为逻辑视图。 2.方式二:继承AbstractInterceptor类 -提供了init()和destroy() 方法的空实现 -只需要实现intercept方法即可 实际开发当中一般会去继承AbstractInterceptor这个父类查看全部
-
添加的支持查看全部
-
打开开发模式查看全部
-
禁用动态方法的调用查看全部
-
自定义拦截器: 1.方法一:实现Interceptor接口 -void init():初始化拦截器所需资源 -void destroy() :释放在init()中分配的资源 -String intercept(ActionInvocation ai)throws Exception 实现拦截器功能,利用ActionInvocation参数获取Action状态,返回result字符串作为逻辑视图。 2.方式二:继承AbstractInterceptor类 -提供了init()和destroy() 方法的空实现 -只需要实现intercept方法即可 实际开发当中一般会去继承AbstractInterceptor这个父类查看全部
举报
0/150
提交
取消