手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

Struts 学习笔记2 -ActionServlet深入探讨

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  • initInternal() - 初始化ActionServlet内部使用的资源包MessageResources,使用MessageResources.getMessageResources(internalName)得到 internalName为"org.apache.struts.action.ActionResources"对应的ActionResources.properties文件。这个资源包主要用于ActionServlet处理过程中的用到的提示信息,这儿不展开讨论。
  • initDebug() - 从web.xml中读取本应用的debug级别参数getServletConfig().getInitParameter("debug"),然后赋给debug属性。
  • initApplication()- 初始化应用资源包,并放置入ServletContext中。
    1. String factory =getServletConfig().getInitParameter(“factory”);
    2. String oldFacory = MessageResourcesFactory.getFactoryClass();
    3. if (factory !=null)
    4. MessageResourcesFactory.setFactoryClass(factory);
    5. String value = getServletConfig().getInitParameter("application");
    6. MessageResourcesFactory factoryObject =
    7. MessageResourcesFactory.createFactory();
    8. application = factoryObject.createResources(value);
    9. MessageResourcesFactory.setFactory(oldFactory);
    10. getServletContext().setAttribute(Action.MESSAGES_KEY, application);

    说明:文中引用的代码片断可能会省略了一些例外检查等非主线的内容,敬请注意。

    首先从配置文件中读取factory参数,如果这个参数不为空,那么就在MessageResourcesFactory中使用这个指定的Factory类;否则,使用默认的工厂类org.apche.struts.util.PropertyMessageResourceFactory。然后调用MessageResourcesFactory的静态createFactory()方法,生成一个具体的MessageResourceFactory对象(注意:MessageResourcesFactory是抽象类)。这样就可以调用这个具体的MessageResourceFactory的createResource()方法得到配置文件(web.xml)中定义的资源文件了。
    上面的application对象类型为MessageResources。在web.xml中在配置ActionServlet时可以指定一个特定的工厂类。不能直接MessageResourcesFactory的createResources()方法,因为这个方法是abstract的。创建factoryObject的过程如下:
    1. MessageResourceFactory factoryObject=
    2. MessageResourcesFactory.createFactory();
    3. application = factoryObject.createResources(value);

    <li>initMapping() - 为应用初始化mapping信息ActionServlet有一个protected的属性:mapping,封装了一个ActionMapping的对象集合,以便于管理、查找ActionMapping。mappings是org.apache.struts.action.ActionMappings类的实例。主要有两个方法:addMapping(ActionMapping mapping)和findMapping(String path)。ActionMapping也是使用上面提到的org.apache.struts.util.FastHashMap类来存储所有的ActionMapping对象。
    1. mappings.setServlet(this);
    2. ……
    3. // Initialize the name of our ActionFormBean implementation class
    4. value = getServletConfig().getInitParameter("formBean");
    5. if (value != null)
    6. formBeanClass = value;
    7. // Initialize the name of our ActionForward implementation class
    8. value = getServletConfig().getInitParameter("forward");
    9. if (value != null)
    10. forwardClass = value;
    11. // Initialize the name of our ActionMapping implementation class
    12. value = getServletConfig().getInitParameter("mapping");
    13. if (value != null)
    14. 文章整理:西部数码--专业提供域名注册虚拟主机服务
      http://www.west263.com
      以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

    相关文章
  • 用Java压缩文件或目录下的所有文
  • 全面解析JSP连接各类数据库大全
  • 什么时候用EJB ,什么时候不用EJ
  • 关于Tomcat的并发处理能力
  • Base-Jsp-5-在页面、请求和用户
  • JBuilder2005实战JSP之错误处理
  • jsp2 tag学习笔记
  • Object类学习总结
  • 学习笔记:将Image(SWT)存到一个
  • Tomcat下配制servlet,苦恼了我
  • 上一篇:j2ee-j2me tips
    下一篇:经验分享:如何迅速成为Java高手
    热点关注
    IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
    网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
    网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
    行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
    网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
    服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
    软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
    网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
    程序设计 Java技术 C/C++ VB delphi
    网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
    操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
    返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS