Java Web入门之Struts2和MVC基础的详解及实战

创作不易 觉得有帮助或者想要源码请点赞关注收藏后评论区留言

文章目录


前言

Struts2是一个非常出色的MVC框架 它得到的广大程序开发人员的认可 


一、理解MVC原理

MVC(Model-View-Controller) 模式-视图-控制器 是一种程序设计理念 目前在Java Web应用方面MVC框架有很多 常见的流行框架有Struts JSF Tapestry Spring MVC等等 在这些框架中Struts框架的应用最为广泛

1:控制器

使用中央控制器ActionServlet充当控制层 将请求分发信息 配置在struts.cfg.xml中 当客户端发送一个HTTP请求时 将由Struts的中央控制器对请求进行分发处理 在处理之后返回ActionForward对象 将请求转发到指定的JSP页面 也客户端进行回应

2:模型

模型层主要由Struts中的ActionFrom及业务JavaBean实现 其中ActionForm对象对表单数据进行封装 它能够与网页表单进行交互并传递数据 业务JavaBean用于处理真正的业务请求 由Action进行调用

3:视图

视图主要指用户看到并与之交互的界面 即Java Web应用程序的外观

二、Action对象

Action对象是Struts2框架中的重要对象 它主要用于对HTTP请求进行处理 在Struts2 API中 Action对象是一个接口 它位于com.opensymphony.xwork2包中 在Struts2项目开发中 创建Action对象都要直接或者间接实现此对象  声明代码如下

public interface Action{
 public static final String SUCCESS="success";
 public static final String NONE="none";
 public static final String ERROR="error";
 public static final String INPUT="input";
 public static final String LOGIN="login";
 public String execute()throws Exception;
}

 SUCCESS:Action执行成功时的返回值

NONE:也是Action执行成功的返回值 但不需要返回到成功页面

ERROR:Action执行失败时的返回值

INPUT:代表需要返回到某个输入信息的页面的返回值

LOGIN:代表需要用户登录的返回值

Action的基本流程

当浏览器向Web容器发送一个HTTP请求时 Web容器就要调用Struts2过滤器的doFilter()方法 此时Struts2就接受到了HTTP请求,通过Struts2的内部处理机制 它会判断整个HTTP请求是否与某个Action对象相匹配 如果找到了与整个HTTP请求匹配的Action 就会调用Action对象的execute()方法。并根据处理结果返回相应的值,然后Struts2就会通过Action的返回值找返回值所映射的页面  最后通过一定的视图回应给浏览器

流程时序图如下

 

动态Action

动态Action时通过请求Action对象中的一个具体的方法来实现动态操作的,其具体的操作方式是:

在请求Action的URL地址后方加上请求字符串(方法名称) 与Action对象中的方法进行匹配 需要注意的是 Action地址与请求字符串之间需要以!进行分割 

/userAction!add
/userAction!update

三:Struts2的配置文件

1:Struts2的包配置

在struts.xml文件中存放一个包的概念 它类似于Java中的包 配置文件struts.xml中的包使用<package>元素声明 主要用于放置一些项目中的相关配置 可以理解成配置文件中的一个逻辑单元 已经配置好的包可以被其他包继承 从而提高配置文件的重用性 

<struts>
 <!--声明包-->
<package name="user" extends="struts-default" namespace="/user">
  ......
</package>
</struts>

2:名称空间配置

在Java Web开发中 Web文件目录通常以模块进行划分 在Struts2配置文件提供了名称空间的功能,用于指定一个Action对象的访问路径,它的使用方法是通过在配置文件struts.xml的包声明中 

使用namespace属性进行声明

<struts> 
<!--声明包-->
<package name="book" extends="struts-default" namespace="/bookmanager">
 ...
</package>
</struts>

 3:Action相关配置

Struts2框架中的Action对象是一个控制器的对象 Struts2框架通过Action对象处理HTTP请求,其请求地址映射需要配置在sturts.xml文件中 它的配置方法使用<action>元素进行配置

<action name="userAction" class="com.lyq.action.UserAction" method="save">
 <result>success.jsp</result>
</action>

4:通配符实现简化配置

通过一定的命名约定 使用通配符来配置Action对象 从而达到一种简化配置的效果 主要有以下两个

* 匹配0或多个字符 

\ 是一个转义字符 如需要匹配 \ 则使用\ /进行匹配 

5:返回结果的配置

在MVC的设计思想中 业务逻辑处理需要返回一个视图View Struts2框架中通过Action结果映射配置返回视图

在配置文件struts.xml中 结果映射使用<result>元素进行映射 

<action name="user" class="com.lyq.action.UserAction">
 <result>/user/Result.jsp</result>
 <result name="error">/user/Error.jsp</result>
 <result name="input" type="dispatcher">/user/Input.jsp</result>
</action>

创作不易 觉得有帮助或者想要源码请点赞关注收藏后评论区留言

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

showswoller

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值