struts2基础详解

35人阅读 评论(0) 收藏 举报
分类:

struts2配置文件的配置

1.struts2配置文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- 头文件 在struts2-core-2.3.24.jar包下的struts-2.3.dtd文件中可以找到-->
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- struts 根标签 -->
<!--
 package name 标签 随便写 只要不重复就可以 可以进行模块化区分
 namespace 命名空间(访问Action网址前的一个网址部分)
 extends 继承一个包 struts-default 默认配置 默认提供的功能
 -->
 <!-- 
    action
    name 是你这个类的访问的路径
    class 类的全限定类名
    method 类中被访问的方法

    result
    name 方法的返回值(匹配)
    type 请求跳转的方式 默认是 请求转发 dispatcher
    值部分: 跳转网站资源
  -->
<struts>
    <package name="hello" namespace="/hello" extends="struts-default" >
        <action name="HelloAction" class="com.lanou3g.hello.HelloAction" method="hello" >
            <result name="success" type="dispatcher" >/hello.jsp</result>
        </action>
    </package>
    <!-- 引入其他struts配置文件 -->
    <include file="com/xxx/def/struts.xml"></include>
    <include file="com/xxx/dynamic/struts.xml"></include>
    <include file="com/xxx/test/struts.xml"></include>
</struts>   
 struts2配置文件配置完成后 需要在web.xml文件中配置过滤器

struts2中Action类的跳转

1.Action类跳转向jsp文件
<!-- type="dispatcher"表示请求转发 redirect表示请求重定向-->
<action name="Demo01Action" class="com.xxx.jump.Demo01Action" method="execute">
            <result name="success" type="redirect">/jump.jsp</result>
</action>
2.Action跳转向Action
<action name="Demo02Action" class="com.
xxx.jump.Demo02Action" method="execute">
    <result name="success" type="redirectAction">
        <!-- 要重定向的名字 -->
        <param name="actionName">Demo01Action</param>
        <!-- 要重定向action的命名空间 -->
        <param name="namespace">/</param>
    </result>
</action>
<action name="Demo04Action" class="com.lanou3g.jump.Demo04Action" method="execute">
    <!-- chain Action之间进行转发 -->
    <result name="success" type="chain">
        <param name="actionName">Demo01Action</param>
        <param name="namespace">/</param>
    </result>
</action>

struts2中Action类获取域的方式

1.Action获取域
/*
 * 获取ServletAPI
 * ActionContext 对象(数据大管家)  内部也是个map
 * ActionContext的生命周期 是跟随 请求对象走的
 * Servlet 线程不安全的(访问共享数据 会发生问题)
 * 整个程序 系统值帮你创建一次
 * Struts2 线程安全的 如何做到的?
 * 一个用户访问Struts2就给你创建一个ActionContext对象
 * /
// 获取域方式一
// 获取request域
 方法1:ActionContext.getContext.put("name","xxx");(系统推荐的方法)
 方法2:Map<String, Object> requestScope = (Map<String, Object>)
 ActionContext.getContext().get("request");
 // 获取session
Map<String, Object> sessionScope = ActionContext.getContext().getSession();
sessionScope.put("name", "xxx");
// 获取application域(servletcontext域)
Map<String, Object> applicationScope = 
ActionContext.getContext().getApplication();
applicationScope.put("name", "xxx");

// 获取域方式二(通过获取servlet原生对象的方式)
// 获取原生servlet对象
    HttpServletRequest request = ServletActionContext.getRequest();
    // 直接使用request对象获取session对象
    HttpSession session = request.getSession();
    HttpServletResponse response = ServletActionContext.getResponse();
    PageContext pageContext = ServletActionContext.getPageContext();
    ServletContext servletContext = ServletActionContext.getServletContext();

// 获取域方式三(通过实现接口的方式 获取servlet原生对象)
// 获取request(通过实现不同的接口可以获取到各个servlet原生对象)
public class Demo07Action extends ActionSupport implements ServletRequestAware {
    // 创建一个成员变量
    private HttpServletRequest request;
    public Demo07Action() {
        System.out.println("Demo07Action创建了");
    }

    @Override
    public String execute() throws Exception {
        // 直接使用成员变量
        // System.out.println("Demo07Action");
        this.request.setAttribute("name", "jiekou");
        return SUCCESS;
    }

    // 接口中的方法
    @Override
    public void setServletRequest(HttpServletRequest request) {
        // 使用成员变量赋值的方式得到原生servlet对象
        this.request = request; 
    }
}       

struts2内部执行原理

struts2执行原理

查看评论

Exception in thread "http-bio-8080-exec-10" java.lang.OutOfMemoryError: PermGen space

Exception in thread "http-bio-8080-exec-10" java.lang.OutOfMemoryError: PermGen space at java.lang....
  • u010342038
  • u010342038
  • 2016-06-21 18:13:08
  • 2903

Exception in thread "http-bio-8080-exec-11" java.lang.OutOfMemoryError: PermGen space

在项目中web项目经常回出现Exception in thread "http-bio-8080-exec-11" java.lang.OutOfMemoryError: PermGen space的...
  • zl544434558
  • zl544434558
  • 2014-04-02 13:30:08
  • 7300

Exception in thread "http-apr-8080-exec-6" java.lang.OutOfMemoryError: PermGen space 解决!

在网上找了半天,也在apache目录上 bin/catalina.bat文件中的echo Using CATALINA_BASE: "%CATALINA_BASE%" 上面加入了代码: -XX...
  • liangrui1988
  • liangrui1988
  • 2013-09-03 17:08:21
  • 20433

Struts2 基础与案例开发详解ppt

  • 2014年03月25日 14:14
  • 5.6MB
  • 下载

软件开发-Struts基础与案例开发详解

软件开发-Struts基础与案例开发详解 首先,对struts重点了解的应该是struts的组件和标签,国际化,表格验证。等基本的东西。 然后针对前端,有tiles框架。综合的struts技巧运用...
  • chengyangyy
  • chengyangyy
  • 2015-09-26 15:31:29
  • 455

Struts2学习总结(1)--基本原理,开发步骤,配置详解

本文包括以下三个部分:1、模拟Struts2框架,了解基本原理。2、Struts2的开发步骤。3、Struts2的配置详解。是学习Struts2的入门知识。里面包含详细的代码示例。...
  • qq_29829081
  • qq_29829081
  • 2016-03-20 18:55:07
  • 1686

Java基础与案例开发详解源码.zip

  • 2017年01月12日 15:33
  • 11.55MB
  • 下载

Struts2标签库详解

  • 2010年05月17日 16:43
  • 241KB
  • 下载

Struts2的标签详解

  • 2009年03月09日 00:01
  • 31KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 2682
    积分: 625
    排名: 7万+
    文章存档
    最新评论