struts2笔记之第七讲
导语:Struts2的Action访问Servlet API,有三种方式:上一节课中已经讲了第一方式。可以通过ActionContext访问Servlet API。
三种方式:
1.可以通过ActionContext访问Servlet API 此种方式没有侵入性(这个其实是间接把Session放到中间的map里)
2.可以通过实习装配接口,完成对Servlet API的访问
*ServletRequestAware取得HttpServletRequest对象
*ServletResponseAware取得HttpServletResponse对象
*ServletContextAware取得ServletContext对象(工具类)
3.可以通过ServletActionContext提供的静态方法取得Servlet API
*getPageContext();
*getRequest();
*getResponse();
*getServletContext();
下面折重讲第二中方式和第三种方式,第一种请参阅第一章节。
2.可以通过实习装配接口,完成对Servlet API的访问
例子:
LoginAction.java
package com.struts2; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; public class LoginAction implements Action,ServletRequestAware,ServletResponseAware { private String username; private String password; [color=red] private HttpServletRequest request; private HttpServletResponse response;[/color] /** * struts2 默认调用这个方法,返回字符串 * @return * @throws Exception */ public String execute() throws Exception{ if("admin".equals(username) && "admin".equals(password)){ request.getSession().setAttribute("user", username); return "success"; }else{ return "error"; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public void setServletResponse(HttpServletResponse response) { this.response=response; } @Override public void setServletRequest(HttpServletRequest request) { this.request=request; } }
MustLoginAction.java
package com.struts2; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; public class MustLoginAction implements Action,ServletRequestAware { private HttpServletRequest request; @Override public String execute() throws Exception { if(request.getSession().getAttribute("user")==null){ //重定向到登陆页面 return LOGIN; }else{ return SUCCESS; } } @Override public void setServletRequest(HttpServletRequest request) { this.request=request; } }
index.jsp文件核心代码
<a href="login.jsp">登陆</a> <br> <a href="mustLogin.action">访问受保护的页面</a> <br>
省略的jsp页面有:login.jsp、login_error.jsp、login_success.jsp、must_login.jsp
3.可以通过ServletActionContext提供的静态方法取得Servlet API
LoginAction.java
package com.struts2; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; public class LoginAction implements Action { private String username; private String password; /** * struts2 默认调用这个方法,返回字符串 * @return * @throws Exception */ public String execute() throws Exception{ if("admin".equals(username) && "admin".equals(password)){ ServletActionContext.getRequest().getSession().setAttribute("user", username); return "success"; }else{ return "error"; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
MustLoginAction.java
package com.struts2; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; public class MustLoginAction implements Action { private HttpServletRequest request; @Override public String execute() throws Exception { if(ServletActionContext.getRequest().getSession().getAttribute("user")==null){ //重定向到登陆页面 return LOGIN; }else{ return SUCCESS; } }
发表评论
-
Struts2文件上传
2014-10-29 17:00 0http://hanxin0311.iteye.com/blo ... -
struts2笔记之第八讲
2014-02-17 01:17 791struts2笔记之第八讲 导读:Struts2的命名空间和 ... -
struts2笔记之第六讲
2014-02-17 00:50 410struts2笔记之第六讲 Struts2的Action访问 ... -
struts2笔记之第五讲
2014-02-15 17:01 370struts2笔记之第五讲 除了属性驱动模式、模型驱动模式外, ... -
struts2笔记之第四讲
2014-02-15 16:32 314struts2笔记之第四讲 Struts2对ModelDriv ... -
struts2笔记之第三讲
2014-02-15 16:27 496struts2笔记之第三讲 描述:struts2对团队开发的 ... -
struts2笔记之第二讲
2014-02-15 14:41 389struts2笔记之第二讲 1、 ... -
struts2笔记之第一讲
2014-02-15 00:53 470Struts2笔记之第一讲 前言:学技术以来,已经三年了,感 ... -
struts2笔记
2014-02-15 00:25 0Struts2笔记 前言: 需要注意sturs2需要运行在 ...
相关推荐
赵栋的Struts2笔记主要涵盖了2013年的相关知识,以下是根据笔记内容提炼出的一些关键知识点: 1. **URL与Action方法绑定**: 在Struts2中,通过URL直接调用Action类的方法是可能的。如果在URL中附加"!"后跟方法名...
本篇笔记将详细讲解Struts2中服务器端与客户端对表单数据的校验方式。 首先,Struts2提供了一系列内置的校验器,包括: 1. Irequired:检查字段是否为空,是必填项。 2. IIrequiredstring:验证字段是否为非空字符...
在第18讲“Struts2深入探索”中,我们将会探讨Struts2的一些高级特性和深入使用的技巧。这篇学习笔记将主要围绕以下几个核心知识点展开: 1. **拦截器(Interceptors)**: Struts2的核心特性之一是拦截器,它允许...
本篇学习笔记将深入探讨Struts2的入门与配置,继续上一讲的内容。 首先,Struts2的基础入门涉及到以下几个核心概念: 1. **Action类**:在Struts2中,业务逻辑通常封装在Action类中。Action类是处理用户请求的主体...
### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” > “New” > “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...
7. `ActionInvocationInterceptor`: 这是Struts2框架内部使用的拦截器,用于实际调用Action的execute方法。 8. `ResultInterceptor`: 在Action执行完成后,这个拦截器会处理返回的结果,如渲染视图、跳转到其他页面...
#### 第七步:访问Action 通过浏览器访问指定的URL,查看Struts2应用程序的输出结果。 ### 3. 分析Struts2运行原理 Struts2的核心是**StrutsPrepareAndExecuteFilter**,这是一个过滤器,它负责处理所有的HTTP...
2. **环境搭建**:(一)环境搭建.txt可能包含了安装和配置Struts2框架的基础步骤,这通常包括添加Struts2库到项目依赖、配置web.xml文件、创建第一个Struts2应用等。 3. **UploadServlet.java**:在Struts2中,...
在第19讲“Struts2深入探索”中,我们将继续深入理解Struts2的核心特性和工作原理,这包括但不限于配置、拦截器、插件、以及源码分析。以下是关于Struts2的一些关键知识点: 1. **MVC模式**:Struts2遵循Model-View...
### Struts2培训笔记 #### 一、Struts2简介 **MVC框架**:Struts2是一个基于Java的企业级Web应用开发框架,遵循MVC(Model-View-Controller)设计模式。 - **M(Model)**:业务逻辑处理部分,通常指与数据库交互...
在本篇“Struts2学习笔记十一”中,我们将深入探讨Struts2的核心拦截器及其应用。 **1. 拦截器的概念** 拦截器是AOP(面向切面编程)的一部分,在Struts2中,它们作为一系列可插入的处理链,可以在Action执行前后...
在第九讲中,我们将深入探讨Struts2的校验框架,这是一个非常重要的功能,它有助于确保输入数据的准确性和完整性,防止非法数据导致的系统异常。 在传统的Java web开发中,数据验证通常在服务器端进行,如Servlet或...
Servlet、JSP、Struts2笔记 Servlet基础 Servlet是运行在服务器上的程序,使用Java语言编译,并且使用Servlet接口来实现动态界面。Servlet需要接受客户端发送的请求,并将处理结果以响应的形式响应给客户端。 ...
- Struts2有许多官方和第三方插件,如i18n、json、freemarker等,它们的配置在`struts-plugin.xml`中完成。 8. **Action与Service层整合** - Spring管理Service层对象,Struts2通过Spring插件注入Service,实现...
### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...
第17讲主要探讨了Struts2的国际化续篇,即如何进一步实现和优化国际化功能。这一讲的内容可能会涵盖以下几个方面: 1. **资源文件创建**: 国际化的核心是资源文件,通常以`.properties`格式存储。例如,`messages...
#### 七、Struts2简介 - **Struts2框架**:基于MVC设计模式的Java Web应用框架,用于简化Web应用的开发和维护过程。 - **特点**: - 灵活的配置机制:支持多种配置方式,如XML配置、注解配置等。 - 强大的拦截器...
【张冰Struts2学习笔记】0102_第一个Struts2实例 在Java Web开发领域,Struts2框架是十分重要的MVC(模型-视图-控制器)架构之一,它极大地简化了Web应用程序的开发流程。这篇学习笔记将带你入门Struts2,通过创建...
10. **插件与第三方库集成**:Struts2有许多内置插件,如.tiles、struts2-dojo-plugin等,同时也可以与Hibernate、Spring等其他框架无缝集成,提升开发效率。 通过达内的这套学习资料,初学者将逐步掌握以上知识点...
完成环境配置后,你可以开始创建第一个Struts2应用: 1. 设计视图页面,例如`hello.jsp`和`success.jsp`。 2. 编写动作类,这是一个普通的Java类,通常遵循JavaBean规范,用于处理业务逻辑。 3. 在`struts.xml`中...