- 浏览: 257779 次
- 性别:
- 来自: 多伦多
文章分类
- 全部博客 (127)
- Java 基础 (46)
- Java EE (3)
- Clouds (1)
- Spring 编程 (7)
- Spring Batch 编程 (1)
- Quartz 编程 (9)
- Seam 编程 (4)
- Hibernate 编程 (1)
- JSF 编程 (3)
- jQuery 编程 (3)
- Interview Question 汇总 (3)
- 日常应用 (3)
- Maven 编程 (2)
- WebService 编程 (10)
- Scala 编程 (5)
- Coherence 编程 (8)
- OO 编程 (1)
- Java 线程 (6)
- DB 编程 (2)
- WebService 安全 (4)
- Oracle Fusion 编程 (2)
- JavsScript/Ajax 编程 (1)
最新评论
-
chainal:
赞,说的很好
Scala 有趣的Trait -
wuliupo:
RRRR-MM-DD HH24:MI:SS
如何让Oracle SQL Developer显示的包含在日期字段中的时间 -
pengain:
...
使用Spring Roo ,感受ROR式的开发 -
zeng1990:
def getPersonInfo() = {
(&quo ...
Java 的继位人? - Scala简介 -
zeng1990:
我使用的是2.9.2版本的!
Java 的继位人? - Scala简介
转自 http://www.blogjava.net/killme2008/archive/2007/02/06/98227.html
6。前端控制器(FrontController),它的任务我们已经很清楚,初始化配置文件;存储所有action到 ServletContext供整个框架使用;得到发起请求的path,提供给Dispachter查找相应的action;调用Dispatcher,执行getNextPage方法得到下一个页面的url并转发:
// 初始化配置文件
ServletContext context = getServletContext();
String config_file = getServletConfig().getInitParameter( " config " );
String dispatcher_name = getServletConfig().getInitParameter( " dispatcher " );
if (config_file == null || config_file.equals( "" ))
config_file = " /WEB-INF/strutslet-config.xml " ; // 默认是/WEB-INF/下面的strutslet-config
if (dispatcher_name == null || dispatcher_name.equals( "" ))
dispatcher_name = Constant.DEFAULT_DISPATCHER;
try {
Map < String, ActionModel > resources = ConfigUtil.newInstance() // 工具类解析配置文件
.parse(config_file, context);
context.setAttribute(Constant.ACTIONS_ATTR, resources); // 存储在ServletContext中
log.info( " 初始化strutslet配置文件成功 " );
} catch (Exception e) {
log.error( " 初始化strutslet配置文件失败 " );
e.printStackTrace();
}
// 实例化Dispacher
try {
Class c = Class.forName(dispatcher_name);
Dispatcher dispatcher = (Dispatcher) c.newInstance();
context.setAttribute(Constant.DISPATCHER_ATTR, dispatcher); // 放在ServletContext
log.info( " 初始化Dispatcher成功 " );
} catch (Exception e) {
log.error( " 初始化Dispatcher失败 " );
e.printStackTrace();
}
..
doGet()和doPost方法我们都让它调用process方法:
HttpServletResponse response) throws ServletException, IOException {
ServletContext context = getServletContext();
// 获取action的path
String reqURI = request.getRequestURI();
int i = reqURI.lastIndexOf( " . " );
String contextPath = request.getContextPath();
String path = reqURI.substring(contextPath.length(),i);
request.setAttribute(Constant.REQUEST_ATTR, path);
Dispatcher dispatcher = (Dispatcher) context.getAttribute(Constant.DISPATCHER_ATTR);
// make sure we don't cache dynamic data
response.setHeader( " Cache-Control " , " no-cache " );
response.setHeader( " Pragma " , " no-cache " );
// use the dispatcher to find the next page
String nextPage = dispatcher.getNextPage(request, context); // 调用Dispatcher的getNextPage
// forward control to the view
RequestDispatcher forwarder = request.getRequestDispatcher( " / "
+ nextPage);
forwarder.forward(request, response); // 转发页面
}
7。最后,web.xml的配置就非常简单了,配置前端控制器,提供启动参数(配置文件所在位置,为空就查找/WEB-INF/下面的strutslet-config.xml文件),我们把所有以action结尾的请求都交给FrontController处理:
< servlet - name > StrutsletController </ servlet - name >
< servlet - class > com.strutslet.core.FrontController </ servlet - class >
<!--
< init - param >
< param - name > config </ param - name >
< param - value >/ WEB - INF / strutslet - config.xml </ param - value >
</ init - param >
-->
< load - on - startup > 0 </ load - on - startup >
</ servlet >
< servlet - mapping >
< servlet - name > StrutsletController </ servlet - name >
< url - pattern >* .action </ url - pattern >
</ servlet - mapping >
最后,让我们看看整个框架图:
发表评论
-
设计模式之事务处理
2010-11-25 07:36 886转自 http://www.blogjava.net/kill ... -
设计自己的MVC框架(1)
2010-11-25 07:27 1221转自 http://www.blogjava.net/ ... -
使用Annotation设计持久层
2010-11-25 06:59 914(From http://www.blogjava. ... -
Jakarta Commons StringUtils类使用
2010-11-25 06:58 908转自http://www.blogjava.net/ ... -
Jakarta Commons ArrayUtils类使用
2010-11-25 06:57 1101转自http://www.blogjava.net/ ... -
Reflection的三个动态性质
2010-11-25 06:56 983转自http://www.blogjava. ... -
用commons.fileupload实现文件的上传和下载
2010-11-25 06:55 1360转自http://www.blogjav ... -
JAVA基础:共享内存在Java中的实现和应用
2010-11-25 06:54 849(转自 http://www.bu ... -
JAVA变量类型之间的相互转换
2010-11-25 06:52 872(转自 http://www.builder.c ... -
优秀Java程序员必须了解的GC工作原理
2010-11-25 06:52 861(转自 http://www.build ... -
几种版权信息详解
2010-11-25 06:49 1103BSD开源协议(original ... -
Java JDK 1.4 JCE Provider issue.
2010-11-25 06:48 1150Bundled JCE provider in jdk1 ... -
Why use Map.entrySet() instead of Map.keySet()?
2010-11-25 06:45 1367(From http://www.coderan ... -
Credit Card Mod10 校验
2010-11-25 06:27 2018以下是几种Mod10的实现。第一种最为简洁,最后一种 ... -
如何知道方法的调用者
2010-11-25 05:57 7363转自http://hellboys.bok ... -
Java加解密的基础
2010-11-25 05:49 2796在Java的安全包中,包括了三部分内容: ... -
Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logback
2010-11-25 05:47 1830Log4j Apache的一个开放源代码项目,通过 ... -
Java SE 6新特性:Instrumentation
2010-11-25 05:35 1058(转自http://baike.baidu.com ... -
JBOSS 启动 加载 过程
2010-09-11 00:26 2973(转自: http://blog.csdn.net/ylli_ ... -
JAVA性能优化—Sun Hotspot JDK JVM参数设置
2010-09-11 00:18 1149(转自: http://www.hashei.me/2009/ ...
相关推荐
基于ASP.NET_MVC框架的Web设计基于ASP.NET_MVC框架的Web设计基于ASP.NET_MVC框架的Web设计基于ASP.NET_MVC框架的Web设计基于ASP.NET_MVC框架的Web设计基于ASP.NET_MVC框架的Web设计
基于MVC框架下房产营销管理系统的设计与实现.docx基于MVC框架下房产营销管理系统的设计与实现.docx基于MVC框架下房产营销管理系统的设计与实现.docx基于MVC框架下房产营销管理系统的设计与实现.docx基于MVC框架下...
课程设计,有利于初学者学习,欢迎下载,可以用,本人亲手写
基于ASP.NET商城系统项目毕业设计源代码 bootstrip+MVC框架 基于ASP.NET MVC 的商品管理系统 本系统是一套商城项目,后端使用微软强大的ASP.NET MVC 框架,前端使用bootstrip框架,同时使用STMP邮件发送服务器,等等...
自己写的MVC框架,功能完善,用来写一些小项目是绰绰有余了。实现了MVC三层架构,支持模块化设计,应用目录自动生成,命名空间自动加载到类,url mode,url路由等功能。感兴趣的朋友可以下载回去,一起探讨一起学习...
基于Java Web MVC框架的学生成绩管理系统设计.pdf
超轻量级MVC框架的设计和实现(源码),一个最简单最小巧的MVC框架,花哨的功能一个不要,越简洁越好,并且不使用XML配置文件,而是完全用Java 5注解配置。
基于模式设计的MVC框架原理研究
设计 REST 风格的 MVC 框架
这是一个完整的MVC框架,给刚接触MVC架构的同学或网站开发者了解MVC,记得要把根目录设计成myweb这个目录才可以过去。当然要在PHP的环境下。
MVC框架在Python与Django下的设计研究.pdf
本文将Ajax技术与MVC模式紧密结合,设计了一个新的MVC框架。应用该框架后,客户端请求基本都是Ajax请求。本文首次采用了Container这一概念,并提出了Container树结构信息的表示法,设计了针对该表示法的解析及生成算法。...
ActionScript编程必备技术,PureMVC框架简易教程!PureMVC是一个定位于设计高性能 RIA客户端的基于模式 的框架。
一个国人写的开源blog系统,使用ASP.NET MVC框架开发. 具有以下优点: 1,代码精练,优雅,。 2,使用了大量的设计模式 3,采用N层架构设计,分层非常合理。 4,支持强大的扶肤功能 5,大量使用了.net Framework 3.5...
eclipse中利用JAVA_MVC框架编写的学生管理系统,比较适合大学毕业设计及初学者参考
基于设计模式的一种MVC框架的实现
自己写的MVC框架,功能完善,用来写一些小项目是绰绰有余了。实现了MVC三层架构,支持模块化设计,应用目录自动生成,命名空间自动加载到类,url mode,url路由等功能。
A blazing fast Model View Controller framework MicroMVC 是一个基于模块化设计的 MVC 框架,提供全功能的 ORM 库、移植以及管理脚手架,同时提供很多常用的 PHP 工具包。 标签:MicroMVC Web框架
基于MVC框架自习室管理和预约系统设计与实现论文-java-文档-基于MVC框架自习室管理和预约系统设计与实现论文: !!!本文档只是论文参考文档! 需要项目源码、数据库sql、开发文档、毕设咨询等,请私信联系~ ① ...
多数据库进行增删查改,使用JDBC连接数据库,采用mvc设计模式,无任何框架,添加日志方便查看语句,简单易学,适合初学者