配置文件简述

  引入Struts2框架之后项目中多了一个struts.xml,以及web.xml也多了一些代码

  web.xml只要的功能就是拦截用户的请求其多出的代码如下:

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

  这些代码表示了Struts2将要拦截什么类型的请求,以及该怎么处理这些请求。<filter-name>标签就是连接<url-pattern>和<filter-class>的一个桥梁,所以我们可以把上面的代码理解为:Struts2将要拦截所有以.action为结尾的请求,然后将这些请求交由Struts2内部来进行处理(请求按照struts.xml的配置执行对应的Java类)。

  struts.xml主要就是配置请求和Java类的一个映射关系以及一些拦截器其基本结构如下:

<struts>
<package>
<action>
<result></result>
</action>
</package>
</struts>

  根据上面的定义结构我们可以得出,Struts2通过包来管理Action。  

  在配置package时必须指定它的name属性,name属性是引用该包的唯一标识,另外还有一个常用的属性就是extends,该属性是一个可选属性,表示当前包继承了哪个包,继承之后将拥有父包里面的action和拦截器的定义,通常我们在使用时都是继承struts-default。

  action是我们配置struts.xml的核心部分,它的配置将决定我们前台发送且被拦截的请求交由哪个Java类里面的哪个方法来进行处理。action配置有不同的配置方法,这里只介绍一个目前最优的一种方法,action在配置时设置一个name属性以及一个class属性。name属性对应我们发送的请求,class属性对应Java类的地址。

  result的主要就是配置Java类处理完成之后返回的结果和页面之间的一个映射。

  Struts2在配置完成以后我们可以使用一种默认的请求模式就是*!*.action,第一个*和action配置中的name相互对应,第二个*和Java类里面的具体的方法进行对应。

  至此我们可以配置出一个完整的struts.xml文件了,如下:

<struts>
<package name="demo" extends="struts-default">
<action name="demo" class="demo.controller.HandlerAction">
<result name="success">success.jsp</result>
<result name="fail">fail.jsp</result>
</action>
</package>
</struts>

  我们已经知道Struts2在配置完成以后可以使用一种默认的请求模式,就是*!*.action,假如我们前台界面的一个请求为demo!register.action,!左边的内容和<action>中的name互相对应,对应的结果为将这个请求交给demo.controller.HandlerAction这个Java类进行处理,!右边的内容对应demo.controller.HandlerAction类里面的一个同名的方法就是register方法。

一个完整的小示例

  1.新建一个web项目,引入Struts2框架

  2.在src目录下新建一个包Demo.Action

  3.在包下新建一个Java类HandlerAction

  4.准备两个页面分别为success.jsp,error.jsp分别提示成功还是失败

  5.编写struts.xml配置文件

  6.编写index.jsp页面

  struts.xml配置文件如下:

<struts>
<package name="demo" extends="struts-default">
<action name="demo" class="Demo.Action.HandlerAction">
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>

  handlerAction.java如下:

package Demo.Action;

public class HandlerAction {
private String username;
private String password;
public String register() throws Exception{
try {
System.out.println(username);
System.out.println(password);
return "success";
} catch (Exception e) {
return "error";
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }

  index.jsp如下:

    <form method="post" action="demo!register.action">
<label>用户名:</label><input type="text" name="username"><br/>
<label>密码:</label><input type="password" name="password"><br/>
<input type="submit" value="注册">
</form>

  Demo地址

  在回顾一下Strut2的一个处理流程

  首先在web.xml中定义一个拦截器,指定了所有以.action结尾的请求交给Struts2来进行处理,struts.xml中的action会根据页面的请求为该请求指派一个Java类来进行处理,在处理成功后返回一个"success"

表示,该标识由result为其映射一个页面,然后展现给用户。

Struts2基本使用(二)--配置文件简述的更多相关文章

  1. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  2. Struts2学习笔记二 配置详解

    Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的name ...

  3. struts2中struts.xml配置文件详解【未整理】

    1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...

  4. Struts2学习笔记(二)——配置详解

    1.Struts2配置文件加载顺序: default.properties(默认常量配置) struts-default.xml(默认配置文件,主要配置bean和拦截器) struts-plugin. ...

  5. Hexo系列(二) 配置文件详解

    Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...

  6. Struts2(二)——配置文件struts2.xml的编写

    接上一篇博客,这篇博客讲述一下2——9小标题的内容,这些问题都可以在struts2配置文件中设置(当然有的也可以在Struts.properties属性文件,web.xml中进行设置),而且常规开发中 ...

  7. Struts2.0笔记二

    Mvc与servlet 1.1   Servlet的优点 1.  是mvc的基础,其他的框架比如struts1,struts2,webwork都是从servlet基础上发展过来的.所以掌握servle ...

  8. struts2:struts.xml配置文件详解

    1. 几个重要的元素 1.1 package元素 package元素用来配置包.在Struts2框架中,包是一个独立的单位,通过name属性来唯一标识包.还可以通过extends属性让一个包继承另一个 ...

  9. Struts2之Action与配置文件

    一.Struts2配置文件 1.struts.properties 在学习Action之前先学下Struts2的配置文件,与Struts2相关的配置文件有好几个,常用的有Struts.xml,web. ...

随机推荐

  1. SCons构建工具使用

    scons是一个Python写的自动化构建工具,和GNU make相比优点明显:    1. 移植性:python能运行的地方,就能运行scons    2. 扩展性:理论上scons只是提供了pyt ...

  2. Educational Codeforces Round 47

    A. Game Shopping 签. #include <bits/stdc++.h> using namespace std; #define N 1010 int n, m, c[N ...

  3. MySQL的GTID复制

    从mysql5.6开始引入全局事务标识符(GTID),即每个事务都有一个唯一的标识符.服务器上的每个事务都被分配一个唯一的事务标识符,这是一个64位非零的数值,根据事务提交的顺序分配.GTID的构成是 ...

  4. Vue学习笔记之表单绑定输入

    vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V ...

  5. 前端学习笔记之HTTP协议

    阅读目录 一 HTTP协议简介 二 HTTP协议之请求Request 三 HTTP协议之响应Response 四 HTTP协议完整工作流程 五 HTTP协议关键性总结 六 自定义套接字分析HTTP协议 ...

  6. Solr DIH query 工作流

    本文地址 http://www.cnblogs.com/jasonxuli/p/6491270.html DataImportHandler (DIH) 支持全量数据导入和增量数据导入,主要有四个qu ...

  7. 20145326 《Java程序设计》第4周学习总结

    20145326 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 一.何谓继承 1.继承共同行为 面向对象中,子类继承父类,避免重复的行为定义.不过并非为了避免重复定义行为就 ...

  8. SpringBoot基础的使用

    springboot的基础使用 和 内部原理 高级使用整合 进行web开发 springboot 看下spring的所有项目:https://spring.io/projects 等等 就不一一介绍了 ...

  9. hdu 4348 To the moon 主席树区间更新

    To the moon Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Prob ...

  10. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击

    跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...