request对象

HttpServletRequest

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息

request常用方法

l获得客户机信息

?getRequestURL方法返回客户端发出请求时的完整URL。

?getRequestURI方法返回请求行中的资源名部分。

?getQueryString 方法返回请求行中的参数部分。

?getRemoteAddr方法返回发出请求的客户机的IP地址

?getRemoteHost方法返回发出请求的客户机的完整主机名

?getRemotePort方法返回客户机所使用的网络端口号

?getLocalAddr方法返回WEB服务器的IP地址。

?getLocalName方法返回WEB服务器的主机名

?getMethod得到客户机请求方式

URL和URI的关系:URI是URL的父类,URI描述资源,URL描述互联网的资源

String url = request.getRequestURL().toString();

    System.out.println(url);

    System.out.println(request.getRequestURI());



    System.out.println(request.getQueryString());



    System.out.println(request.getRemoteAddr());



    System.out.println(request.getRemoteHost());



    System.out.println(request.getRemotePort());



    System.out.println(request.getMethod());

Request常用方法

l获得客户机请求头

?getHead(name)方法

?getHeaders(String name)方法

?getHeaderNames方法

l获得客户机请求参数(客户端提交的数据)

?getParameter(name)方法

?getParameterValues(String name)方法

?getParameterNames方法

?getParameterMap方法 //

?getInputStream

获取客户机带过来的数据

    String username = request.getParameter("username");

    System.out.println(username);



    System.out.println("----------------------");



    Enumeration  e = request.getParameterNames();

    while(e.hasMoreElements()){

       String name =(String) e.nextElement();

       String value = request.getParameter(name);

       System.out.println(name + "=" + value);

   }



    System.out.println("----------------------");



    String values[] =request.getParameterValues("username");

    for(int i=0;values!=null &&i<values.length;i++){

       System.out.println(values[i]);

   }



    System.out.println("----------------------");

    //http://localhost:8080/day05/servlet/RequestDemo3?username=aaa&username=bbb&password=123

    Map<String,String[]>map = request.getParameterMap();

    Set<Map.Entry<String,String[]>> set = map.entrySet();

    for(Map.Entry<String,String[]> entry : set){

       username =entry.getKey();

       values =entry.getValue();

       for(int i=0;values!=null &&i<values.length;i++){

           System.out.println(username +"=" + values[i]);

       }

   }

request常见应用1

l防盗链

String referer =request.getHeader(“referer”);

    if(referer==null ||!referer.startsWith("http://localhost")){

       response.sendRedirect("/day05/index.html");

       return;

   }

    String data = "凤姐日记";

    response.setCharacterEncoding("UTF-8");

    response.setHeader("content-type", "text/html;charset=UTF-8");

    response.getWriter().write(data);

l各种表单输入项数据的获取

?text、password、radio、checkbox、

?file、select、textarea、 hidden、

?image、button给js编程用

package cn.itcast.request;

import java.io.IOException;

import java.util.Arrays;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

//获取不同类型表单的数据(获取客户机表单提交的数据)

public class RequestDemo5 extends HttpServlet {

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {



    System.out.println(request.getParameter("username"));

    System.out.println(request.getParameter("password"));

    System.out.println(request.getParameter("gender"));

    System.out.println(Arrays.asList(request.getParameterValues("like")==null?newString[]{}:request.getParameterValues("like")));

    System.out.println(request.getParameter("city"));

    System.out.println(request.getParameter("resume"));

    System.out.println(request.getParameter("xx"));





    String username =request.getParameter("username"); //"" null

    if(username==null ||username.trim().equals("")){

        System.out.println("您没有提交数据");

    }

    request.getParameter("gender");  //null

    request.getParameterValues("like");//null

}

publicvoid doPost(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

    doGet(request, response);

}

}
form表单:



form.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值