struts-request 请求参数的生命

struts-request 请求参数的生命

以前我看过很多文章,大概的意思是:挡在浏览器请求时就会生成一个新的线程,request就会在整个线程的生命周期里,jsp->action->jsp,当线程注销时,request也会注销,当你再次请求浏览器时,又会再生一个线程,同时也会生成新的request。

其实这里面的意思大家都会明白,当看到这样的文章我也感觉自己很明白,可是实际应用中还会表现出不足。

 

 下面的讨论都是在product_id不变的情况下讨论的,只是简单的从一个jsp传令一个jsp中

浏览器中我们请求路径:http://localhost:8080/fangdo/calculator/listPriceByProductId.action?product_id=1,会根据配置文件找到相应的action的方法,

在方法中我们可以通过

HttpServletRequest request = ServletActionContext.getRequest(); String product_id= request.getParameter("product_id");

这俩行获得product_id参数值,然后在后台进行逻辑操作。

可以通过下面的代码传到jsp页面中

request.setAttribute("product_id", product_id);

在jsp页面中可以通过这一行获得值:

String product_id = request.getAttribute("product_id");

上面的流程是请求开始时传递参数,这个参数伴随着整个生命周期。

发现问题没?

请求是jsp->action->jsp,如果我们想在跳转后的jsp页面中获得参数,可以直接使用

String product_id= (String)request.getParameter("product_id");

而不用上面那么麻烦,这个参数一直在这个request生命中,你可以在在这个request生命中的任何时候获取他,使用它。

如果在action中获得参数,然后通过setAttribute()方法发送到jsp中,再有jsp中getAttribute()获得。这是对request生命周期的理解错误的表现,可能你会理解成jsp->action就是request的作用区域,所以需要setAttribute()方法将参数再次传一下。其实在浏览器请求时就会生成一个新的线程,request就会在整个线程的生命周期里,jsp->action->jsp,这是request的整个生命周期。

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/winHerson/blog/52498

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110438.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在pycharm中配置Anaconda以及pip源配置

    在pycharm中配置Anaconda以及pip源配置在学习推荐系统、机器学习、数据挖掘时,python是非常强大的工具,也有很多很强大的模块,但是模块的安装却是一件令人头疼的事情。现在有个工具——anaconda,他已经帮我们集成好了很多工具了!anaconda里面集成了很多关于python科学计算的第三方库,主要是安装方便,而python是一个编译器,如果不使用anaconda,那么安装起来会比较痛苦,各个库之间的依赖性就很难连接的很好。在wind

    2022年5月15日
    33
  • @transactional的使用_@transactional注解默认的回滚方式

    @transactional的使用_@transactional注解默认的回滚方式@Transactional是声明式事务管理编程中使用的注解1.添加位置1)接口实现类或接口实现方法上,而不是接口类中。2)访问权限:public的方法才起作用。@Transactional注解应该只被应用到public方法上,这是由SpringAOP的本质决定的。系统设计:将标签放置在需要进行事务管理的方法上,而不是放在所有接口实现类上:只读的接口就不需要事务管…

    2022年9月30日
    2
  • 哈佛大学公开课《幸福课》笔记「建议收藏」

    哈佛大学公开课《幸福课》笔记「建议收藏」目录概述第一讲什么是积极心理学第二讲为何研究积极心理学?第三讲幸福是一种随机现象吗?第四讲积极的环境可以改变人第五讲环境的力量第六讲乐观主义第七讲逆境还是机遇第八讲感激第九讲改变第十讲如何去改变第十一讲养成良好的习惯第十二讲写日记第十三讲面对压力第十四讲过犹不及第十五讲完美主义第十六讲享受过程第十七讲运动与冥想第十八讲睡眠、触摸和爱情的重要性第十九讲如何让爱情地…

    2022年7月25日
    18
  • java做服务器,android做客户端,实现数据传输

    许久未动笔,有个小项目开始动工。需要用一台windows电脑做服务器,在android端与其进行数据交换,实现一些业务。简单起见,用java写这个服务器,以前没做过,试试水。很简单的代码,纯粹找思路。服务器端代码:package com.test;import java.io.IOException;import java.io.OutputStream;impor

    2022年3月11日
    51
  • Laravel Model 的 fillable (白名单)与 guarded (黑名单)

    Laravel Model 的 fillable (白名单)与 guarded (黑名单)

    2021年10月25日
    53
  • 微信小程序中-[渲染层网络层错误] pages/card/card.wxss 中的本地资源图片无法通过 WXSS 获取-解决办法

    微信小程序中-[渲染层网络层错误] pages/card/card.wxss 中的本地资源图片无法通过 WXSS 获取-解决办法1、报错原由微信小程序使用background-image运行时报错pages/index/index.wxss中的本地资源图片无法通过WXSS获取,可以使用网络图片,或者base64,或者使用标签。小程序样式中不允许小程序路径2、解决方法1.使用图片的网络路径background:url(‘http://1812.img.pp.sohu.com.cn/images/blog/2009/11/18/18/8/125b6560a6ag214.jpg’);2.base64将图

    2022年6月24日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号