Struts2控制器以及struts.xml与web.xml的配置(1)

2024-09-03 10:48

本文主要是介绍Struts2控制器以及struts.xml与web.xml的配置(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • MVC设计模式

MVC设计模式的宗旨是把一个Web应用的输入、处理和输出流程按照Model、View、和Controller的方式进行分离,这样一个应用就被分成3个层:模型层、视图层、和控制层。

视图(view):视图代表用户交互界面。MVC对于视图的处理仅限于视图中数据的采集与处理以及用户的请求处理,而不包括对视图中业务流程的处理。

模型(Model):表示业务数据与业务逻辑,它是Web应用的主体,视图中的业务数据有模型提供。(在MVC设计模式的开发中关键的一点是让一个模型为多个视图提供业务数据,这样可以提高代码的可重用性与可读性,也给Web应用后期的维护代理方便)

控制器(Controkker):控制器是视图与模型之间的纽带。控制器将视图接收的数据交给相应的模型去处理,将模型返回的数据交给相应的视图去显示。

  • Struts2

Struts2采用拦截器或者拦截栈将实现业务逻辑同Servlet API分离开。Struts2使用拦截器作为处理,以用户的业务逻辑控制器为目标,创建一个控制器代理。Struts2框架的大致处理流程如下。

(1)客户端浏览器发送一个请求。

(2)核心控制器FilterDispatcher根据请求决定调用合适的Action

(3)WebWork的拦截器链自动对请求应用通用功能,如验证等

(4)回调Action的execute()方法,该方法根据请求的参数来执行一定的操作。

(5)execute()方法的处理结果信息将被输出到浏览器中,Struts2支持多种形式的视图,例如HTML,JSP等。

  • Struts2 目录以及主要的jar

将Stuts2解压,可得以下几个文件

apps     存放Struts2的示例程序

lib         存放Struts2的核心类库,以及第三方的插件类库

src       存放Struts2框架的全部源代码

docs   存放Sruts2的相关文档

struts2-core-x.x.x.jar  Struts2的核心库

xwork-x.x.x.jar  WbeWork的核心课,需要他的支持

ognl-x.x.x  OGNL表达式语言,Struts2支持该EL.

freeemarker-x.x.x.jar   表现层框架,定义了Struts2的可视化组建的额主题

commons-loging-x.x.x.jar   日志管理。


  • Struts 2配置文件

Struts2的核心配置文件为 struts.xml,该文件用来配置Struts2应用中的Action。另外,Struts2应用中还有一个配置全局属性的struts.properties文件。

1.struts.xml文件配置

<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd">
<struts><constant name="struts.i18n.encoding" value="gb2312"/><package name="default" extends="struts-default"><action name="showWords" class="action.ShowWords"><result name="success">/showWords.jsp</result><result name="input">/inputWords.jsp</result></action><action name="showAll" class="action.showAll"><!--type用来指定转向的资源类型,默认为jsp。例如,如果需要转向其他的Action则需要指明转向的类型,设置type属性值为redirect--><result type="redirect">showPerson</result></action><action name="showPerson" class="action.ShowPerson"><result name="success">/showPerson.jsp</result></action></package>
</struts>

2.struts.properties配置文件

struts.i18n.reload=true  #自动加载国际化信息
struts.i18n.encoding=UTF-8

  • 在Form表单中 action的书写

<s:form action="showPerson"><s:textfield name="person.name" label="姓名"/><s:textfield name="person.sex" label="性别"/><s:textfield name="person.age" label="年龄"/><s:textfield name="person.address" label="住址"/><s:submit value="提交"/></s:form>

<form name="myForm" action="showWords.action" method="post">请输入您的姓名:<input name="name" type="text"/><br/><input type="submit" name="mySubmit" value="提交"/></form>

  • Struts2控制器

Sturts2的控制器分为核心控制器FilterDispatcher其主要负责拦截所有的用户请求。另一个就是业务控制器Action。

  • 核心控制器FilterDispatcher

它包含了struts2框架内部的控制流程和处理机制。FilterDispatcherz作为一个Filter运行,负责拦截所有用户的请求。

1.Struts2框架结构。

按模块划分可以分为Servlet Filters、Struts核心模块、拦截器和用户实现模块。

2.Struts2处理过程。

(1)客户端提交一个请求(HttpServletRequest)。例如 http://localhost:8080/Demo/login.action。

(2)请求被提交到一系列的过滤器(Filter),按处理的先后顺序可以将过滤器分为ActionContextCleanUp、其他过滤器(SiteMesh等)、FilterDispatcher

(3)FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个请求。如果ActionMapper决定需要调用某个Action.则FilterDispatcher把请求的处理交给ActionProxy。

(4)ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。

(5)ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。(在调用之前,ActionInvocation会根据配置加载Action相关的所有拦截器)。

(6)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。

  • 业务控制器Action

所谓的业务控制器就是用户实现Action类的实例。

这篇关于Struts2控制器以及struts.xml与web.xml的配置(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132757

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom