栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

详解request中getParameter()和getAttribute()的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详解request中getParameter()和getAttribute()的区别

request中getParameter()和getAttribute()的区别##

首先明确 request 对象代表客户端的一次请求,可以用它来存储客户端(浏览器)请求的一些参数。

getParameter() 方法:

  • 获取客户端在 request 请求通道里发送给服务器的参数。(客户端 --> 服务端)
  • 是一个客户端发送数据的过程
  • 返回值为 String 类型。

getAttribute() 方法:

  • 获取服务器通过 setAttribute() 放入 request 对象里的attribute值,由键值对(key,value)组成。(服务器 --> 客户端)
  • 是一个服务器存储数据的过程
  • 返回值为任意类型

注意:

  1. 没有 setParameter() 函数
  2. getParameter() 返回值是字符串,意味着不能传递其他的对象,如Map、List,但 Attribute 可以存放任意类型的Java对象
  3. 因为服务器端没有 setParameter(key, value) 这个函数来添加参数,所以如果需要在服务器端进行跳转,并需要往下个页面发送新的参数时,无法通过 getParameter() 实现。但是 Attribute 可以,可以通过 setAttribute() ,将值放入到 request 对象,然后在其他页面使用 getAttribute() 获取对应的值,这样就达到一次请求可以在多个页面共享一些信息

对getParameter过程,如下图:

对getAttribute过程,如下图:

实例:

//servletCircle.java
package test1;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class servletCircle extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String radius = request.getParameter("radius");
        double r = Double.valueOf(radius);
        double s = 3.14 * r * r;
        request.setAttribute("r", r);
        request.setAttribute("s", s);
        request.getRequestDispatcher("circleArea.jsp").forward(request, response);
    }

    public void doPOST(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    

    
        
        
        
        圆的面积
    

    
        圆的半径为:<%=request.getAttribute("r")%>
            
圆的面积为: <%=request.getAttribute("s")%>





    
    圆的信息



    
请输入圆的半径:

流程分析:

  1. circle.html中输入半径,提交radius参数(是Parameter )
  2. 在servletCircle.java中使用 getParameter() 获取radius参数
  3. servletCircle.java中使用 setAttribute() 设置参数r和s(是 Attribute )
  4. circle.jsp中使用 getAttribute() 获取参数r和s
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/978959.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号