HttpServletRequest

本文详细介绍了如何使用HttpServletRequest处理HTTP请求,包括请求行解析、请求正文处理、请求转发及编码问题解决等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HttpServletRequest

1、请求行

Get http://localhost:8080/day09/servlet/req1?username=zs http/1.1
getMethod(); 获得请求方式
getRequestURL();返回客户端发出请求时的完整URL。
getRequestURI(); 返回请求行中的资源名部分。
getContextPath(); 当前应用的虚拟目录 /day09_01_request
getQueryString() ; 返回请求行中的参数部分。
System.out.println(request.getMethod());
        System.out.println(request.getRequestURL());
        System.out.println(request.getRequestURI());
        System.out.println(request.getContextPath());
        System.out.println(request.getQueryString());

3、请求正文(重要)

与获取表单数据相关的方法

getParameter(name) 根据表单中name属性的名,获取value属性的值方法
getParameterValues(String name)专业为复选框取取提供的方法
getParameterNames() 得到表单提交的所有name的方法
getParameterMap 到表单提交的所有值的方法 //做框架用,非常实用
getInputStream 以字节流的方式得到所有表单数据
<body>
    <form action="/day03_request/servlet/demo01" method="post">
                    用户名:<input type="text" name="username"><p>
                    密码:<input type="password" name="pwd"><p>
                    性别:<input type="radio" name="sex" value="男" checked="checked">男
           <input type="radio" name="sex" value="女">女<p>
                   爱好:<input type="checkbox" name="hobby" value="听歌">听歌
           <input type="checkbox" name="hobby" value="睡觉">睡觉
           <input type="checkbox" name="hobby" value="看电影">看电影<p>
                   城市:<select name="city">
           <option>.....请选择.....</option>
           <option value="bj">北京</option>
           <option value="shh">上海</option>
           <option value="sz">深圳</option>
           </select><p>
           <input type="submit" value="注册">
    </form>
  </body>
String name=request.getParameter("username");
        String pwd=request.getParameter("pwd");
        String sex=request.getParameter("sex");

        String[] hobbys=request.getParameterValues("hobby");
        String city=request.getParameter("city");


        System.out.println(name);
        System.out.println(pwd);
        System.out.println(sex);

        for(int i=0;hobbys!=null&&i<hobbys.length;i++){
            System.out.print(hobbys[i]+"\t");

        }
        System.out.println();
        System.out.println(city);

与操作非表单数据相关的方法(request也是一个域对象)

* void setAttribute(String name, Object value);
* Object getAttribute(String name);
Void removeAttribute(String name);

与请求转发相关的方法

//得到请求转发或请求包含的协助对象

RequestDispatcher getRequestDispatcher(String path).forward(ServletRequest request, ServletResponse response) //转发的方法
RequestDispatcher getRequestDispatcher(String path).include(ServletRequest request, ServletResponse response) //请求包含
public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("啦啦啦啦");
        request.setAttribute("name", "tom");
        //请求转发
        request.getRequestDispatcher("/servlet/demo03").forward(request, response);
//请求包含      //request.getRequestDispatcher("/servlet/demo03").include(request, response);

        System.out.println("大家好");
    }
public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("你好");
        System.out.println(request.getAttribute("name"));
    }

与请求编码相关的方法:

//解决post方式编码

request.setCharacterEncoding(“UTF-8”); //告诉服务器客户端什么编码,只能处理post请求方式

//解决get方式编码

String name = new String(name.getBytes(“iso-8859-1”),”UTF-8”);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值