基于request.getAttribute与request.getParameter的区别详解

 更新时间:2013年04月22日 09:55:19   作者:  
本篇文章小编为大家介绍,基于request.getAttribute与request.getParameter的区别详解。需要的朋友参考下

HttpServletRequest类既有getAttribute()方法,也有getParameter()方法,这两个方法有以下区别:
1、HttpServletRequest类有setAttribute()方法,而没有setParameter()方法;
2、当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数;

例如,假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:

复制代码 代码如下:

<a href="authenticate.jsp?username=qianyunlai.com">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 %>

4、request.getAttribute 返回的是Object,request.getParameter 返回的是String

相关文章

  • Java利用Dijkstra算法求解拓扑关系最短路径

    Java利用Dijkstra算法求解拓扑关系最短路径

    迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学迪家迪杰斯特拉于1959年提出的,因此又叫狄克斯特拉算法。本文将利用迪克斯特拉(Dijkstra)算法求拓扑关系最短路径,感兴趣的可以了解一下
    2022-07-07
  • SpringBoot如何导出Jar包并测试(使用IDEA)

    SpringBoot如何导出Jar包并测试(使用IDEA)

    这篇文章主要介绍了SpringBoot如何导出Jar包并测试(使用IDEA),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • java实现MapReduce对文件进行切分的示例代码

    java实现MapReduce对文件进行切分的示例代码

    本文主要介绍了java实现MapReduce对文件进行切分的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Spring boot如何集成kaptcha并生成验证码

    Spring boot如何集成kaptcha并生成验证码

    这篇文章主要介绍了Spring boot如何集成kaptcha并生成验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot+WebSocket实现即时通讯功能(Spring方式)

    SpringBoot+WebSocket实现即时通讯功能(Spring方式)

    今天给大家分享一个SpringBoot+WebSocket实现即时通讯功能(Spring方式),WebSocket是一种在单个TCP连接上进行全双工通信的协议,文章通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • 深入理解Java中的接口

    深入理解Java中的接口

    下面小编就为大家带来一篇深入理解Java中的接口。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • new出来的对象中无法使用@autowired进行对象bean注入问题

    new出来的对象中无法使用@autowired进行对象bean注入问题

    这篇文章主要介绍了基于new出来的对象中无法使用@autowired进行对象bean注入问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring框架开发IOC两种创建工厂方法详解

    Spring框架开发IOC两种创建工厂方法详解

    这篇文章主要介绍了Spring框架IOC两种创建工厂方法详解,文中附含详细的代码示例分别对静态方法和实例方法创建工厂作了简要的分析
    2021-09-09
  • Java中的Valid和Validated的比较内容

    Java中的Valid和Validated的比较内容

    在本篇文章里小编给大家整理的是关于Java中的Valid和Validated的比较内容,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • java 抛出异常处理的方法

    java 抛出异常处理的方法

    这篇文章主要介绍了java 抛出异常处理的方法的相关资料,throws关键字通常被应用在声明方法时,用来指定可能抛出的异常,这里就讲下如何使用,需要的朋友可以参考下
    2017-08-08

最新评论