博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于MVC的应用框架之Struts前奏
阅读量:7132 次
发布时间:2019-06-28

本文共 1367 字,大约阅读时间需要 4 分钟。

1.JSP&Servlet中的MVC

  MVC的关键是,业务逻辑要与表示分离。通过把业务逻辑放在一个“模型”中,这样业务逻辑本身就能作为一个可重用的JAVA类存在。

  在JSP&Servlet中,servlet充当cotroller的角色,它的工作流程如下:

  • 获取请求数据封装;
  • 调用服务方法;
  • 跳转(转发/重定向);

2.通用的ActionServlet

  在JSP&Servlet中,用户的每个不同请求都需要一个servlet控制器处理,并且进行servlet的配置。由于servlet的工作流程的相似性,为了避免创建多个servlet,可以做一个通用的servlet(ActionServlet),它的工作流程如下:

  • 根据请求的URL,得到业务处理Action类方法;
  • 调用Action类中的方法,获得返回标记;
  • 根据返回标记得到转发方法以及转发页面;
  • 转发;

  原本需要针对每个请求创建多个servlet,现在只需要对应每个请求创建一个Action类,只用一个servlet就可以完成控制器的功能。URL对应的Action类和Action类中的方法,返回值标记对应的转发方法和转发页面都要写在配置文件中。这个配置文件结构如下:

  ActionServlet的具体工作流程如下:

  • 获取请求URL,得到路径名;
  • 根据路径名,读取配置文件,得到业务处理的Action的全名及处理方法;
  • 利用反射机制创建对象,调用方法获取返回标记;
  • 根据返回标记,读取配置文件,得到对应的转发类型和转发页面;
  • 转发;

3.读取配置文件

  由于需要多次查询配置文件(每个请求),所以配置文件最好只读一次,可以在ActionServlet的init()方法中读取配置文件。因为servlet的init()只在servlet初始化时执行一次,而且是单例的。

  用JAVA类封装struts.XML

  • action节点--->ActionMapping(name,className,method,Map(String,Result) results属性)
  • result节点--->Result(name,type,page属性)
  • 所有action-->ActionMappingManager(Map(String,ActionMapping) allActions属性)

  ActionMappingManager类在构造函数中读取struts.XML文件,将其封装在一个Map(String,ActionMapping) allActions对象中,并提供一个返回ActionMapping的getActionMapping(String actionName)方法,使ActionServlet可以通过请求URL得到响应的ActionMapping对象。ActionServlet在init()方法中初始化ActionMappingManager对象,从而保证只读取struts.XML一次。

4.struts开发步骤

  有了通用的ActionServlet,struts开发只需要两步:

写Action类;

配置Action;

 

转载于:https://www.cnblogs.com/juaner767/p/5520341.html

你可能感兴趣的文章
UVALive 6889 City Park 并查集
查看>>
CentOS6.8配置GO语言开发环境
查看>>
sed笔记
查看>>
一个简单的无限滚动的加载数据实现
查看>>
高铁在高速运行时的电力是如何提供的?
查看>>
fedora23的打印服务
查看>>
线程中消费者生产者的实例代码(使用Lock类)
查看>>
转-ubuntu清理卸载wine的残余项目
查看>>
Unity工程3D和2D开发模式切换
查看>>
IP地址网段规划
查看>>
单台服务器上安装Hadoop和Hive十五分钟教程
查看>>
LDA-线性判别分析(一)
查看>>
算法入门系列一--DP初步
查看>>
【转】C++中了类继承和调用父类的构造函数方法
查看>>
dsPIC33EP ADC模块初始化及应用实例
查看>>
常用SQL查询语句
查看>>
网址收集
查看>>
SCP远程拷贝命令
查看>>
世界大部分的变化变革是一直有人在问为什么不能做得更好。
查看>>
FreeMarker:怎么使用
查看>>