首页 / 旅游 / 正文

request getparameter(解析关于Tomcat Servlet-request的获取请求参数及几种常用方法)

放大字体  缩小字体 来源:男性尿路感染症状 2026-04-17 17:10  浏览次数:11

本文分享自华为云社区《ntent="mp" data-source="outerlink" href="https://bbs.huaweicloud.com/blogs/393179?utm_source=jinritoutiao&utm_medium=bbs-ex&utm_campaign=other&utm_content=content" rel="noopener noreferrer noopener noreferrer" target="_blank">浅谈Tomcat之Servlet-request获取请求参数及常用方法-云社区-华为云》,作者:QGS。

//获取Map集合中所有的keyEnumeration<String>   getParameterNames();//获取MapMap<String, String[]>   getParameterMap(); //根据key获取Map集合中的vale  (常用**)String[]   getParameterValues(String s);//获取value一维数组的第一个元素   (常用**)String    getParameter(String name); 浏览器向服务器提交的是String类型
解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">

解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">


解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">

//getParameterNames()获取所有key值Enumeration<String> keys = request.getParameterNames();while (keys.hasMoreElements()){    String key = keys.nextElement();    System.out.print("key: "+key +" ");    //getParameterValues(key) 、据key获取Map集合中的vale    String[] Values = request.getParameterValues(key);    if (Values.length>1){        for (String value : Values) {            System.out.print("value:"+value+" ");        }    }else {        System.out.print(Values[0]);    }    System.out.println();}
解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">

通过标签中的name获取value一维数组

getParameterNames()获取所有key值

如果html页面的数据有更改,浏览器清除过缓存在执行。
解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">

//通过标签中的name获取value一维数组String[] usernames = request.getParameterValues("username");String[] pwds = request.getParameterValues("pwd");String[] hobbies = request.getParameterValues("hobby");for (String username : usernames) {    System.out.print(username);}System.out.println();for (String pwd : pwds) {    System.out.print(pwd);}System.out.println();for (String hobby : hobbies) {    if (hobby.isEmpty()){        System.out.println("null");    }    System.out.print(hobby);}System.out.println();//获取数组的第一个参数String username = request.getParameter("username");String pwd = request.getParameter("pwd");String hobby = request.getParameter("hobby");System.out.println("getParameter :"+username+" "+pwd+" "+hobby);

getParameter获取数组的第一个参数

//获取数组的第一个参数String username = request.getParameter("username");String pwd = request.getParameter("pwd");String hobby = request.getParameter("hobby");

请求域对象

Request又称“请求域”应用域对象ServletContext(Servlet上下文对象)、当用户的共享数据很少修改操作并且数据量少的时候,使用ServletContext能够提升程序的执行效率(应用域绑定数据,看作将数据放到Cache当中,用户访问时直接从Cache中提取,减少IO等操作)。应用域对象ServletContext的操作方法(类似Map集合的操作)//向域绑定数据setAttribute(String name , Object obj)//从域获取数据,根据name(key)获取数据Object getAttribute(String name)//移除数据,根据name(key)removeAttribute(String name)请求域对象请求域比应用域的范围小, 占用资源小,生命周期短,请求域对象只在一次请求内有效。请求域对象ServletContext的操作方法(类似Map集合的操作)//向域绑定数据setAttribute(String name , Object obj)//从域获取数据,根据name(key)获取数据Object getAttribute(String name)//移除数据,根据name(key)removeAttribute(String name)

案例

//获取系统当前时间Date nowTime =new Date();//向request域 中绑定数据request.setAttribute("NowTime",nowTime);//从request域 获取数据Object obj = request.getAttribute("NowTime");response.setContentType("text/html;charset=utf-8");response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");String timeStr = sdf.format((Date)obj);out.print("当前时间: "+ timeStr);

Servlet转发机制

转发servlet类

public class ServletA extends HttpServlet {    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //使用Servlet转发机制。执行ServletA后,跳转至ServletB,调用请求转发器,将request,response参数传递给另一个HttpServlet子类        request.getRequestDispatcher("/servletB").forward(request,response);    }}
public class ServletB extends HttpServlet {    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //获取系统当前时间        Date nowTime =new Date();        //向request域 中绑定数据        request.setAttribute("NowTime",nowTime);        //从request域 获取数据        Object obj = request.getAttribute("NowTime");        response.setContentType("text/html;charset=utf-8");        response.setCharacterEncoding("utf-8");        PrintWriter out = response.getWriter();        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");        String timeStr = sdf.format((Date)obj);        out.print("当前时间: "+ timeStr);    }}
解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">

转发html页面

//既可以转发Servlet类也可以转发html(属于Web容器当中合法的资源都可以转发)request.getRequestDispatcher("/share.html").forward(request,response);
解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">

常用方法

//获取客户端的IP地址String remoteAddr = request.getRemoteAddr();//获取远程的用户String remoteUser = request.getRemoteUser();//获取远程的主机IPString remoteHost = request.getRemoteHost();//获取远程的的端口int remotePort = request.getRemotePort();//获取主机服务名String serverName = request.getServerName();//获取服务路径(项目名称)String servletPath = request.getServletPath();//获取服务端口int serverPort = request.getServerPort();//获取Servlet上下文  或者this.getServletContext();ServletContext servletContext = request.getServletContext();//指定字符集(解决不同字符集乱码问题)response.setCharacterEncoding("utf-8");
解析关于Tomcat Servlet-request的获取请求参数及几种常用方法nerror="javascript:errorimg.call(this);">

点击下方,第一时间了解华为云新鲜技术~

ntent="mp" data-source="outerlink" href="https://bbs.huaweicloud.com/blogs?utm_source=jinritoutiao&utm_medium=bbs-ex&utm_campaign=other&utm_content=content" rel="noopener noreferrer noopener noreferrer" target="_blank">华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

#华为云开发者联盟#

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心