struts & 运行机制

根据浏览器当中的 url地址


这里写图片描述


url地址的请求通过http协议,发送给 tomcat


tomcat根据请求地址,找到相对应的 webapps (图中的webapps为struts1)


然后读取struts1所对应的 web.xml 文件

这里写图片描述


找到web.xml中有一个 filter ,它会过滤所有的url地址(/*)


访问地址 /demo/hell_ss 被filter中的class接收:

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


这里写图片描述


filter找到对应的 struts.xml 文件


然后根据请求路径找对对应的 namespace

这里写图片描述

地址中的namespace为 “/demo”


然后再找,看 “/demo” 下面是否有名字为 hell_ss 的 action


如果有,找到对应 action 中的 result 是谁


找到 /Hello.jsp


将 Hello.jsp 的 结果反馈给 浏览器


流程图:


这里写图片描述


action + 配 class

这里写图片描述


filter找到这个action的时候,回new一个IndexAction3类对象,然后调用对象的execute方法,方法返回success

这里写图片描述


具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
具体Action的实现可以是一个普通的java类,里面有public String execute方法即可
或者实现Action接口
不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法


struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。

这里写图片描述

用注解

这里写图片描述

和 base标签

这里写图片描述

现在的 href=”path/path” ,实际上是一个绝对路径:
http://localhost:8080/struts2/ ” + ” path/path”
访问的即是:struts2项目下的 namespace为“path”的,下面的“path”的 “action”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值