struts 笔记 action namespace

Struts请求处理流程java

请求先被struts过滤器拦截下来,而后在struts中作处理,若是处理中未发现请求的地址,再发回tomcat服务器 tomcat处理tomcat


自定义action安全

给在struts.xml中 action类添加class属性,指定处理的类,默认会调用这个类的execute方法,这个类能够是一个普通的java类。服务器

若是不配置class,默认的用actionSupport来处理。jsp

还能够实现action接口来定义一个action实现类,不常常用。spa

若是想运行自定义方法而不是execute方法,那么直接能够在action定义该方法,这个方法,的返回值是String类型,修饰字符串类型public 线程

若是返回字符串是’xxx’ ,那么struts会在该action中寻找,resultname’xxx’,若是没有,会有错误。code

action 中配置method 属性 ,指定调用方法。xml

struts2中每次请求都会建立一个action对象,因此不存在线程安全问题。对象


DMI 动态方法调用

用于开发或者企业内部软件使用,由于很容易就会让人发现是用struts,因此通常外部不用。

struts.xml 配置

<constant name="struts.enable.DynamicMethodInvocation" value="true" />



通配符

<action name="*-*" class="struts.demo.DemoAction">
      <result name="{1}">/{2}.jsp</result>
</action>


这里的*会按顺序替换{1},{2},例如,请求的action user-input

{1}user {2}input 减小result的配置


NameSpace

Namespace决定了访问路径,默认为””,能够接受全部路径的action

Struts请求action默认带后缀名action,能够不写。

Namespcce能够写为”/”, ”/xxx”,”/xxx/yy”,对应的action访问路径为/index.action.

Namespace通常用模块来进行命名

Package 标签的做用和java中的package做用一致,区分重复的状况,package的名字与namespace的名字通常是一致的,以模块的名称来命名


路径问题

Struts中,相对路径是从action算起,因此使用绝对路径。

JSP’/’的地址表示的是服务器根地址,不是应用根地址

绝对路径的获取

String  basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort + "/" + request.getContextPath() ;
相关文章
相关标签/搜索