当前位置: 首页 > news >正文

jsp request,正确使用. 为什么不能使用 getAttribute 得到保存的数据

转;
和同事碰到一个问题,发现挺经典的.  后来搜到这篇文章,才恍然大悟.
想想自己真够郁闷的. 笨蛋一个!
------------------------------------------------------------------
HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别:

(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法

(2) 当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:

<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>

或者:

<form name="form1" method="post" action="authenticate.jsp">
  请输入用户姓名:<input type="text" name="username">
  <input type="submit" name="Submit" value="提交">
</form>

在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username:

<% String username=request.getParameter("username"); %>

(3) 当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。假定 authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字, 如何传递这一数据呢?先在authenticate.jsp中调用setAttribute()方法:

<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>

<jsp:forward page="hello.jsp" />

在hello.jsp中通过getAttribute()方法获得用户名字:

<% String username=(String)request.getAttribute("username"); %>
Hello: <%=username %>

====================
从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。

request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。

在网上找到的!

相关文章:

  • html 另存为/打印/刷新/查看原文件等按钮的代码!!!
  • 四川汶川地震感言
  • Oracle 导入数据库备份 dmp 文件
  • 丫头的拜托
  • 祝福远方的妹妹高考成功
  • 妹妹的高考,续 ----呵呵,妹妹高考上一本线了,恭喜中.....
  • 妹妹高考续--录取了
  • 163.com 网易的房产频道也会乱码,质疑开发人员和测试人员 http://sh.house.163.com/ !!
  • web.xml中配置spring
  • Struts Hibernate Spring SSH集成碰到的问题
  • 我的CSDN博客……
  • Spring配置的MS SQLSERVER 2008 JDBC连接
  • JQuery封装脚本系列之复选框(CheckBox)
  • JQuery 封装脚本系列之下拉列表框(Select)
  • JQuery 封装脚本系列之单选框(Radio)
  • 5、React组件事件详解
  • Git同步原始仓库到Fork仓库中
  • hadoop集群管理系统搭建规划说明
  • MobX
  • nodejs调试方法
  • npx命令介绍
  • Objective-C 中关联引用的概念
  • spring-boot List转Page
  • SQLServer之创建数据库快照
  • 从setTimeout-setInterval看JS线程
  • 如何使用 JavaScript 解析 URL
  • 深度学习在携程攻略社区的应用
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 中文输入法与React文本输入框的问题与解决方案
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​TypeScript都不会用,也敢说会前端?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #162 (Div. 2)
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (十五)使用Nexus创建Maven私服
  • (转) 深度模型优化性能 调参
  • (转)Sublime Text3配置Lua运行环境
  • .Net 6.0 处理跨域的方式
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .ui文件相关
  • @Builder用法
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [C\C++]读入优化【技巧】
  • [FC][常见Mapper IRQ研究]
  • [ffmpeg] x264 配置参数解析
  • [HEOI2013]ALO
  • [HTML]Web前端开发技术18(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用——喵喵画网页