Servlet学习笔记—request参数接收

来源:互联网 发布:网络通信 编辑:程序博客网 时间:2024/06/08 11:27

四种获取request参数的方法:

  • String getParameter(String name):通过指定名称获取参数值
  • String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时
  • Enumeration getParameterNames():获取所有参数的名字
  • Map getParameterMap():获取所有参数对应的Map,其中key为参数名,value为参数值

材料准备:

有如下的home.html页面
这里写图片描述

String getParameter(String name)方法(最常用):

一、地址栏参数传递获取:

在地址栏中输入如下:
这里写图片描述
在servlet中的doGet方法中加入如下的代码片段即可获取传入的参数:

@Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        String name = req.getParameter("name");        String age = req.getParameter("age");        System.out.println(name);        System.out.println(age);    }

二、表单参数传递获取:

获取home.html中的表单中的除了多选框(涉及多个参数接收)以外的其他表单元素(只涉及单个参数接收)的参数,在servlet中的doPost方法中加入如下的代码片段:

public class HttpServletDemo extends HttpServlet {    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        // 根据请求中的key来获值        String name = req.getParameter("name");        String age = req.getParameter("age");        String gender = req.getParameter("gender");        String job = req.getParameter("job");        String introduce = req.getParameter("introduce");        System.out.println(name);        System.out.println(age);        System.out.println(gender);        System.out.println(job);        System.out.println(introduce);    }}

String[] getParameterValues(String name)方法(最常用):

获取home.html中的表单中的多选框(涉及多个参数接收)的参数,在servlet中的doPost方法中加入如下的代码片段:

public class HttpServletDemo extends HttpServlet {    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        String[] favor = req.getParameterValues("favor");        for (String item : favor) {            System.out.println(item);        }    }}

Enumeration getParameterNames()方法:

适用场景:不知道参数的name的情况下(动态表单)

获取home.html中的表单中的参数,在servlet中的doPost方法中加入如下的代码片段:

    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        //获取表单中所有的文本域的name        Enumeration<String> paramNames = req.getParameterNames();        while(paramNames.hasMoreElements()) {            //获得每一个文本域的name            String next = paramNames.nextElement();            String[] paramValues = req.getParameterValues(next);            System.out.print(next+":");            for(String item:paramValues) {                System.out.print(item+" ");            }            System.out.println();        }    }

Map getParameterMap()方法(了解):

获取home.html中的表单中的参数,在servlet中的doPost方法中加入如下的代码片段:

    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        Map map = req.getParameterMap();        Set<String> keySet = map.keySet();        for(String item:keySet) {            String[] vals = (String[]) map.get(item);            System.out.print(item+":");            for(String item1:vals) {                System.out.print(item1+" ");            }            System.out.println();        }    }
原创粉丝点击