zoukankan      html  css  js  c++  java
  • Struts2第一章

     

     

    第一章Struts2初体验

    01.Struts 2及其优势

    Struts 2是一个MVC框架,以WebWork框架的设计思想为核心,吸收了Struts 1的部分优点

    Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性

    Struts官网

    http://struts.apache.org/

    apps目录:Struts2示例应用程序

    docs目录:Struts2指南、向导、API文档

    lib目录:Struts 2的发行包及其依赖包

    src目录:Struts 2项目源代码

    02.Struts 2初体验(登陆用户)

    案例:使用Struts 2实现:输入用户姓名,然后输出欢迎信息

     

    使用Struts 2 开发程序的基本步骤

    1、加载Struts2 类库

    2、配置web.xml文件

    3、开发视图层页面

    4、开发控制层Action

    5、配置struts.xml文件

    6、部署、运行项目

     

    步骤一:加载struts类库

     

    因为我们用的是maven所以引入以下依赖,maven会帮我们自动导入其他包:

    <!--Servlet API-->
    <dependency>
        <groupId>javaee</groupId>
        <artifactId>javaee-api</artifactId>
        <version>5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.3.16.3</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/org.apache.struts.xwork/xwork-core -->
    <dependency>
        <groupId>org.apache.struts.xwork</groupId>
        <artifactId>xwork-core</artifactId>
        <version>2.3.16.3</version>
    </dependency>

    步骤二:配置web.xml文件

    代码:

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >

    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <!--过滤器-->
      <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>

      <filter-mapping>
        <filter-name>struts2</filter-name>
        <!--拦截所有方法-->
        <url-pattern>/*</url-pattern>
      </filter-mapping>



    </web-app>

    步骤三:开发视图层页面

     

    步骤四:开发控制层Action

    实现Action接口并重写方法:

    零散属性装配

    public class LoginAction implements Action {
        private String username;
        private String password;
        public String execute() throws Exception {
            if (username.equals("admin")&&password.equals("admin")){
                return SUCCESS;
            }else {
                return LOGIN;
            }

        }

    步骤五:配置struts.xml文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
            "http://struts.apache.org/dtds/struts-2.3.dtd ">
    <struts>
        <!-- 配置文件中只要添加以下配置,那么以后修改配置文件不用重启tomcat -->
        <constant name="struts.devMode" value="true" />
    <package name="default" namespace="/" extends="struts-default">
    <!--零散属性装配-->
        <action name="islogin" class="cn.happy.day01.LoginAction">
            <result name="success">day01/index.jsp</result>
            <result name="login">day01/login.jsp</result>
        </action>
    </package>

    </struts>

    步骤六:部署,运行项目

     

    03.登陆系统强化

    域属性装配:

    首先创建一个实体

     

    修改Action

    public class LoginActions implements Action {
        //引入实体
        private UserInfo userInfo;
        public String execute() throws Exception {
            if (userInfo.getUsername().equals("admin")&&userInfo.getPassword().equals("admin")){
                return SUCCESS;
            }else {
                return LOGIN;
            }

        }

    修改登陆页面:

     

    修改欢迎页面:

     

    ModelDriven

    Action实现另外一个接口即可!

     

     

    即可避免jsp页面的不灵活问题!

    04.Struts2访问Servlet API

    servlet中可以通过servlet API来获取Session,在Struts中如何获取Session呢?

        解析:将用户名放入session 两种方案

    1. Servlet API解耦的访问方式

        --->01.使用ActionContext类获取ServletAPI对象对应的Map对象

        --->02.Struts2Action注入ServletAPI对象对应的Map对象

    1. Servlet API耦合的访问方式

    --->01.通过ActionContext的子类ServletActionContext实现

        --->02.Action实例注入Servlet API对象

    解耦方式:

    方案一: Servlet API进行封装   ,借助ActionContext

    供了三个Map对象访问requestsessionapplication作用域

     

    方案二:向Action中注入ServletAPI对象对应的Map对象

     

    耦合方式:

    方案一:通过ActionContext的子类ServletActionContext实现

     

        方案二:向Action实例注入Servlet API对象

     

    05.Struts2开发流程图

  • 相关阅读:
    datagrid行拖拽(参考网上的相关资料)
    给定treeData,根据关键字进行过滤:显示父级元素;如果节点被选中,那它的子节点也全部被选中
    复选框
    UVA 10025 The ? 1 ? 2 ? ... ? n = k problem
    UVA10161 Ant on a Chessboard
    UVA 113 Power of Cryptography
    UVA 10785 The Mad Numerologist
    UVA 755 487-3279
    UVA10194 FootBall aka Soccer
    UVA 123 Searching Quickly 开始新的路程
  • 原文地址:https://www.cnblogs.com/zjl0202/p/8472581.html
Copyright © 2011-2022 走看看