欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HttpServletRequest

程序员文章站 2024-02-04 14:15:22
...

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”);