A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 燃灯街 中级黑马   /  2013-6-9 19:10  /  1256 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



<filter>
  <filter-name>struts2</filter-name>
  <filter-class>
   org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>
</filter>

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
请教:这些配置文件是用来干什么的?怎么执行的?

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 鼓励个。

查看全部评分

4 个回复

倒序浏览
**************************************
<filter>
  <filter-name>struts2</filter-name>
  <filter-class>
   org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>
</filter>

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>这些配置文件是用来干什么的?怎么执行的?

**************************************
首先说一下

你应该理解web中的过滤器吧 简单说 就是 他要配置一个url路径  当客户端请求了这个路径以后
你就要在他向执行什么动作之前  把这个路径截住  预先做你想做的事情  --- 这就是过滤器的功能
那么 Java Web中 过滤器也是一个类  所以  你要在url -pattern中说明 你想过滤那些url请求
在对应的filter-class里面  配置处理这些url的Java类  
但是你随便定义的java类 web容器怎么知道他们是过滤器呢?
这就是要在这个web.xml中进行说明 我这个类(filter-class)是过滤器  Web容器才能赋予这个类相应
的权利来处理url-pattern中对应的客户端请求

其次:
要理解这个问题 你必须 了解 MVC Model(数据)--View(视图)--Controller(控制器)这个体系
Model: 操作数据库层(Hibernate操作Oracle DB2或者SQLServer或者 MySQL)----流行框架Hibernate 替代:JDBC
View: 页面层(JSP Html PDF)
Controller:控制器(当客户端发起URL请求的时候, Controller接收到请求之后  会决定由哪一个Model来处理请求)----流行框架SpringMVC或者Struts2 替代 Servlet
那么 Struts2就是Controller的扮演者
Struts2里面又一次细分成
(1)核心控制器 以前叫 org.apache.struts2.dispatcher.FilterDispatcher 现在叫 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
这个核心控制器 就是你web.xml中 在<filter-class>标签中配置的元素名称
(2)业务控制器  你要是用过struts2的话  你应该知道 还要配置struts.xml 这里面  配置了action name, action class, action method 每一个action name就是一个业务控制器

这样  struts2将Controller就划分为 核心控制器(FilterDispatcher)和业务控制器(struts.xml中配置的action)
当客户端发起的请求符合你在url-pattern中定义的路径时候(/*你这里是无论什么url请求  都会落入struts2的处理框架) , struts2的核心控制器(FilterDispatcher)就会拦截住
这个客户端请求  然后根据请求的名字 匹配相应的业务控制器的action name 匹配上了  就将请求发送到相应的业务控制器  进行处理  (比如和数据库的交互等等)

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 很给力!

查看全部评分

回复 使用道具 举报
张歆明 发表于 2013-6-9 19:39
**************************************

  struts2

恩,谢谢你的回答!
回复 使用道具 举报
java web开发学的,mvc过滤的吧。
回复 使用道具 举报
燃灯街 发表于 2013-6-9 20:47
恩,谢谢你的回答!

不客气  哈哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马