`

Struts2中实现自动发送action请求后到初始化网站首页的学习

阅读更多

      最近学着做个ssh的网站,随着一系列问题的产生与解决,网站也大概初具模型,但这些天又被一个问题困扰,怎样实现一输入网址就请求数据库数据后对网站首页进行初始化呢?一般的网站都是一进入index网站首页的初始化就完成的,上过网的人都知道,要实现这种网站首页初始化肯定是有办法的,有人知其然也知其所以然,也许大部分人是知其然而不知其所以然的,像我,呵呵……
     首先想到的肯定要发送一个action请求,但这个请求肯定是不能让用户进到你的首页后再点一下
链接去完成的,想到了forward的,但以前用的都是forward里面的page值是跳转到一个页面,试了一下,
将page里的值换成action请求后,在Struts.xml里再跳转到首页,结果不行!
     然后想能不能让服务器启动的时候就完成这里的初始化呢?于是去看web.xml文件,在Struts的
配置里有FilterDispatcher这个东东,这是Struts2的基本控制器,想这肯定是在启动时就会被初始化的,继承这个类试试,后来无果,百度了下,知道有个更好的方法实现系统的初始化,实现ServletContextListener这个接口,再在web.xml中配置一个自己的listener就行了,ServletContextListener有两个方法contextInitialized和contextDestroyed,这不就是系统初始化和销毁的方法嘛,其实contextInitialized这个词常常见到,在启动tomcat是控制台的前几行里就有它,就兴奋着去做了,可是当我把需要用到的属性从Spring中注入进来时问题又来了,因为contextInitialized是

在Spring的启动前完成的,这时还没将要注入的bean实例化呢,无奈又放弃了!
    又想到在Spring的bean配置中有个init-method的属性,这是在bean的实例化之前指定要执行的
方法,希望又来了,编写action,将action配置到Spring中,启动tomcat,给我报了个空指针异常,正是由于init-method那个方法有问题,我需要将一些值放置到session中供首页调用,可是这是通过ActionContext.getContext().getSession()得到的session却总是空的,找了好久也不知道这是为什么,

到现在还是没想通,没办法又放弃了!
    用拦截器,呵呵,这个想法只是一闪而过……没办法,发帖求救,好心人说用forward的,啊,
这不又回到我的原点了嘛,可是不行啊!百度下想确认forward的page能不能放action,发现貌似在Struts2中是不行的,无意中发现有一
个js的方法可以实现从页面自动跳转到action中,哈哈爱死这位大哥了,代码很简单,一句就搞定了:
<script type="text/javascript">
 window.location = '要跳转的action';
</script>
将其放到页面上转到一个action,提取数据后再到首页显示,哈哈,搞定!到目前为止,觉得这才是最简
单最直接的方法,这样可以让用户访问的时候即时的请求到数据库里的数据,而不是在服务器启动的时候就把数据封装好了,但用户这时候却感觉不到发送的是action请求,而是页面请求。这样就实现了输入网
址转到后就请求到了即时的网站首页信息,完成网站首页的初始化。
    想想学习真是一件痛苦又快乐的事情,付出了才会有回报,但可能会转一些弯路,现在对我来说
也许这是一件好事吧,呵呵...

分享到:
评论

相关推荐

    Struts1与Struts2本质区别

    1 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类;Struts 1的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一...Struts 2 Action可以通过初始化、设置属性、调用方法来测试。

    struts2技术内幕+struts2权威指南

    核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对Struts2中的精华——OGNL表达式引擎和XWork框架的原理及机制进行了全面深入的分析和讲解。运行主线篇首先对Struts2的两大运行主线——初始化主线和...

    Struts2的工作原理和流程

    1 客户端初始化一个指向Servlet容器的请求; 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh ...

    struts2开发文档

    1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求; 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做 ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框 架的集成很有帮助...

    struts2中动态填充下拉框的例子

    struts2中 页面加载时动态填充下拉框的例子,用于向数据库请求数据进行填充。通过Action中的方法进行请求数据,来初始化Action中的属性,以便页面上的使用。包含jar包。

    Struts2请求处理流程及源码分析

    a)客户端初始化一个指向Servlet容器的请求;b)根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助(SiteMeshPlugin),主要清理当前线程...

    JAVA期末大作业课程设计基于SSH框架的管理系统.zip

    Struts框架的总控制器ActionServlet是一个Servlet,在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为Struts中不同的模块初始化相应的对象。(面向对象思想) ...

    web页面模块化异步渲染struts-gpipe.zip

     &lt;/filter&gt;struts-gpipe过滤器继承了StrutsPrepareAndExecuteFilter,在启动的时候会初始化struts-gpipe容器。2,struts.xml配置 name="gweb.groovy.dir" value="biz" /&gt;  name="gweb" namespace="/index" ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    3.7.3 Web应用初始化参数的配置 3.7.4 application对象应用示例 3.8 其他内置对象的应用 3.8.1 应答与请求的page对象 3.8.2 页面上下文的page Context对象 3.8.3 获取web.xml配置信息的config对象 3.8.4 获取异常...

    北京大部分公司的ssh面试题

    并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的Validate()验证后选择将请求发送到哪个Action,如果Action不存在,ActionServlet...

    SSH的jar包.rar

    2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3、接着FilterDispatcher被调用,...

    Spring in Action(第二版 中文高清版).part2

    2.5.3 初始化和销毁Bean 2.6 小结 第3章 高级Bean装配 3.1 声明父Bean和子Bean 3.1.1 抽象基Bean类型 3.1.2 抽象共同属性 3.2 方法注入 3.2.1 基本的方法替换 3.2.2 获取器注入 3.3 注入非Spring Bean ...

    JAVA-SSH面试题

    主要对WEB框架常面试的点做了一下整理,希望可帮助到你,下面文档的部分内容 Java---SSH(MVC) 1. 谈谈你mvc的理解 ... Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。

    Struts_config.xml详解

    (相当于初始化赋值) &gt;&gt;&gt; prefix=""// 指定填充当前 Action 关联 FormBean 时 ,要添加到请求参数名称的前缀,因此,如果请求参数名为 "username" 并且 prefix 属性被设置为 "search" , 则将对 FormBean 调用一个...

    Spring in Action(第2版)中文版

    2.5.3初始化和销毁bean 2.6小结 第3章高级bean装配 3.1声明父bean和子bean 3.1.1抽象基bean类型 3.1.2抽象共同属性 3.2方法注入 3.2.1基本的方法替换 3.2.2获取器注入 3.3注入非springbean 3.4注册自定义...

    Spring面试题

    并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的 Validate()验证后选择将请求发送到哪个Action,如果Action不存在,ActionServlet...

    Spring in Action(第二版 中文高清版).part1

    2.5.3 初始化和销毁Bean 2.6 小结 第3章 高级Bean装配 3.1 声明父Bean和子Bean 3.1.1 抽象基Bean类型 3.1.2 抽象共同属性 3.2 方法注入 3.2.1 基本的方法替换 3.2.2 获取器注入 3.3 注入非Spring Bean ...

    基于EXT SSI的简单树实现

    EXT通过/desc/getDesc.action 这个请求找到id为0的结点来渲染出自己的根节点,本例中设置了自动展开根节点, tree.on('expandnode', function(node) { /* 展开时获取父节点 */ parent_node = node; }); 所以打开...

    ssh(structs,spring,hibernate)框架中的上传下载

     我们前面已经指出Oracle的Lob字段和一般类型的字段在操作上有一个明显的区别--那就是你必须首先通过Oracle的empty_blob()/empty_clob()初始化Lob字段,然后获取该字段的引用,通过这个引用更改其值。所以要完成对...

Global site tag (gtag.js) - Google Analytics