struts框架文件说明
来源:互联网 发布:姑苏学办公软件 编辑:程序博客网 时间:2024/06/05 21:18
1.web.xml的主要作用是配置filterdispatcher来拦截http请求
web.xml配置过滤器,会话时间,欢迎页面,错误页面,监听器,控制器等等<web-app><!--关键元素分析--><!--指定一个欢迎页面--><welcome-file-list> <welcome-file>a.jsp</welcome-file> <welcome-file>b.jsp</welcome-file></welcome-file-list></web-app><!--声明一个filter,可以同时拦截多个请求URL--><filter> <filter-name>struts<filter-name><!--指定filter的名字,不能为空--> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class><!--filter实现类--></filter><!--定义拦截的URL--><filter-mapping> <filter-name>struts2</filter-name><!--必须是已经声明过的过滤器--> <url-pattern>/*</url-pattern><!--拦截所有的URL地址--></filter-mapping><!--如果不希望用户看到错误的原始信息,可以配置异常页面--><error-page> <error-code>404</error-code><!--指定错误代码--> <location>/error.jsp</location><!--如果发生错误,返回location子元素中的指定文件--></error-page><!--配置异常页面捕获Java异常--><error-page> <exception-type>java.lang.Exception</exception-type><!--指定java异常类--> <location>/error.jsp</location></error-page><!--监听器--><!--可以用于初始化spring框架--><listener> <listener-class>org.spring.framework.web.context.ContextLoaderListener</listener-class></listener><!--指定会话时间--><session-config> <session-timeout>30</session-timeout></sessio-config><!--配置常量--><init-param> <param-name>struts.il8n.encoding</param-name> <param-value>UTF-8</param-value></init-param>
常见的页面状态码
200 服务器成功返回页面404 请求的页面不存在503 服务不可用403 服务器拒绝请求408 请求超时413 请求实体过大,超过服务器处理能力414 请求网址过长,超过服务器处理能力415 请求格式不支持416 请求范围不符合要求417 请求为满足期望值500 服务器内部错误501 尚未实施502 错误网关503 服务不可用504 网关超时505 http版本不支持
2.struts.properties 用来管理Struts2框架中大量的常量
开发中根据用户需求的不同,需要更改属性值,改变属性值的方法就是在properties文件中配置.properties文件是key-value对,一个key对应一个value
###设置默认编码集为utf-8格式struts.il8n.encoding=UTF-8###设置使用开发模式struts.devMode=true###设置默认的local为en_usstruts.locale=en_US
关键元素分析
struts.properties关键元素分析struts.il8n.encoding 指定web程序的默认编码集,一般设置为UTF-8struts.devMode 指定struts2是否使用开发模式 默认falsestruts.configuaration 指定Struts2框架的配置管理器 默认falsestruts.locale 指定该web应用的默认Locale,默认是en_USstruts.action.lotension 由Struts2处理的请求后缀 默认的后缀是actionstruts.tag.altSyntax 指定是否在Struts2标签中使用表达式语法 一般设置为truestruts.ui.theme 指定视图中Struts2标签的默认主题,默认是xhtmlstruts.custom.il8n.resources 指定web程序所需要的国际化资源文件struts.custom.properties 指定加载附加的配置文件位置struts.enable.DynamicMethodInvocation 指定Struts2框架是否支持动态方法调用,默认是truestruts.il8n.reload 指定国际化信息是否自动加载 默认是truestruts.http.port 指定web应用的端口
struts.xml文件主要用来配置action和http请求之间的关系
<!--struts根元素--><struts> <!--配置包defualt,命名空间"/"--> <paakage name="default" namespace="/" extends="struts-default"> <!--配置名为NN的action.实现类是XXXAction--> <action name="NN" class="XXXAction"> <result>/YY.jsp</result><!--返回YY.jsp--> </action></struts>
关键要素分析
struts.xml关键元素分析几个重要的元素package元素用来配置包name是一个必须的属性,表示包的名字extends 可选属性指定继承自其他包namespace 可选属性 指定命名空间,标识此包下的action的访问路径abstract 可选属性 声明此包我抽象包<!--配置名为A的包,继承自struts-default,命名空间为默认的命名空间--><package name="A" extends="struts-default"> <action name="login" class="com.action.LoginAction"> <result name="login_success">/login_success.jsp</result> </action></package><!--处理action为http://localhost:8080/login.action"--><package name="B" namespace="/" extends="struts-default"> <action name="exit" class="com.action.ExitAction" <result name="exit_success" >/exit_success.jsp</result> </action></package><package name="C" namespace="/info" extends="struts-default"> <action name="stu" class="com.action.StuAction"> <result name="stu_success">/stu_suceess.jsp</result> </action></package>action对象用来处理http请求<action name="userAction" class="com.action.UserAction"> <result>/user.jsp</result></action>name必须的属性,标识actionclass 可选属性,指定action的实现类method 可选属性,指定请求action时候调用的方法converter 可选属性,指定类型转换器的类result元素用来设置返回给浏览器的视图dispatcher 将请求转发到指定的jsp页面redirect 将页面重定向到指定的视图资源chain 处理action的链freemarker 指定使用freemarker模板作为视图httpheader 控制特殊的http行为redirect-action 跳转到其他的actionstream 给浏览器返回一个inputstream 一般用户下载文件velocity 指定使用velocity模板作为视图xslt 使用xml或者xslt整合paintText 显示某个页面的原始代码区分:dispatcher结果类型表示将http请求转发到指定的jsp资源redirect结果类型则是重定向到jsp资源,重定向则会丢失所有的请求参数和action的处理结果redirect-action结果类型生成的是一个action,而redirect结果类型生成的请求是一个jsp资源include元素用来包含其他配置文件当系统规模增大的时候,大量的action不方便编辑,使用include标签,模块化管理<struts> <include file="a.xml"/> <include file="b.xml"/> <include file="c.xml"/> <include file="d.xml"/></struts>global-results元素配置一个全局结果<struts> <package name="default" namespace="/" extends="struts-default"> <global-results> <action name="user" class="com.action.UserAction"> <result name="hello">/hello.jsp</result> </action> </global-results> </package></struts>default-action-ref元素配置默认的action,找不到action使用它<default-action> <action name="defaultaction" class="com.action.XXXAction"> <result></result> </action></default-action>
action的动态调用
Action的动态调用action对象对于URL请求的处理都是调用其默认的execute()方法实际开发中,一个action可能有不同的请求,可以在execute()方法中判断请求逻辑来转发相应的请求DMI处理方式,在请求Action的URL地址后加上请求字符串,与action对象中的方法进行匹配.对象名称和方法之间用"!"隔开 如/user!change.action
通配符
通配符实际开发中会出现多个action都是相同的情况.使用通配符来通过一定的命名约定来配置action对象,达到简化定义action的目的]*表示匹配0个或者多个字符除了"/"**表示匹配0个或者多个字符包含"/"\ 表示转义字符<package name="login" extends="struts-default"> <!--使用*通配符,第一个表示调用方法,第二个表示action,{n}表示前面第n个*所匹配的字符串,{0}整个--> <action name"*_*" class="com.coderdream.action.{2}Action" method="1" <result name="success">/{0}.Suc.jsp</result> </action></package><!--在上面的代码中,当请求是/update_Login.action时,<action>的name属性中第一*匹配update,第二个*匹配Login,所以会对应的调用LoginAction类中的update()方法.在记过映射中的几号是{0},则会该几号会被整个URL代替.所以返回的页面是update_LoginSuc.jsp-->通配符的常用使用方式<!--不管请求那个action,都会返回与该页面名字想听听的jsp页面--><action name="*_*"> <result>{0}.jsp</result><action>
常量配置
常量配置struts.properties用来配置常量struts.il8n.encoding=UTF-8struts.xml也可以用来配置常量 一般是在Struts.xml中配置,因为它的加载先于其他的<struts> <constant name="struts.il8n.encoding=" value="UTF-8"/></struts>使用web.xml来配置常量<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <!--设置默认编码集--> <init-param> <param-name>struts.il8n.encoding</param-name> <param-value>UTF-8</param-value> </init-param></filter>
action类
Struts的Action类文件public interface Action{ public static final String Error="error"; public static final String Success="success"; public static final String Input="input; public static final String Login="login"; public String execute() throws Exception;}因为自定义的action类继承了ActionSupport类,必须定义变量serialVersionUID.ActionSupport类实现了ActionSupport类实现了Serializable接口,所以必须声明变量serialVersionUIDprivate static final long serialVersionUID=1l;Struts访问servletAPI接口的方法在web应用中,HttpServletRequest,HttpSession,ServletContext这三个接口对应于jsp内置对象中的request,session,application1.通过ActionContext类访问servletAPIvoid put(String key,Object value): 将key-value存入到actionContext中object get(Object key):通过参数key来查找当前actionContext中的值map getApplication():返回一个application的Map对象Static ActionContext getContext():获取当前线程的ActionContext对象Map getParameters():返回一个包含所有的HttpServletRequest参数信息的map对象Map getSession():返回一个Map类型的HttpSession对象void put(Object key,Object value):向当前对象ActionContext对象中存入键值对信息void setApplication(Map application):设置Application上下文void setSession(Map session):设置Map类型的session的值2.通过特定接口访问:ServletRequestAware:实现该接口,访问httpservletrequest实例ServletResponseAware:实现该接口,访问httpservletresponse实例ServletContextAware:实现该接口,访问servletcontext实例public class LoginAction implements Action,ServletContextAware{ private ServletContext context; public void setServletContext(ServletContext ctx){ context=ctx; } public Strng execute() throws Exception{ context.setAttribute("user","jim"); return SUCCESS; }}3.通过ServletAction访问HttpServletResponseHttpServletRequestServletContext用户在提交http请求时,一般有2种方式:get/post使用post方式提交数据,不方便,使用Struts框架的接口ModelDriven接口public class XxxAction extends ActionSupport implements ModelDrivern<XXModel>{ private static final long serivalVersionUID=1L; private xxModel x=new XXModel();//创建要使用的对象实例 public XXModel getModel(){ return x; } public String execute() throws Exception{ return SUCCESS; }}//XxxAction类实现了ModelDriven接口,这样用户提交的关于XXModel类的信息,就会直接存入x对象中
异常处理机制
struts2框架的异常处理机制,在struts.xml文件中配置异常处理配置异常常用2种方式:全局异常配置,和局部异常配置即<global-exception-mappings>和<exception-mapping><struts> <package name="default"> <!--全局结果--> <global-results> <result name="Exception">/Exception.jsp</result> <result name="SQLException">/SQLException.jsp</result> </global-results> <!--全局异常映射--> <global-results-mappings> <exception-mapping exception="java.sql.SQLException" result="SQLException"> <exception-mapping exception="java.lang.Exception" result="Exception"> </global-results-mapping> </package></struts>
0 0
- struts框架文件说明
- struts Validator框架校验说明
- 文件上传(Struts框架)
- struts.xml文件constant说明
- 关于java Struts框架简要说明
- Struts框架中struts-config.xml配置文件的作成说明
- struts 框架介绍 原理透析 struts概念说明
- Struts框架 ApplicationResources.properties文件
- struts框架-实现文件上传
- struts-default.xml 文件说明
- struts.xml文件的配置说明
- struts2 struts.xml文件<constant>标签说明
- struts2 struts.xml文件<constant>标签说明
- struts2 struts.xml文件<constant>标签说明
- Struts2关于struts.xml文件配置说明
- struts2 struts.xml文件<constant>标签说明
- Java三大框架之struts的上传文件出错信息配置(允许上传的类型,上传文件的大小,以及大文件上传说明等等)
- 使用struts、hibernate、spring进行框架整合流程详细说明
- Easyui数据在Textbox中展示值写入却无法看到
- ZCMU-1571-Subarray GCD
- jquery的hover()函数
- 乔布斯合作伙伴—沃兹
- Mysql5.7安装
- struts框架文件说明
- alert弹出[object Object],怎么进一步查看值
- linux下/dev、/sys/devices 和 /sys/dev 之间区别
- 怎么自定义XMind快捷键
- Access restriction: The constructor SunJCE() is not accessible due to
- Eclipse 项目之间引用
- JS插件实现图表显示(曲线图表、柱形图表、饼状图表)
- web学习之博客小项目(添加文章)
- 多个JDK版本切换 windows