A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© heimafima 初级黑马   /  2017-12-27 16:43  /  724 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# 一、Java开发中常用框架 #

1.SSH (SSM SSI)

SSH: struts2 spring hibernate

SSM(ssi)springmvc spring mybatis(ibatis)

SSH:它是企业开发中比较主流的一套架构。

SSH:框架在开发中所处的位置:

     web层
     表现层
     在以前开发中,我们web层主要使用的技术是jsp servlet..
     struts2

      service层
      业务层
      主要完成业务逻辑操作
      spring
      spring是一个一栈式框架,他可以在service web dao层都存在

       dao
       持久化层
       hibernate
       主要作用是与数据库进行交互,完成CRUD操作

# 二、Struts2框架介绍 #

什么是struts2框架,学习struts2框架的核心。

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互

Struts2=struts1+webwork

问题:struts2是一个mvc框架,它的mvc是什么?

javaweb开发中的mvc是在jsp的model模式中提过

Model--javabean

VieW--jsp

Controller--servlet

核心点:

   1.拦截器 interceptor

   2.Action

   3.ognl与valueStack

在现在开发中与struts2比较类似的框架

Struts1 webwork springmvc jsf

重点:

1.Struts2框架如何完成原来由servlet完成的工作

2.Struts2框架如何完成请求参数的封装处理

3.Struts2框架如何完成页面跳转。

# Seruts2框架来完成登陆操作 #
     
使用Struts2的步骤:

1.导入相关的jar文件

2.需要在web.xml文件中配置一个Filet(只有配置它才可以使用struts2框架)

3.struts.xml配置

4.创建Action来完成逻辑操作


# Struts2执行流程 #

1.当通过浏览器发送一个请求

2.会被StrutsPrepareAndExecuteFilter拦截

3.会调用struts2框架默认的拦截器(interceptor)完成部分功能,根据struts.xml文件调用指定action

4.在执行Action中执行

5.根据Action中方法的执行结果来选择跳转页面Resutl视图


# Struts2配置文件加载顺序 #

                init_DefaultProperties()    1.
                第一个加载的是default.properties文件
          位置:struts2.jar包  org.apache.struts2包下
          作用:主要是声明了struts2框架的常量

                init_TraditionlXmlCofigurations(); 2.
        第二个加载的是一批配置文件
        Strtus-default.xml
        位置:struts2-corl.jar
        作用:声明了 interceptor result bean
        Struts-plugin.xml
        位置:在strtus2的插件包中
        作用:主要用于插件的配置
        Strtus.xml
        位置:在我们自己的工作中
        作用:用于我们自己工程使用strtus框架的配置

                init_LegacyStrutsProperties();   3.
        第三个加载的是自己定义的strtus.properties
         位置:都是在自己工程的src下
         作用:定制常量

                init_CustomConfigurationProviders();  5.
         第五个:自定义配置提供
               
        init_FilterInitParaneters();   6.
        第六个加载的是web.xml配置文件
          主要是加载strtus2框架在web.xml文件中的相关配置

                init_AliasStandardObjects();   7
        第七个bean相关配置

重点掌握:
   
  1.Default.properties

  2.Struts-default.xml

  3.Struts-plugin.xml
   
  4.strtus.xml

  5.web.xml

# struts.xml文件配置 #

1.package配置

  1.1.name属性  作用:定义一个包的名称,它必须唯一。

  1.2.namespace属性 作用:主要是与action标签的name属性联合使用来确定一个action的访问路径
  
  1.3.extends属性 作用:指定继承自哪个包。一般值是strtus-default。strtus-default包是在strtus-default.xml文件中声明的

  1.4.Abstruct属性 它代表当前包是一个抽象的,主要是用于被继承

2.action配置

   1.1.name属性  作用:主要是与package的namespace联合使用来确定一个action的访问路径

   1.2.class 属性  作用:用来指示当前的action类

   1.3.method属性  作用:用来指示当前的action类中的哪个方法执行

3.result配置

   它主要是用于指示结果视图
  
   1.1.name属性 作用是与action类的method方法的返回值进行匹配,来确定跳转路径

   1.2.type属性 作用是用于指定跳转方式


Action 类创建方式(三种)

         1.创建一个pojo类
     Pojo(plan Ordinary java object)简单的java对象
     Pojo类就是没有实现任何接口没有继承任何类
     优点:无耦合
     缺点:所有的功能都要自己完成

2.创建一个类实现一个Action接口
   
    com.opensymphony.xwork2.Action
    在Action接口中定义了五个常量,一个execute方法
    五个常量:它们是默认的五个结果视图<result name=””>:
    ERROR:错误视图
    INPUT:它是struts2框架中interceptor中发现问题后会访问的一个视图
    LOGIN:它是一个登陆视图,可以在权限操作中使
    NONE:它代表的是null,什么都不做(也不会做跳转操作)
    SUCCESS:这是一个成功视图
    优点:耦合度底
    缺点:还是需要自己来完成功能

3.创建一个类继承ActionSupport类

    com.opensymphory.xwork2.ActionSupport
    ActionSupport类也实现了Action接口
    我们在开发中一般会使用这种方案:
    优点:具有丰富的功能,例如 表单校验 错误信息设置 国际化
    缺点:耦合度高


# Struts2框架封装数据 #

两种方法:

1.属性驱动

   a.直接在action类提供与请求参数匹配属性,提供get/set方法

   b.在action类中创始一个javaBean,对其提供get/set,在请求时页面上要进行修改,
  
   例如user.username  user.password,要使用ognl表达式
  
   以上两种方式的优缺点:

   第一种比较简单,在实际操作我们需要将action的属性在赋值给模型(javaBean)去操作

   第二种:不需要在直接将值给javaBean过程,因为直接将数据封装到了javaBean中。它要求在页面上必须使用ognl表达式,就存在页面不通用问题

2.模型驱动

  步骤:
   
   1.让Action类要实现一个指定接口ModeDriven

   2.实例化模型对象(就是要new出来javaBean)

   3.重写getModel方法将实例化的模型返回。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马