struts2中的constant属性详解
struts2 global-allowed-methods的用法
struts2 global-allowed-methods的用法Struts2中的`global-allowed-methods`是一个全局配置属性,用于限制或允许用户使用的HTTP方法。
该属性可以在`struts.xml`配置文件中的`<constant>`元素中设置。
以下是`global-allowed-methods`属性的用法示例:1. 允许所有的HTTP方法:```xml<constant name="struts.enable.DynamicMethodInvocation" value="false" /><constant name="struts.mapper.allowMethods" value="*" />```2. 允许GET和POST方法:```xml<constant name="struts.enable.DynamicMethodInvocation" value="false" /><constant name="struts.mapper.allowMethods"value="GET,POST" />```3. 禁止所有的HTTP方法:```xml<constant name="struts.enable.DynamicMethodInvocation" value="false" /><constant name="struts.mapper.allowMethods" value="" />```在上述示例中,`struts.enable.DynamicMethodInvocation`属性设置为`false`,表示禁用动态方法调用。
javascript中的constant方法
javascript中的constant方法【原创版3篇】目录(篇1)1.概述2.常用方法3.常量方法的定义4.常量方法的优点5.常量方法的缺点6.实例正文(篇1)1.概述在 JavaScript 中,constant 方法是一种用于定义常量的方法。
常量是一种在程序运行过程中保持不变的值,不能被修改。
在 JavaScript 中,可以使用 const 关键字来定义常量。
2.常用方法在 JavaScript 中,有一些常用的方法可以用来定义常量,包括:- const:使用 const 关键字定义常量,可以指定变量名和值,但不能被修改。
- let:使用 let 关键字定义变量,可以指定变量名和值,但在块级作用域内可以被修改。
- var:使用 var 关键字定义变量,可以指定变量名和值,但在函数内部可以被修改。
3.常量方法的定义在 JavaScript 中,可以使用 const 关键字来定义常量方法。
常量方法的定义与普通方法相似,只是在方法名前加上 const 关键字。
例如:```javascriptconst PI = 3.1415926;const NAME = "张三";```4.常量方法的优点常量方法具有以下优点:- 不可修改:常量方法的值在程序运行过程中保持不变,不能被修改。
- 提高代码可读性:通过使用常量方法,可以使代码更易于阅读和理解。
- 减少错误:由于常量方法的值不能被修改,可以避免因误操作导致的错误。
5.常量方法的缺点常量方法的缺点是,它们的值不能被修改。
在某些情况下,这可能会导致代码的灵活性降低。
6.实例下面是一个使用常量方法的实例:```javascriptconst PI = 3.1415926;const RADIUS = 5;function circleArea(radius) {return PI * radius * radius;}console.log(circleArea(RADIUS)); // 输出 78.53981633974483 ```在这个例子中,我们定义了两个常量方法 PI 和 RADIUS,并使用它们来计算圆的面积。
struts2
1.strust2框架来历简介:WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架。
(同时也是一个成熟的基于Web的MVC框架)MVC:Model View Controller,model是模型,view是视图,controller是控制器,是一种框架模式。
随着WebWork框架的发展,衍生出了strust2框架,因此strust2框架是WebWork的升级,而不是一个全新的框架,因此稳点性、性能等方面都有很好的保证,而且也同时吸收了struts1框架和WebWork俩者的优点.所以strust2框架也是一个基于Web的MVC框架注意:strust2框架并不是struts1框架的延续或者升级,俩者有着很大的不同2.web项目中的三层架构(和MVC是俩个完全不同的架构)1.表示层(Struts2框架就是工作在这个地方)2.业务逻辑层(service层,处理业务逻辑,比如判断用户名是否存在、密码是否正确、权限是否拥有、账号是否被冻结、账号是否异常、用户积分是否到达操作要求等等,多为一些执行某一个操作条件的判断)3.数据访问层(dao层,专门处理和数据库进行交换的事情,jdbc/hibernate就在这里使用)在项目中,这些不同的分层的表现形式,其实就是在我们自己建的不同的package 中写上各自分层中所使用的java类.比如在项目中我们建了三个package,三个package中java类的作用分别为表示层的代码、业务逻辑层代码、数据访问层代码。
注意:可以理解为,MVC架构是这里说描述的三层架构的一部分,即:三层架构中的表示层可以使用mvc架构的框架来实现,例如使用struts2框架.3.使用struts2框架的好处(为什么要使用struts2框架)减少编程人员代码的编写,使代码更加简洁明了,缩短开发时间,增加开发效率.4.struts2框架引入到web项目中首先使用Eclipse/MyEclipse中建一个web项目.1.把struts2相关jar包引入到项目中。
Struts2文件配置介绍
Struts2⽂件配置介绍Struts2⽂件配置介绍struts2structs.xml⽂件配置标签package标签<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><!-- 配置post请求以及repsone的编码格式 --><constant name="struts.i18n.encoding"value="UTF-8"></constant><!-- 配置请求路径的扩展名 --><constant name="struts.action.extension"value="action,,"></constant><!-- 开启热部署 --><constant name="struts.devMode"value="true"></constant><package name="index"namespace="/"extends="struts-default"><action name=""class="erAction"method="toLogin"><result name="toLogin">/WEB-INF/view/login.jsp</result></action></package><include file="com/forward/test/web/action/struts.xml"></include></struts>配置web应⽤的不同模块,⼀般在⼀个功能模块下配置⼀个package,在当前的package下配置这个模块的多个action name属性给不同的模块起不同的名字,随便写,不重复即可namespace属性给不同的模块设置访问的根路径,可以配置成/extends属性表⽰继承, struts-default 是struts2给我们提供的⼀个packageaction标签action 标签表⽰配置⼀个请求name 属性表⽰请求路径的后缀,⼀般表⽰功能模块中的具体请求,name的名字就代表访问路径的名称class 属性表⽰当有请求过来的时候调⽤的是哪个类中的⽅法,配置全类名method 表⽰class 请求调⽤的是class 中的哪个⽅法,指的是具体的⽅法名result标签result 结果配置,⽤于设置不同的⽅法返回值,可以配置不同的返回值对应不同的视图name 属性表⽰结果处理名称,与action中的返回值对应type 属性表⽰指定哪个result 类来处理显⽰的页⾯,默认是内部转发,可以在struts-default 的⽂件中进⾏查看标签体表⽰相对路径,相对于web应⽤开始常量配置默认的常量配置在structs核⼼包中修改常量配置⽅式及加载顺序对于常量的配置, 默认加载的是structs核⼼包中的default.properties,如果通过以下3种进⾏配置,就会按照默认–>1–>2–>3 的顺序加载,后⾯设置的常量会覆盖之前设置的常量1. 在structs.xml⽂件中,在structs的根标签下,书写constant 标签进⾏配置,在项⽬中主要使⽤这种⽅式2. 在src下创建structs.properties⽂件,将内容复制到此⽂件进⾏修改3. 在web.xml⽂件中,配置context-param 第⼀种⽅式第⼆种⽅式第三种⽅式常⽤常量设置struts.i18n.encoding=UTF-8 ⽤于配置接收参数和向外输出中⽂的编码格式⼀般设置为UTF-8struts.action.extension=action, 指定访问action的路径的后缀名,使⽤, 表⽰可以有两个后缀名,可以是action也可以是没有后缀名struts.devMode = false 指定structs是否是以开发模式运⾏,能够⽀持修改配置⽂件后进⾏热部署,所以我们可以将其设置为true动态⽅法调⽤如果⼀个业务模块有多个⽅法,我们可以使⽤动态⽅法调⽤省略action的配置,设置动态⽅法调⽤有两种⽅法⽅法⼀开启动态⽅法调⽤<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>配置action的时候不写method在访问的时候输⼊⽹址http://localhost:8080/webapp/namespace/name!method ⽅法⼆ 通配符⽅式关闭动态⽅法调⽤对于⽅法名可以使⽤⼀个* 通配符,在后⾯的class和method可以使⽤{索引} 来读取前⾯的内容访问路径localhost:8080/webapp/namespace/class_methodstructs2中的默认配置<constant name ="struts.enable.DynamicMethodInvocation" value ="true"></constant><package name ="helloWorld" namespace ="/User" extends ="struts-default"><action name ="d_" class ="com.zhiyou100.struts.web.action.demo3.Demo3Action" ><result name ="success">/hello World.jsp </result></action> </package><package name ="demo3" namespace ="/User" extends ="struts-default"><action name ="*_*" class ="com.zhiyou100.struts.web.action.demo3.{1}" method ="{2}"><result name ="success">/helloWorld.jsp </result></action></package>method的默认值executeresult的默认值是successresult的type的默认值是dispatcherclass的默认值是ActionSupport 其中有execute ⽅法返回值是success配置package下的默认的action,当访问当前包下,如果找不到指定action,就会⾃动寻找默认的action <package name="default"namespace="/user"extends="struts-default"><default-action-ref name="demoAction"></default-action-ref><action name="demoAction"class="erAction"><result>/WEB-INF/view/404.jsp</result></action></package>结果跳转的⽅式结果的跳转⽅式可以通过result的type属性进⾏设置转发转发到指定页⾯对于type属性,默认是dispatcher ,就是转发到响应界⾯,可以不⽤进⾏配置转发到指定action对于type属性需要设置为chain ,并在其下⽅配置<param> 标签<result name="error"type="chain"><param name="namespace">/</param><param name="actionName"></param></result>重定向重定向到指定界⾯对于type属性,设置为redirect ,就是重定向到界⾯,如果需要进⾏重定向就必须进⾏此处的设置<result name="error"type="redirectAction"><param name="namespace">/</param><param name="actionName"></param></result>。
Struts2标签使用
Struts2标签使用(1):<s:textfield> ---- 文本输入框使用:<s:textfield name=”实体Bean。
属性”></s:textfield>(2):<s:textarea> ----- 文本域输入框使用:<s:textarea name=”实体Bean。
属性”></s:textarea>(3):<s:password> ----- 密码输入框使用:<s:password name=”实体Bean。
属性”></s:password>前三个基本都是一样的。
如果是要显示值的话可以这样:value = “实体Bean。
Get***()”。
(4):<s:radio list=””> ---- 单选按钮使用:<s:radio list=””>其中list 属性是必须要有的。
<1>:第一种方式:list = “#{‘male’:’男’,’female’:’女’}”<2>:第二中方式:list = “#request/session.list”。
---- 与action 结合起来了。
如果要默认选中的话后面加上value = “”.也可以通过javascript 的方式来默认选中。
(5):<s:url/> --- url连接<s:a/> --- 超链接这两个标签一般结合起来来使用。
使用:<s:url id = “id” action = “userAction”/><s:a href=”%{id}”/>(6):<s:form/> --- 获取相应form的值使用:<1>:<s:form action = “userAction”><2>:<s:url id=”userId” action = “userAction”> -- 定义了一个userId的指向userActionde 路径<s:form action=”%{userId}”>(7):<s:submit/> ---- 提交标签(8):<s:reset/> ---- 重置标签(9):<s:hidden/> ---- 隐藏域标签使用:<s:hidden name=”实体Bean。
Struts2知识点总结
Struts2基础知识Struts2概述1.Struts2框架应用javaee三层结构中的web层框架。
2.Struts2框架在struts1和webwork基础之上发展的全新框架。
3.Struts2所解决的问题:在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。
图解:4.现在比较稳定的Struts2版本struts-2.3.24-all.zip5.web层常见框架1.struts2.springMVCStruts2框架入门1.导入jar包1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring包,是不能使用的,导入会导致程序不能运行。
2.到app目录里面复制案例的jar包是最好的方法。
2.创建action3.配置action类的访问路径1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的,位置必须在src下面,名称为struts.xml 。
2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即可。
3.action的配置*注意访问路径:http://域名/端口号/项目名/action名.action注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。
4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴即可。
Struts2执行过程图解:Struts2配置1.是一种常量标签2.修改Struts2的默认常量值1.常用方式在struts.xml中进行配置。
2.其它两种方式1.在src下面创建struts.properties文件并修改。
2.在web.xml文件中进行修改。
3.Struts2最常用的常量struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。
Struts2笔记(一)可使用全局页面。
1、配置方法:在package标签下配置2、注意:该标签只能在一个package标签中使用,如果有多个标签,需要重新定义。
struts.xml配置详解
struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置文件。
分别介绍一下几个struts.xml中常用到的标签1、<include>利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml 中使用<include>标签引入其他配置文件。
比如一个网上购物程序,可以把用户配置、商品配置、订单配置分别放在3个配置文件user.xml、goods.xml和order.xml中,然后在struts.xml中将这3个配置文件引入:struts.xml:01<?xml version="1.0"encoding="UTF-8"?>02<!DOCTYPE struts PUBLIC03"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 04"/dtds/struts-2.0.dtd">0506<struts >07<include file="user.xml"/> 08<include file="goods.xml"/> 09<include file="order.xml"/>10</struts >user.xml:01<?xml version="1.0"encoding="UTF-8"?>02<!DOCTYPE struts PUBLIC03"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 04"/dtds/struts-2.0.dtd">0506<struts >07<package name="wwfy"extends="struts-default">08<action name="login"class="er.LoginAction"> 09<!--省略Action其他配置-->10</action>11<action name="logout"class="er.LogoutAction"> 12<!--省略Action其他配置-->13</action>14</package>15</struts >2、<constant>在之前提到struts.properties配置文件的介绍中,我们曾经提到所有在struts.properties文件中定义的属性,都可以配置在struts.xml文件中。
Struts2的配置文件详解
1.3.包含配置:
在Struts2中可以将一个配置文件分解成多个配置文件,那么我们必须在struts.xml中包含其他配置文件。
<struts>
<includefile="struts-default.xml"/>
<includefile="struts-user.xml"/>
erName= userName;
}
/**
*@returnthepassword
*/
publicString getPassword() {
returnpassword;
}
/**
*@parampasswordthepasswordtoset
*/
publicvoidsetPassword(String password) {
</action>
</package>
</struts>
如上示例的配置,配置了一个名为default的包,该包下定义了一个Action。
1.2.命名空间配置:
考虑到同一个Web应用中需要同名的Action,Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action。
Struts2通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。
l public Map getSession():返回一个Map对象,该Map对象模拟了HttpSession实例。
l public void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名-属性值对。
constant常见用法c语言
constant常见用法c语言1.常量的定义和声明在C语言中,常量是指在程序执行过程中不会发生改变的值。
常量可以用于增加程序的可读性、减少错误以及提高程序的执行效率。
本文将介绍C语言中常量的定义和声明方法。
1.1整型常量整型常量是指不带小数部分的常量,包括正整数、负整数和0。
在C语言中,整型常量可以直接写明其值。
示例:```i n ta=5;//声明一个整型变量,并将其赋值为5```1.2浮点型常量浮点型常量是指带有小数部分的常量。
在C语言中,浮点型常量可以使用小数形式来表示,也可以使用科学计数法来表示。
示例:```f l oa tb=3.14;//声明一个单精度浮点型变量,并将其赋值为3.14d o ub le c=1.23e-4;//声明一个双精度浮点型变量,并将其赋值为0.000123```1.3字符常量字符常量是指用单引号括起来的单个字符。
在C语言中,字符常量可以直接写明其值,也可以使用转义字符来表示特殊字符。
示例:```c h ar d='A';//声明一个字符型变量,并将其赋值为'A'c h ar e='\t';//声明一个字符型变量,并将其赋值为制表符```1.4字符串常量字符串常量是指用双引号括起来的多个字符组成的序列。
在C语言中,字符串常量以空字符'\0'结尾。
示例:```c h ar f[]="H el lo,wo r ld!";//声明一个字符型数组,并将其赋值为字符串常量"He ll o,w o rl d!"```2.常量的使用常量在C语言中可以用作各种变量的初始值或者进行数值计算。
下面将介绍常量在C语言中的常见用法。
2.1常量的赋值常量可以直接赋值给变量,作为其初始值。
示例:```i n tg;g=10;//将常量10赋值给变量g```2.2常量的加减乘除运算常量可以参与各种数值运算,包括加法、减法、乘法和除法运算。
struts2限制请求体集合大小的参数
struts2限制请求体集合大小的参数在Struts2 中,如果你想要限制请求体(通常是HTTP POST 请求的内容)的大小,你可以通过配置Struts2 的struts.xml文件或使用Struts2 的过滤器来实现。
1.在struts.xml中配置:你可以在Struts2 的struts.xml配置文件中设置struts.multipart.maxSize参数来限制上传文件的大小。
这个参数也间接地限制了请求体的大小,因为它主要用于文件上传。
xml<constant name="struts.multipart.maxSize"value="your_size_in_bytes" />这里your_size_in_bytes是你想要设置的最大请求体大小(以字节为单位)。
2. 在Web.xml 中配置:如果你使用的是Struts2 的struts2-filter,你也可以在web.xml文件中设置filter-init-param来限制请求体大小。
xml<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class><init-param><param-name>struts.multipart.maxSize</param-name><param-value>your_size_in_bytes</param-value></init-param></filter>1.注意:2.1.struts.multipart.maxSize主要用于限制文件上传的大小。
Struts2中的constant配置详解
Struts2中的constant配置详解1.<constant name="struts.i18n.encoding" value="UTF-8" />指定Web应⽤的默认编码集,相当于调⽤ HttpServletRequest的setCharacterEncoding⽅法。
2.<constant name="struts.i18n.reload" value="false"/>该属性设置是否每次HTTP请求到达时,系统都重新加载资源⽂件。
该属性默认值是false。
在开发阶段将该属性设置为true会更有利于开发,但在产品发布阶段应将该属性设置为false。
3.<constant name="struts.custom.i18n.resources" value="application"/>该属性指定Struts 2应⽤所需要的国际化资源⽂件,如果有多份国际化资源⽂件,则多个资源⽂件的⽂件名以英⽂逗号(,)隔开。
4.<constant name="struts.action.extension" value="action" />该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理。
如果⽤户需要指定多个请求后缀,则多个后缀之间以英⽂逗号(,)隔开。
5.<constant name="struts.serve.static.browserCache " value="true" />设置浏览器是否缓存静态内容,默认值为true(⽣产环境下使⽤),开发阶段最好关闭。
Struts2介绍
Struts2集成指南关于Struts2Struts是Apache软件基金会(ASF)赞助的一个开源项目。
它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。
它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架〔Web Framework〕,是MVC经典设计模式中的一个经典产品。
Struts,a history在Java EE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServer Pages(JSP)的源代码中,采用HTML与Java代码混合的方式进行开发。
因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。
为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan采用了MVC的设计模式开发Struts。
后来该框架产品一度被认为是最广泛、最流行JAVA的WEB应用框架。
Craig McClanahan2006年,WebWork与Struts这两个优秀的Java EE Web框架(Web Framework〕的团体,决定合作共同开发一个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名为“Struts 2”,原Struts的1.x版本产品称为“Struts 1”。
至此,Struts项目并行提供与维护两个主要版本的框架产品——Struts 1与Struts 2。
Struts1 vs. Struts2侵入性Struts 1在编程方面是面向抽象类编程,而不是面向接口编程。
Struts 1要求自定义Action 类继承一个特定的抽象基类Action。
另一方面,Struts 1的 Action 依赖于 Servlet API,因为Struts 1 Action 的execute 方法中有HttpServletRequest 和HttpServletResponse 方法。
struts2配置文件详解
<struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<cosntant name="struts.ui.theme" value="xhtml" />
<!-- spring 托管 -->
<constant name="struts.objectFactory" value="spring" />
<!--
指定加载struts2配置文件管理器,默认为org.apache.struts2.config.DefaultConfiguration
<!-- 设置默认的locale和字符编码 -->
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.i18n.encoding" value="GBK" />
<!-- 该属性指定Struts 2文件上传中整个请求内容允许的最大字节数 -->
struts2讲义
e.g. ums_struts2_02_action/struts.xml Ⅲ. 使用 DMI 或通配符 目的:减少 Action 的数量 方式一:动态方法调用(Dynamic Method Invocation DMI,struts2.1 后不建议使 用) 定义一个 Action 类,类中可以定义多个与 execute()方法,声明部分相同但方法名 不同的方法。 e.g. ums_struts2_02_action/UserAction_DMI.java 1、定义 UserAction_DMI 类
e.g. ScopeAction_3.java 方式四:实现 ServletRequestAware 接口
e.g. ScopeAction_4.java 注意:1、其中,前两种方式与 Servlet API 解耦合,后两种方式与 Servlet API 耦合,推荐使 用第二种方式,第二种方式使用了 IOC 的模式,解耦合更好。 Ⅵ.Action 中生成响应信息 e.g. ums_struts2_02_result Struts2 框架通过 Action 中 execute()方法的返回值,与 struts.xml 中<action>的<result>元 素的 name 属性值来判断最终响应信息的内容。其中<result>元素设置如下: <result type=”结果类型” name=”名称”>WEB 资源路径或名称</result> 说明: 1、name:result 名称随便起,默认为“success“,与 execute 方法返回值一致。 2、 WEB 资源路径或名称:WEB 资源路径如果为相对路径,则该路径相对于 WEB 应用上下文。如果跳转到 Action 则为该 Action 所对应的<action>元素的 name 值。 3、 type:设置生成响应信息的类型,默认为 dispatcher。 (Ⅰ)ActionSupport 中预定义的结果常量 在 Struts2 的 ActionSupport 类中预定义了一些 Result 常量,当定义的 Action 类继承了 ActionSupport 时就可以使用这些结果常量,当然也可以使用自定义的 result 字符串。
constants用法介绍
constants用法介绍在编程中,"constants"(常量)通常用于表示在程序执行期间不会改变的值。
常量的值在程序运行时是固定的,不可修改。
不同的编程语言对常量的支持和定义方式可能有所不同,以下是一些常见的编程语言中常量的用法介绍:1. C语言:在C语言中,使用`#define`预处理指令可以定义常量。
例如:```c#define PI 3.14159```这样,程序中的任何地方都可以使用`PI`来表示3.14159。
2. C++语言:在C++中,除了可以使用`#define`之外,还可以使用`const`关键字定义常量。
例如:```cppconst double PI = 3.14159;```这样的定义更加类型安全,因为编译器可以对类型进行检查。
3. Java语言:在Java中,使用`final`关键字来定义常量。
例如:```javafinal double PI = 3.14159;```在Java中,通常使用大写字母表示常量。
4. Python语言:在Python中,没有显式的常量关键字,但是通过约定,通常将常量的名称全部大写。
例如:```pythonPI = 3.14159```尽管可以改变`PI`的值,但通过命名约定,开发者通常将其视为常量不进行修改。
5. JavaScript语言:在JavaScript中,使用`const`关键字定义常量。
例如:```javascriptconst PI = 3.14159;```类似于C++,JavaScript中的`const`定义更加类型安全。
无论使用哪种编程语言,使用常量可以提高代码的可读性和可维护性,因为它明确了哪些值是固定不变的。
当程序中的某个值不应该被修改时,使用常量是一个良好的实践。
java constants用法
java constants用法Java中的常量(constants)是程序中不可改变或者不能被重新赋值的量,常量的值在程序运行期间不会发生改变。
常量的定义方式如下:final data_type CONSTANT_NAME = value;1. final 关键字final 关键字用来声明常量,它只能被赋值一次,一旦被赋值后就不可在改变。
如果尝试去修改一个已经被 final 修饰的变量,编译器会提示错误。
2. data_type 数据类型与变量一样,常量也需要指定数据类型。
3. CONSTANT_NAME常量的名称遵循与变量相同的命名规则。
习惯上,常量名称通常使用全大写字母来表示。
4. value常量的值可以使用以下三种方式来指定:a. 直接赋值:final int x = 100;b. 通过运算表达式计算:final double PI = 3.14 * 2;c. 通过方法进行赋值:final double area = Math.PI * (radius * radius);常量的使用常量在Java程序设计中有着广泛的应用领域,以下是常用的几种场景:1. 代替魔术数字在程序中经常使用一些特定的数字值,被称为魔术数字。
利用常量来代替这些数字值可以使代码更加可读性高,易于维护。
“final” 关键字可以确保值不会被改变。
例如:final int MAX_VALUE = 100;2. 对象引用常量在Java中,一个对象的引用是一个指向该对象的内存地址的值。
会经常需要使用这个对象的引用来操作该对象的属性或者方法。
使用常量引用该对象可以使得代码更加优美,易于维护,并且可以减少对内存的开销。
final ArrayList<String> list = new ArrayList<String>();3. 枚举常量枚举常量是指一个指定数据类型的常量集合,在Java SE 5之后引入了枚举类型。
constant常见用法 -回复
constant常见用法-回复常见用法[Constant]【引言】中括号中的主题是常见用法——常量(constant)。
在计算机编程中,常量指的是在程序运行期间其值不会改变的变量。
它们在程序中具有固定的值,不可被修改。
本文将逐步回答以下问题:什么是常量?它们有哪些常见的用法?为什么常量在编程中如此重要?我们还将介绍常量的不同种类及其使用示例。
让我们一起深入了解常量在编程中的作用。
【正文】一、什么是常量?在计算机编程中,常量是指在程序运行期间其值不会发生变化的变量。
与变量不同,常量是不可修改的。
它们可以在程序的不同位置使用,但无论如何,它们的值都不会改变。
在许多编程语言中,常量用于存储不会改变的数值、字符串或其他数据类型。
二、常量的常见用法1. 数值常量:数值常量用于存储不会变化的数字值。
例如,一个圆的周长可以用π(pi)近似值作为常量存储。
这意味着在整个程序中,圆的周长将保持不变,始终等于π的值。
const double PI = 3.14159;2. 字符串常量:字符串常量用于存储不可改变的文本。
例如,我们可以使用字符串常量来存储一个人的姓名。
const string NAME = "Tom";3. 枚举常量:枚举常量用于定义一系列可选值。
它们被用作选择或标记标签。
例如,我们可以使用枚举常量来表示一周中的每一天。
enum Days {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};4. 符号常量:符号常量用于定义在程序中使用的常用值。
它们通常是用来提高代码的可读性和可维护性。
例如,当我们编写一个程序计算学生考试成绩时,我们可以使用符号常量来定义及格分数的阈值。
const int PASS_MARK = 60;三、常量的重要性常量在编程中扮演着重要角色。
以下是几个常量的重要性:1. 增加代码可读性:使用常量可以避免硬编码数值和文本。
struts2
一、Struts2入门1.概念什么是Struts2Struts2 是一个用来开发 MVC 应用程序的框架.它提供了 Web 应用程序开发过程中的一些常见问题的解决方案:对页面导航活动进行管理对来自用户的输入数据进行合法性验证统一的布局可扩展性国际化和本地化支持 Ajax表单的重复提交Struts2 VS Struts1Struts2与Struts1 相比,在体系结构方面更优秀,具体表现在类更少,更高效,扩展更容易等。
struts2 不是从 Struts1 扩展而来的, 说它是一个换了品牌标签的 WebWork 更合适。
2.程序Struts2 核心就是一个 Filter,该Filter会对所有的请求进行拦截(/*) StrutsPrepareAndExecuteFilterStrutsPrepareFilter + StrutsExecuteFilterStruts2 将所有的请求拦截下来,具体去访问哪个java类的方法需要读取配置文件 struts.xmlstruts.xml 文件需位于工程的类路径下实现一个 Struts 的 HelloWorld 程序1) 将 %struts2-blank例子%\WEB-INF\lib 目录下所有jar包拷贝至 webproject\WEB-INF\lib 中拷贝至webproject/WEB-INF/web.xml 中3) %struts2-blank例子%\将WEB-INF\classes 下的struts.xml 文件拷贝至工程src下清空 <struts></ struts> 标签之间的内容4) 新建 Action 实例, HelloWorldAction.javaAction可以不必是实现任何接口,它是一个普通java类(pojo),从这点可以看出 Struts2 是非侵入式设计,Action可以不依赖struts和Servlet 而独立存在Action中至少需要定义一个方法,且方法的返回值类型必须为Stringpublic String sayHello() {return "success";}6) 在 WEB-INF 下新建jsp页面hello.jsphello动手练习:用 struts2 实现最简单的mvc二、Struts2 细节1.package 元素配置action的组织包name:配置包名,用于被继承namespace: 配置访问路径以 /a/b/c/action 为例搜索action的顺序为 /a/b/c -- /a/b -- /a -- /extends: 指定继承的包2. action 元素1) name属性配置action的访问名称后缀默认为 action和””可以通过常量进行配置<constant name="struts.action.extension" value="do"></constant>2) class属性配置action对应的java类,必须为完整类名如果继承struts-default 包,默认class 为ActionSupport,该类的 execute方法默认返回 success我们在写 Action 类时通常会选择继承ActionSupport,也就自动继承了 execute 方法,同时可以使用父类定义的常量 SUCCESS、ERROR 等3) method属性配置action的访问方法名,默认访问execute方法4) 通配符映射一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系通配符的映射规则●若找到多个匹配, 没有通配符的那个将胜出●若指定的Action不存在, Struts 将会尝试把这个URI与任何一个包含着通配符 * 的Action名及进行匹配●若 Struts 找到的带有通配符的匹配不止一个, 最后一个匹配将胜出●被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…{0} 匹配整个 URI●* 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 \.例:<action name="*_add" class="cn.itcast.action.Girl" method="add"></action>匹配路径 Boy_add.action Girl_add.action<action name="Boy_*_*" class="cn.itcast.action.Boy" method="{1}"><result name="success"><param name="location">/WEB-INF/jsp/{2}.jsp</param></result></action>Boy_add_delete 会调用 Boy的add方法,转发给 delete.jsp5) 动态方法调用通过 url 动态调用 Action 中的方法<action name="Boy" class="cn.itcast.action.Boy">/strutsdemo/Boy!add.action 会调用Boy类的add方法默认情况下, Struts 的动态方法调用处于激活状态, 若想禁用该功能, 则可以在 struts.xml 文件中配置常量3. Action 类概念:action: 应用程序可以完成的每一个操作(用户的一个动作) 例如:显示一个登陆表单,保存商品信息Action类:Struts2中的Action是pojo(Plain Old Java Objects一个普通的java类)的,可以定义属性和方法,但需要遵循一些规则:●属性的名字必须遵守与 JavaBeans 属性名相同的命名规则. 属性的类型可以是任意类型. 从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生●必须有一个不带参的构造器●至少有一个供 struts 在执行这个 action 时调用的方法,方法的返回值为String类型(即视图名称)●同一个 Action 类可以包含多个 action.●Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例4. result 元素配置 action 的执行结果name: 配置result结果名称,根据action执行方法的返回值决定找那个 result默认为 successtype: result 结果类型,默认为 dispatcher 类型常用的result类型●dispatcherdispatcher 结果类型是最常用的结果类型, 也是 struts 框架默认的结果类型用于将控制权转发给web应用中的其他资源默认参数:location 用于指定转发的资源路径,通常为一个jsp页面●redirect用于将响应重定向到另一个资源参数:location : 指定重定向的资源路径parse : 指定是否将location的值视为一个 OGNL 表达式来解析默认值为true●redirectAction用于将响应重定向给另一个Action参数:actionName : 指定目标action, 该属性为默认属性namespace : 指定目标 action 所在的 package●chain用于构成一个 Action 链,前一个action将控制权转发给下一个action,并且前一个action的状态在后一个action中继续保持参数:actionName : 指定目标action, 该属性为默认属性namespace : 指定目标 action 所在的 packagemethod :指定调用action的方法,默认调用 execute 方法●httpheader用于将把一个 HTTP 状态发送到浏览器默认参数 status :指定状态码●plaintext将转发的资源作为文本输出 , 不常用。
struts2常用标签详解
struts2标签详解A:<s:a xhref=""></s:a>-----超链接,类似于html里的<a></a><s:action name=""></s:action>-----执行一个view里面的一个action<s:actionerror/>-----如果action的errors有值那么显示出来<s:actionmessage/>-----如果action的message有值那么显示出来<s:append></s:append>-----添加一个值到list,类似于list.add();<s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajaxB:<s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值C:<s:checkbox></s:checkbox>-----复选框<s:checkboxlist list=""></s:checkboxlist>-----多选框<s:combobox list=""></s:combobox>-----下拉框<s:component></s:component>-----图像符号D:<s:date/>-----获取日期格式<s:datetimepicker></s:datetimepicker>-----日期输入框<s:debug></s:debug>-----显示错误信息<s:div></s:div>-----表示一个块,类似于html的<div></div><s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框E:<s:if test="#name=‟hujianqiang‟">asdfasdf</s:if><s:elseif test=""></s:elseif><s:else></s:else>-----这3个标签一起使用,表示条件判断F:<s:fielderror></s:fielderror>-----显示文件错误信息<s:file></s:file>-----文件上传<s:form action=""></s:form>-----获取相应form的值G:<s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用H:<s:head/>-----在<head></head>里使用,表示头文件结束<s:hidden></s:hidden>-----隐藏值I:<s:i18n name=""></s:i18n>-----加载资源包到值堆栈<s:include value=""></s:include>-----包含一个输出,servlet或jsp页面<s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入<s:iterator></s:iterator>-----用于遍历集合L:<s:label></s:label>-----只读的标签M:<s:merge></s:merge>-----合并遍历集合出来的值O:<s:optgroup></s:optgroup>-----获取标签组<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框P:<s:param></s:param>-----为其他标签提供参数<s:password></s:password>-----密码输入框<s:property/>-----得到'value'的属性<s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性R:<s:radio list=""></s:radio>-----单选按钮<s:reset></s:reset>-----重置按钮S:<s:select list=""></s:select>-----单选框<s:set name=""></s:set>-----赋予变量一个特定范围内的值<s:sort comparator=""></s:sort>-----通过属性给list分类<s:submit></s:submit>-----提交按钮<s:subset></s:subset>-----为遍历集合输出子集T:<s:tabbedPanel id=""></s:tabbedPanel>-----表格框<s:table></s:table>-----表格<s:text name=""></s:text>-----I18n文本信息<s:textarea></s:textarea>-----文本域输入框<s:textfield></s:textfield>-----文本输入框<s:token></s:token>-----拦截器<s:tree></s:tree>-----树<s:treenode label=""></s:treenode>-----树的结构U:<s:updownselect list=""></s:updownselect>-----多选择框<s:url></s:url>-----创建urlStruts2常用的Ajax标签Struts2为了简化Ajax过程,提供了一些常用的Ajax标签,对于一些更复杂的Ajax通信过程,我们可以使用JSON插件来实现。
struts2的配置文件
<!-- 定义默认的拦截器 每个Action都会自动引用,如果Action中引用了其它的拦截器,默认的拦截器将无效 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
当前路径为web-inf/classes
struts2的配置文件
类型
struts2共有4类配置文件,
struts.properties:定义框架自身的全局变量。
struts-default.xml:定义框架自身使用的action映射及result定义。
struts-plugin.xml:struts插件使用的配置文件,比如当使用struts和spring结合时就需要在web.xml中引用该配置文件。
-->
<package name="com.kay.struts2" extends="struts-default" namespace="/test">
<interceptors>
<!-- 定义拦截器-->
<interceptor name="timer" class="com.kay.timer"></interceptor>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
struts.custom.i18n.resources该属性指定struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。
struts.dispatcher.parametersworkaround 对于某些java ee服务器,不支持httpservlet request调用getparametermap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于weblogic、orion和oc4j服务器,通常应该设置该属性为true。
struts.velocity.contexts该属性指定velocity框架的context位置,如果该框架有多个context,则多个context之间以英文逗号(,)隔开。
struts.velocity.toolboxlocation该属性指定velocity框架的toolbox的位置。
struts.url.http.port该属性指定web应用所在的监听端口。该属性通常没有太大的用户,只是当struts 2需要生成url时(例如url标签),该属性才提供web应用的默认端口。
struts.mapper.class 指定将http请求映射到指定action的映射器,struts 2提供了默认的映射器:org.apache.struts2.dispatcher.mapper.defaultactionmapper。默认映射器根据请求的前缀与action的name属性完成映射。
struts.freemarker.wrapper.altmap该属性只支持true和false两个属性值,默认值是true。通常无需修改该属性值。
struts.xslt.nocache 该属性指定xslt result是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,该属性通常被设置为false。
其实,struts.properties文件的内容均可在struts.xml中以<constant name="" value=""></constant>加载。
下面将该文件的配置参数详细列举出来,方便大家查看;
struts.configuration
该属性指定加载struts 2配置文件的配置文件管理器。该属性的默认值是org.apache.struts2.config.defaultconfiguration,这是struts 2默认的配置文件管理器。如果需要实现自己的配置管理器,开发者则可以实现一个实现configuration接口的类,该类可以自己加载struts 2配置文件。
eclasscache
该属性指定整合spring框架时,是否缓存bean实例,该属性只允许使用true和false两个属性值,它的默认值是true。通常不建议修改该属性值。
struts.objecttypedeterminer 该属性指定struts 2的类型检测机制,通常支持tiger和notiger两个属性值。
struts 2框架有两个核心配置文件: struts.xml和struts.properties
其中struts.xml文件主要负责管理应用中的action映射,以及该action包含的result定义等。除此之外,struts 2框架还包含一个struts.properties文件,该文件定义了struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。
struts.enable.slashesinactionnames 该属性设置struts 2是否允许在action名中使用斜线,该属性的默认值是false。如果开发者希望允许在action名中使用斜线,则可设置该属性为true。
struts.tag.altsyntax 该属性指定是否允许在struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true,该属性的默认值是true。
注意 如果需要使用cos或者pell的文件上传方式,则应该将对应的jar文件复制到web应用中。例如,使用cos上传方式,则需要自己下载cos框架的jar文件,并将该文件放在web-inf/lib路径下。
struts.multipart.savedir 该属性指定上传文件的临时保存路径,该属性的默认值是javax.servlet.context.tempdir。
struts.configuration.files 该属性指定struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么struts 2框架默认加载struts.xml文件了。
struts.freemarker.manager.classna值是org.apache.struts2.views.freemarker.freemarkermanager,这是struts 2内建的freemarker管理器。
struts.url.https.port该属性类似于struts.url.http.port属性的作用,区别是该属性指定的是web应用的加密服务端口。
struts.url.includeparams该属性指定struts 2生成url时是否包含请求参数。该属性接受none、get和all三个属性值,分别对应于不包含、仅包含get类型请求参数和包含全部请求参数。
struts.locale
指定web应用的默认locale。
struts.i18n.encoding
指定web应用的默认编码集。该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为gbk或者gb2312。
提示 当设置该参数为gbk时,相当于调用httpservletrequest的setcharacterencoding方法。
struts.multipart.maxsize该属性指定struts 2文件上传中整个请求内容允许的最大字节数。
struts.custom.properties 该属性指定struts 2应用加载用户自定义的属性文件,该自定义属性文件指定的属性不会覆盖struts.properties文件中指定的属性。如果需要加载多个自定义属性文件,多个自定义属性文件的文件名以英文逗号(,)隔开。
struts.ui.theme该属性指定视图标签默认的视图主题,该属性的默认值是xhtml。
struts.ui.templatedir该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。
struts.ui.templatesuffix该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用ftl、vm或jsp,分别对应freemarker、velocity和jsp模板。
struts.objectfactory
指定struts 2默认的objectfactory bean,该属性默认值是spring。
struts.objectfactory.spring.autowrite
指定spring框架的自动装配模式,该属性的默认值是name,即默认根据bean的name属性自动装配。
struts.serve.static.browsercache 该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false。
struts.enable.dynamicmethodinvocation 该属性设置struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。
struts.properties文件是一个标准的properties文件,该文件包含了系列的key-value对象,每个key就是一个struts 2属性,该key对应的value就是一个struts 2属性值。
struts.properties文件通常放在web应用的web-inf/classes路径下。实际上,只要将该文件放在web应用的classpath路径下,struts 2框架就可以加载该文件。
struts.i18n.reload该属性设置是否每次http请求到达时,系统都重新加载资源文件。该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发,但在产品发布阶段应将该属性设置为false。
提示 开发阶段将该属性设置了true,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为false,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能。
struts.configuration.xml.reload该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件。该属性的默认值是false。
struts.velocity.configfile该属性指定velocity框架所需的velocity.properties文件的位置。该属性的默认值为velocity.properties。
struts.multipart.parser:该属性指定处理multipart/form-data的mime类型(文件上传)请求的框架,该属性支持cos、pell和jakarta等属性值,即分别对应使用cos的文件上传框架、pell上传及common-fileupload文件上传框架。该属性的默认值为jakarta。
struts.devmode该属性设置struts 2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受true和flase两个值,该属性的默认值是false。通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false。