getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 
getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收参数返回的不是Object,而是String类型

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类型的共享数据。

request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,,  request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段,这个的确是正解.

getAttribute是返回对象,getParameter返回字符串

request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。

java jsp setAttribute setParameter 区别相关推荐

  1. java毕业设计——基于java+JSP+Oracle的记账管理系统设计与实现(毕业论文+程序源码)——记账管理系统

    基于java+JSP+Oracle的记账管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+Oracle的记账管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

  2. java jsp学习指南_JSP教程–最终指南

    java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...

  3. Servlet和JSP之间的区别

    JSP和Servlet都是与使用Java构建基于Web的应用程序有关的重要概念. 基本上,Servlet是Java中HTML,而JSP是HTML中的Java. 任何典型的Web开发面试都可能有几个基于 ...

  4. JSF,Servlet和JSP有什么区别?

    本文翻译自:What is the difference between JSF, Servlet and JSP? How are JSP and Servlet related to each o ...

  5. 【Java+JSP+MySql】12306购票系统(五)购买车票

    文章目录 选择出行需求 选择车票 确认购买 购买成功页面 选择出行需求 在页面中可以选择出发城市.到达城市以及出发日期. 代码存放在needs.jsp文件中. <%@ page language ...

  6. java毕业设计—— 基于java+JSP+SSH的任务调度系统设计与实现(毕业论文+程序源码)——任务调度系统

    基于java+JSP+SSH的任务调度系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+SSH的任务调度系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. ...

  7. 基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql)

    基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  8. javaweb JAVA JSP水费管理系统JSP电费管理系统JSP缴费管理系统JSP水费缴费系统JSP水电费管理

    javaweb JAVA JSP水费管理系统JSP电费管理系统JSP缴费管理系统JSP水费缴费系统JSP水电费管理 登录控制层: public class LoginController {priva ...

  9. 基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql)

    基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/i ...

最新文章

  1. 暑期集训4:栈,树,优先队列 例 :  UVA - 514 ​​​​​​​​​​​​​​
  2. 财务大数据比赛有python吗-如何在一个月之内掌握python数据分析,参加大数据比赛?...
  3. Linux软件安装之YUM
  4. 【深度学习】3D深度学习简介
  5. 分布式缓存 - hash环/一致性hash
  6. python中tkinter的使用-下
  7. angular4更改表单中显示的值_关于angular4中FormBuilder重新赋值时发生的问题
  8. java容易搞混的技术_Java中比较容易混淆的知识点
  9. mysql 存储过程死循环的关闭
  10. 【洛谷 2863】牛的舞会
  11. 中国历史上成功的两人合作, 改进, 提高的例子
  12. 学习Linux第一周所有命令总结
  13. HTTP协议 (五) 代理
  14. 计算机存储换算 2GB等于多少MB,一gb等于多少mb 1gb等于多少mb?存储单位的含义和换算【详解】...
  15. 服务器虚拟机装nas,nas虚拟主机(nas为什么要装虚拟机)
  16. 微信公众号图片无法正常显示
  17. 搜狗站群代码之搜狗批量推送工具
  18. 一些网络广告定价模式的含义
  19. 热加工作业考研题目答案分享——metal casting 1
  20. 数列极限四则运算误区

热门文章

  1. TopCoder SRM 152 div 2 500point
  2. python找不到tushare_python tushare安装
  3. pythonexcel汇总_用python汇总excel表格数据-怎样用python遍历表格中的内容
  4. 互联网协议 — 数据交换技术
  5. Linux_自制系统服务启动脚本
  6. 模组使用之dB、dBm、dBw、dBu、dBc的含义和之间的关系
  7. altium designer布线调整时不自动删除旧线
  8. ThinkCMF 5.1.0 发布:支持 swoole、协议变更为 MIT
  9. 共识算法的比较:Casper vs Tendermint
  10. 深层学习:心智如何超越经验2.3 解释变化