(1)Struts2-初识Struts2

初识Struts2

基础了解:
       框架的概念:
            框架(framework) 是整个或部分系统的可重用设计概念上的结构,用于解决或处理复杂的问题。
使用框架的好处:
    可重用代码、
    可重用设计、
    分布式组件管理,便于组件的复用与分离、
    结构统一
    降低开发成本

JavaEE中的框架:
    Struts:java领域最著名的框架,是MVC设计的事实标准。
    Spring:JavaEE应用程序的集成框架,任何java程序都能从中受益。
    Hibernate:最著名的ORM框架,实现数据层操作。


Struts2框架的介绍
        Struts2是Struts1的下一代产品,是再Struts和webwork的技术基础上进行了合并的全新MVC框架。
因为Struts2框架基本以WebWork为技术核心, 可以说Struts2相当于WebWork2.0。

Struts2相对于Struts1的优势:(八个知识点重点学习
       (1) 与JSP/Servlet低耦合
      (2)业务模型不需要考虑线程安全
      (3)业务模型为POJO类
      (4)表单模型的简化
      (5)丰富的视图技术支持
      (6)AOP和拦截器的使用
      (7)完善的数据类型转换
      (8)OGNL表达式的支持


Struts框架是Apache致力于推高JavaEE技术标准的产物,MVC框架的公认标准。
传统的Model2设计的缺陷:核心控制器在新增业务模型时需要同步修改Servlet业务模型,与ServletAPI耦合性高。



架构Struts2框架的步骤
(1)导入框架所需的jar包
(2)配置web.xml的核心控制器
   
   
  1. <!-- 配置Struts核心控制器 -->
  2. <filter>
  3. <filter-name>struts</filter-name>
  4. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  5. </filter>
  6. <!-- 配置映射 -->
  7. <filter-mapping>
  8. <filter-name>struts</filter-name>
  9. <url-pattern>*.action</url-pattern>
  10. </filter-mapping>
(3)创建模型
   
   
  1. public class LoginAction extends ActionSupport {
  2. @Override
  3. public String execute() throws Exception {
  4. return SUCCESS;
  5. }
  6. }
(4)配置Struts.xml
   
   
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "struts-2.1.7.dtd" >
  3. <struts>
  4. <package name="niit" extends="struts-default">
  5. <action name="login" class="com.niit.action.LoginAction">
  6. <result name="input">WEB-INF/error.jsp</result>
  7. <result name="success">login.jsp</result>
  8. <result name="login">tag.jsp</result>
  9. </action>
  10. </package>
  11. </struts>

搭建注意点:
    Struts2以 过滤器作为请求的拦截手段
    核心控制器为 StrutsPreparenAndexecuteFilter
    Struts.xml需要配置在 classpath路径下
    Struts.xml中的package必须配置 extends属性,且值为 struts-default


Struts2执行流程:

简单描述:
           客户端发送一个请求,请求经过核心控制器(filter) ,核心控制器会根据请求的URL找到在配置文件中对应的Action,执行action前会执行相关拦截器操作,然后找到对应的返回视图,将处理得到的数据一并返回给客户端。



分布式管理Struts.xml
    Struts2允许在多个包中构建配置文件,在classpath的struts.xml统一管理。
struts.xml
   
   
  1. <struts>
  2. <!-- 配置文件可以分布式管理,通过导入其他文件来整合框架 -->
  3. <include file="com/niit/action/user-action.xml"></include>
  4. </struts>

URL的分布管理
    通过设定namespace允许在URL中体现分布在不同package中的action
    
    
  1. <package name="java" extends="struts-default" namespace="/user">
  2. </package>




Action如何获取表单的数据?
    属性驱动
    模型驱动

属性驱动
    JSP页面的表单元素指定name属性
    Action类中声明同名的属性
    提供属性的setter和getter方法
    
    
  1. public class LoginAction extends ActionSupport {
  2. //设置与表单元素name同名的属性,用以获取请求提交的数据
  3. private String userName;
  4. private String password;
  5. @Override
  6. public String execute() throws Exception {
  7. System.out.println(userName);
  8. System.out.println(password);
  9. System.out.println("进入了LoginAction");
  10. return SUCCESS;
  11. }
  12. public String getUserName() {
  13. return userName;
  14. }
  15. public void setUserName(String userName) {
  16. this.userName = userName;
  17. }
  18. public String getPassword() {
  19. return password;
  20. }
  21. public void setPassword(String password) {
  22. this.password = password;
  23. }
  24. }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值