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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

15846125943

初级黑马

  • 黑马币:40

  • 帖子:20

  • 精华:0

© 15846125943 初级黑马   /  2018-2-7 19:21  /  962 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

框架
框架是一些将通用的,基础的功能封装起来的半成本.
  好处:
    提高开发效率:
    降低维护成本:  
  
使用框架,框架已经帮我们做了基础的功能,我们要做的就是写逻辑!

有哪些框架:
      web层  : struts2,springMVC
      service层 : spring
      dao层  : Hibernate(hql),mybatis

     struts2,Hibernate实际上是比较重的框架,重在封装的很深.基础的功能比较多.
     springMVC,mybatis相对是比较轻的.

    ssh:struts2,spring,Hibernate
    ssm:springMVC,spring,mybatis
    struts2,spring,mybatis也是可以的,但是用的比较少.

    框架还有很多,dubbo,springboot等等.这些框架解决的问题也不一样.

struts2的重点:
   1,学习如何使用 :主流还是使用配置文件,当然也是可以使用注解开发.
   2,配置文件  :配置文件里面都可以配置什么?如何配置
   3,struts2流程 :当一个请求到达struts2直到响应到浏览器,都经过了什么?
   4,拦截器  :类似于过滤器.
   5,action  :action是什么?怎么写?
   6,ognl&值栈  :ognl如何取值,值栈如何存值,存进去的值是什么样子?
   7,封装数据  :在struts2中如何封装数据,都有哪些方式.

struts2入门:
   1,首先将jar包copy到/WEB-INF/lib下,共13个.
   2,配置web.xml
   <filter>
    <filter-name>struts2Filter</filter-name>
    <filter-class>
     org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    <!-- 可以声明struts2框架常量值
    <init-param>
     <param-name>struts.i18n.encoding</param-name>
     <param-value>GBK</param-value>
    </init-param>
     -->
   </filter>
   <filter-mapping>
    <filter-name>struts2Filter</filter-name>
    <url-pattern>/*</url-pattern>
   </filter-mapping>

配置struts2.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>
   <package name="default" namespace="/" extends="struts-default">
    <action name="struts2" class="cn.itheima.web.action.Struts2Action" method="show"></action>
   </package>
   </struts>
如何获取参数:
   属性驱动:设置其属性
     1,直接在action中给出,和页面input中name属性的值一样的成员变量,同时提供get/set!
      <input type='text' name='username'>
      public String username ;
     2,在action中给出要封装的对象,然后input中的name 要写成员变量.属性名
      <input type='text' name='user.username'>
      public User user ;
   
模型驱动:
     实现一个ModelDriven<T>接口,建立一个成员变量,同时重写getModel()方法
  
     private User user = new User();;
     public  User getModel(){
     return user;
     }
  
     页面:<input type='text' name='username'>

配置文件加载顺序(了解):
    1,default.properties.里面都是一些常量.
    2,struts-default.xml struts-plugin.xml struts.xml(我们自己的配置文件)
    3,struts.properties文件(我们自己的配置文件,一般已经不使用了)
    4,自定义配置
    5,加载web.xml
    6,bean配置

后加载的会覆盖之前加载的

详解struts.xml
   <!-- struts最外层的标签 -->
   <struts>
   <!-- 声明常量,这里可以覆盖掉default.properties的配置 -->
   <!-- 可以帮助我们解决post请求乱码问题 -->
   <constant name="struts.i18n.encoding" value="UTF-8"></constant>
   <!-- package 有点像 java的类,他可以继承也可以是抽象的 -->
   <!-- name属性的名称必须唯一,不唯一报错 -->
   <!-- namespace叫做命名空间,一般是我们一个模块下,都用写在一个package下,都是一个namespace也是唯一的-->
   <!-- extends继承,我们的package是可以继承的,可以写一个package,让别的package继承,这里我们继承的是struts2的默认的-->
   <package name="default" namespace="/" extends="struts-default">
   <!-- global-results 当前package下,所有的action返回视图都可以使用这里面的,相当于一个package级别全局的-->
   <global-results>
   <!-- 返回的视图 -->
   <result name="" type=""></result>
   </global-results>
  
   <!-- namespace + name组成了我们的访问路径-->
   <!-- class是类的全路径 -->
   <!-- mothod是这个请求要访问哪一个方法 -->
   <action name="login" class="cn.itheima.web.action.LoginAction" method="login">
   <!-- 方法中返回的字符串,会在这里面匹配,如果匹配上,执行对应这个路劲的页面 -->
   <!-- name属性: 在java的方法中 return一个字符串,如果这个字符串和name的值一样,将进行跳转-->
   <!-- 这里默认转发,要是重定向增加 type="redirect" -->
   <result name="success" type="redirect">/success.jsp</result>
   <result name="failer">/failer.jsp</result>
   </action>
   
   <!-- 当请求符合*_*这种格式 a_b 那么{1}就是a {2}就是b -->
   <!-- 会访问cn.itheima.web.action.aAction的b()方法 -->
   <!-- 虽然对于开发,这样写能节约很多时间,但是,一般情况下之后使用一个* -->
   <!-- <action name="*_*" class="cn.itheima.web.action.{1}Action" method="{2}"></action> -->
   </package>
   </struts>

创建一个action类
   简单类    :什么都没有
   实现Action   :有五个常量,一个默认方法
   继承ActionSupport :有功能,

   传统开发一般使用ActionSupport,或者是自己实现一个BaseAction.
   对于今天大家写代码,那种方式都随意.

2 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马