初学者入门--Structs中基本配置入门

智能体工程能力实战:闭源旗舰、开源框架、国产Agent与代码专用Agent四大类型深度对比 智能体(Agent)不是LLM的简单封装,而是融合工具调用、状态管理、容错调度与合规审计的工程系统。其核心能力取决于底层架构对不确定性处理的鲁棒性,而非参数规模或UI美观度。当前主流技术路径分为四类:闭源旗舰以高确定性换取服务可控性;开源框架提供高度自由但需自建稳定性地基;国产Agent在信创适配与监管合规间构建安全窄路;代码专用Agent则聚焦垂直领域意图实现,输出可调试、可演进的生产级代码。本文基于27个真实生产环境部署经验,从执行耗时、首次成功率、调试可见性、私有化能力及故障恢复机制等维度展开实测对比 阅读详情
 

初学者入门--Structs中基本配置入门

发布时间:2008.01.31 05:01     来源:赛迪网    作者:evenbetter

1.为Structs应用配置Web.xml文件
  
  第一步:配置ActionServlet
  
  < servlet>
  < servlet-name>action< /servlet-name>
  < servlet-class>org.appache.structs.ActionServlet< /servlet-class>
  < /servlet>
  
  < servlet-mapping>
  < servlet-name>action< /servlet-name>
  < uri-pattern>*.do< /url-pattern>
  < /servlet-mapping>
  
  注意:不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Structs框架只允许在应用中配置一个ActionServlet。
  
  第二步:初始化参数对Servlet的运行环境进行初始化配置。
  
  < servlet>
  < servlet-name> action< /servlet-name>
  < servlet-class> org.appache.structs.ActionServlet < /servlet-class>
  < init-param>
  < param-name>config< /param-name>
  < param-value>/WEB-INF/structs-config.xml< /param-value>
  < /init-param>
  < /servlet>
  
  表2-1. Struts1.1中用到的初始化参数
  
  参数名       含义/默认值
  config     以相对路径的方式指明Struts应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml。
  config/sub1   以相对路径的方式指明子应用程序的配置文件位置,一般来说,很少用到子应用程序,在此不多描述。
  debug      设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。
  detail     设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。
  
  第三步:配置欢迎清单
  
  当客户访问Web应用时,如果仅仅给出Web应用的Root URL,没用指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。
  
  < welcome-file-list>
  < welcome-file>welcome.jsp< /welcome-file>
  < welcome-file>index.jsp< /welcome-file>
  < /welcome-fiel-list>
  
  说明:< welcome-file-list>可以包含多个< welcome-file>子元素,首先查找第一个< welcome-file>文件。
  
  由于< welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Structs的Action作为欢迎文件,可以采用一种变通的方法来实现在欢迎文件中调用Structs Action。首先,在Structs配置文件中为被调用的Action创建一个全局的转发项,例如:
  < global-forwards>
  < forward name=”welcome” path=”HelloWord.do”/>
  < /global-forwords>
  
  创建一个welcome.jsp的文件
  
  最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,代码如下:
  < welcome-file-list>
  < welcome-file>welcome.jsp< /welcome-file>
  < /welcome-file-list>
  
  第四步:配置错误处理
  
  < error-page>
  < error-code>404< /error-code>
  < location>/commom/404.jsp< /location>
  < /error-page>
  < error-page>
  < error-code>505< /error-code>
  < location>/commom/505.jsp< /location>
  < /error-page>
  
  也可以为Web容器捕获的Java异常配置< error-page>,需要设置< exception-type>子元素,它用于指定Java异常类。Web容器可能捕获如下异常:
  
  RuntimeException或Error  ServletException或它的子类 IOException或它的子类
  
  < error-page>
  < exception-type>java.io.IOException< /exception-type>
  < location>/common/system_ioerror.jsp< /location>
  < /error-page>
  
  第五步:配置Structs标签库
  
  使用客户化的标签库,要配置它们
  
  < taglib>
  < tag-uri>/WEB-INF/structs-html.tld< tag-uri>
  < taglib-location>/WEB-INF/structs-html.tld< /taglib-location>
  < /taglib>
  
  < tag-uri>用于指定标签库的相对或者绝对URI地址,Web应用根据这一URI来访问标签库。
  
  < taglib-location>指定标签描述文件在文件资源系统中的物理位置。
  
  2.Structs配置文件
  
  Structs框架在启动时会读入其配置文件,根据它来创建和配置各种Structs组件。
  
  1< Structs-config>元素
  
  < structs-config>元素是Structs配置文件的根元素,< structs-cofig>元素有8个子元素。它的DTD定义如下:
  
  < !ELEMENT structs-config(data-sources?,formbean?,global-exeception?,global-forward?,action-mapping,controller?,message-resources*,plug-in*)>
  
  在Struts配置中,必须按照以上的DTD指定的先后顺序来配置< Structs-config>元素的各个子元素,如果颠倒了这些元素的配置文件中的位置,在Structs应用启动时会生成错误。
  
  < data-sources>元素
  
  < data-sources>元素包含零个、一个或者多个< data-sources>子元素,< data-sources>用于配置特定的数据源,它可以包含多个< set-property>子元素,用于设置数据源的各种属性。
  。。。
  
  配置了数据源后,就可以在Action类中访问数据源,在org.apache.structs.action.Action类中定义了getDataSource(HttpRequrst)方法,它用于获取数据源对象的引用。
  
  DataSource dataSource;
  Connection connection;
  dataSource =getDataSource(request);
  connection=dataSource.getConnection();
  
  也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过改值来标识特定的数据源。
  
  2< form-beans>元素
  
  < form-beans>元素用来配置多个ActionForm Bean,< form-beans>包含多个< forom-bean>子元素,,每个< from-bean>包含多个属性,ClassName , name,type
  
  < form-beans>
  < form-bean name="HelloForm" type="hello.HelloForm"/>
  < /form-beans>
  
  注意:配置动态ActionForm Bean,还必须配置< form-bean>元素的< form-property>元素。
  
  < form-beans>
  < form-bean name="HelloForm" type="hello.HelloForm"/>
  < form-bean name="userForm" type="org.apache.structs.action.DynaAction">
  < from-property name="firstname" type="java.lang.String"/>
  < form-property name="secondname" type="java.lang.String">
  < form-property name="age" type="java.Integer" initial="18">
  < /form-beans>
  
  3< global-exception>元素
  
  < global-exception>用于配置异常处理,< global-exception>元素可以包含零个或者多个< exception>元素。
  
  < exception>元素用来设置java异常和异常处理类org.apache.structs.action,Exception Hander之间的映射。
  
  4< gloable-forwards>元素
  
  < global-forwards>元素用来声明全局的转发关系,< global-forwards>有零个或多个< forward>元素组成。< forward>元素用于把一个逻辑映射到特定的URL
  
  属性      描 述
  
  className  和< forward>元素对应的配置类,默认为org.apache.structs.action.ActionForWard
  
  name     转发路径的逻辑名,此项时必须的
  
  path     指定或者重定向的URI。此项时必须的,必须以”/”开头
  
  redirect   此项是true,表示是执行重定向的操作,此项是false时,表示请求转发。
  
  < global-forwards>
  < forward name="forward1" path="/Action1.do"/>
  < forward name="forward1" path="/Action2.do"/>
  < /global-forwards>
  
  如果jsp1.jsp把请求转发给Action1,可以使用以下代码:
  
  < html:link forward=”forward1”>
  
  或者< logic:forward name=”forward1”>
  
  如果Action1的execute()方法把请求转发给JSP2.jsp,可以使用一下代码:
  
  return(mapping.findForward(“forward2”))
  
  5< action-mapping>元素
  
  < action-mapping>元素包含零个或者多个< action>元素。< action>元素描述了从特定的请求路径到相应的Action类的映射。
  
  6< controller>元素
  
  < controller>元素用于配置ActionServlet。
  
  7<  message-resources>元素
  
  < message-resources>元素用于配置Resource Bundle,Resource Budle用于存放本地化消息文件。
  
  Structs标签
  
  HTML标签
  
  标签名        描述
  base         包装HTML的base元素
  button        包装HTML的 button类型的input元素
  cancel        包装HTML cancel 按钮
  checkbox       包装HTML checkbox 类型的输入域
  errors        有条件地显示一些error消息,显示ActionErrors信息
  file         包装HTML文件上传输入域
  form         定义HTML form 元素
  frame        包装HTML frame 元素
  hidden        包装HTML hidden 输入域
  html         包装 HTML中的 html 元素
  image        包装 "image"类型的输入域
  img         包装HTML的 img 元素
  javascript      包装根据ValidatorPlugIn提供的校验规则所提供的javascript校验脚本
  link         包装超链接
  messages       有条件地显示一些提示信息,显示ActionMessages信息
  multibox       包装多选输入框
  option        包装一个选择输入框
  options       包装一批选择输入框
  optionsCollection  包装一批选择输入框集
  password       包装密文输入框
  radio        包装单选输入框
  reset        包装“重置”功能的按钮
  rewrite       包装一个URL
  select        包装一个选择输入框
  submit        包装一个提交按钮
  text         包装一个文本输入框
  textarea       包装一个备注输入框
  
  ActionForm
  ActionForm 的要求
  
  创建一个ActionForm 并不困难,但是你的类必须符合一些要求:
  
  ActionForm 必须扩展自org.apache.struts.ActionForm。基类ActionForm 是不能实例化的。
  
  ActionForm 必须为每个应该从请求中收集的HTML控件定义一个公共属性。
  
  (Struts 1.0 要求每个属性都要mutator 和accessor 。Struts 1.1 则没有如此严格)
  
  ActionForm还可能要符合一些可选的要求:
  
  如果你要求ActionForm 在传递属性到Action之前校验它们,你就必须实现validate
  
  方法;
  
  如果想在组装前初始化属性,必须实现reset , 它在ActionForm 组装前被调用;
  
  动态ActionForm
  
  ActionForm 作为类型转换器
  
  ActionForm的一个强制点是应该使用String 和boolean属性。实际上,这意味着属性
  
  必须得从一种转换到另一种类型。大部分应用也需要一些属性,比如电话号码或者数量,以
  
  一种格式化的方式出现。核心Java 包提供一些工具来做这种事情,但是要清楚地将他们集
  
  成到应用中仍然是一个挑战。
  
  Struts 开发人员经常在ActionForm中包含helper方法,来进行类型转换。helper 方法
  
  可以有很多种实现方式,这我们在5.6种叙述。
  
  5.2.6 ActionForm 作为防火墙
  
  当请求提交时,ActionServlet 使用一个自动组装机制来从请求参数中设置请求的
  
  ActionForm属性。这让你可以通过控制哪个ActionForm 属性被暴露来控制哪个请求参数
  
  是可接受的。这也意味着如果你的ActionForm 的粗心设计你可能失去控制哪个参数可以接
  
  受的能力。ActionForm 一定不能包含看起来像是一个JavaBean 属性,但不能从HTTP 请
  
  求设置的属性方法。
  
  5.3.4 ActionForm 可以嵌套其它bean
  
  因为Struts 标签扩展和自动组装机制都支持点号语法来从ActionForm访问其它
  
  bean。这是一个方便的方式,可以通过ActionForm来组装存在的bean。在JSP 页面, 你可
  
  以象这样引用一个嵌套的bean:
  
  < html:text
  propety="values.telephoneText"
  size="14"
  maxlength="14"/>
  
  5.7.2 分发(Dispatch )
  
  Struts 开发人员通常使用同一个Action处理相关的操作。一个通常做法来选择操作是在HTML表单中使用隐藏属性。BaseForm 的dispatch 属性也可用作这个目的:
  public void setDispatch(String dispatch);
  public String getDispatch();
  
  Struts 配置提供连个级别嵌套的ActionForward:
  
  Global (全局) ActionForward对整个应用中的所有Action 对象均有效;
  
  Local (局部) ActionForward 则在ActionMapping 元素中定义。仅对那些在这个
  
  ActionMapping中调用的Action对象有效。
  
  从Action 对象内部来看,forward 通常像这样来选择:
  ActionForward forward = mapping.findForward("continue"); 

[工作流节点10] 获取多条数据并循环执行 —— 明道云批处理自动化实战 本文系统介绍了明道云工作流中"获取多条数据+循环执行"的批处理功能。该功能通过筛选数据集合并逐条处理,适用于批量通知、数据更新等场景。文章详细解析了功能配置方法,包括数据筛选、循环设置和异常处理,并提供了合同到期提醒等典型应用案例。同时强调了数据量控制、分批处理、错误处理等优化策略,帮助用户实现高效批量自动化。这一功能组合能将业务从单条处理升级为批量驱动,显著提升工作效率。 阅读详情

相关推荐

基于carsim与Simulink联合仿真的车辆换道轨迹规划与轨迹跟踪模型

PID_反步控制_滑膜控制三种四旋翼无人机轨迹跟踪控制算法仿真 附带对应的说明文档,提供建模过程与仿真结果文献(英文)➕PPT 描述:采用的同一种参考轨迹,都是三维仿真 三种控制方法: [1]PID控制、[2]反步控制、[3]滑膜控制(三个仿真模型) 每个仿真均应用了同一种轨迹路径,直接运行即可出三维图,可以实现四旋翼无人机轨迹的跟踪

2501_90804007的博客 1084

Structs详细用法(一)

1.首先在Project里右键Myeclipse,选择add structs capabilities.   Structs-config.xml核心配置文件,名字可以改动。 之后在src下多了一个类包,里面有一个资源文件。多了structs和依赖包,多了标签和xml配置文件。 //PS:(个人理解:action可以改,而且随着配制的改变,xml里面也会相应的改动,当jsp提交到.

Barving的专栏 3238

李宏毅机器学习hw3

Homework 3 - Convolutional Neural Network 1作业概述 在food_11文件中有三个文件分别是training、validation、testing,打开training和validation可以看见总共有11种食物(0-10的类别编号),而testing是没有类别编号的。 然后用卷积神经网络对食物图片进行分类。 2导入用到的库 torch库 这个我弄了半天,直接pip总是timeout,用镜像源下下来又出现OSError: [WinError..

老问题的博客 4188

Struts入门

Struts简介: 一、Struts快速入门案例 为什么要学习Struts呢?因为Web层jsp页面调用servlet过于繁琐,Apache组织开发了一套针对web层简化操作的框架,可以简化Web层的操作。 首先,我们了解了为什么要学习Struts后,我们先来用上Struts框架实现用户注册页面。 1、编写一个注册页面 2、把表单的注册请求交给struts处理

xiangxiang520的博客 424

Transformer凭什么取代RNN?深入拆解自注意力机制与梯度消失问题的终极对决

本文深入探讨了Transformer如何通过自注意力机制解决RNN的梯度消失问题,成为自然语言处理领域的新标准。通过对比RNN和Transformer的架构差异,揭示了自注意力机制在并行计算、长期依赖处理等方面的技术优势,并提供了实际任务中的性能对比数据。

f6g7h8i9j的博客 190

实现单芯片2400bps 音频编解码方案

终于按照朋友的需求,帮他开发了一款单芯片集音频采集编码传送并接收解码播放功能的方案,交给快递公司邮寄给远在郑州的他.整个项目从开始定型到现在一个样机送出,整整花了1个月时间,感觉挺有成就感,挺有意思,工作是辛苦的,结果却是快乐的.现在将这中快乐的的心情与大家分享一下.    真个项目用一颗主控搞定,ARM9的,200KBytes 片内RAM,主频可以跑到300MHz,64pin LQFP封装

nyxsec的专栏 3684

Structs入门

 <!--.style2 {color: #FFFFFF}.style2 {color: #FFFFFF}.style5 {color: #009900}.style6 {color: #FF0000}-->

lijian910wolf的专栏 1877

Grafana 可视化配置

Grafana 可视化操作使用

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 1940

初学者入门:Structs中基本配置入门

1、为Structs应用配置Web.xml文件第一步:配置ActionServlet action org.appache. structs.ActionServlet action *.do 注意:不管应用中包含多少个子应

牧场_SZ_Shepherd... 1075

JavaScript教程-字符集,Unicode转义序列,标识符,数据类型,数字,未定义值,浮点数,字符串,引用数据类型,类型检测,类型转换,运算符,关系运算符,

前端学习

VAN 212

GPU硬件架构与微架构深度解析09-GPU寄存器文件深度解析

本文探讨GPU架构中大规模寄存器堆的设计与高效分配算法。寄存器文件作为GPU关键组件,支持大规模线程并行和快速数据存取。文章分析了多体寄存器堆的设计考量,包括端口数量、冲突避免和功耗管理,并比较了线性扫描、图着色等寄存器分配算法的特点。还介绍了寄存器压缩、动态分区等高级优化技术,以及NVIDIA Ampere架构的实际案例。这些技术对提升GPU计算性能和能效至关重要。

2301_79143213的博客 120

Structs中基本配置入门

第一章Structs的基本配置1.为Structs应用配置Web.xml文件第一步:配置ActionServlet  action  org.appache.structs.ActionServlet   action   *.do注意:不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Structs框架只允许在应用中配置一个Ac

!Java 7177

【C语言】初识C语言(上篇)

初识C语言第一部分

StackFrame 4014

Structs2入门篇(环境搭建及Demo)

Structs2入门篇(环境搭建及Demo)

王海峰的专栏 2841

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Structs2基本配置入门

Structs2基本配置入门   来源:javaresearch.org  作者:liudayong1、为Structs应用配置Web.xml文件第一步:配置ActionServletxml 代码     action     org.appache. structs.ActionServlet     

work1986的专栏 817

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Structs的基本配置入门

第一章Structs的基本配置 1.为Structs应用配置Web.xml文件 第一步:配置ActionServlet   action   org.appache.structs.ActionServlet    action    *.do 注意:不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Structs框架只允

HouYing 1153

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

structs2 初次配置

本文分为structs2的配置 和  structs2框架下程序(hello structs)的运行。 1   配置structs      1 新建dynamic web project: hellostructs      2 从官网下载完整的structs2 文件夹      3 将structs文件下app下的structs2-blank.war 用winrar解压  

LTianchao的专栏 1707
上一篇: 深入剖析关于JSP和Servlet对中文的处理
下一篇: J2SE综合:JavaBean与EJB有何不同之处
DeepBlueII
博客等级 码龄18年 7粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值