Request 请求

Request 请求

HttpServletRequest概述

我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response。

service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是HttpServletRequest,HttpServletRequest是ServletRequest的子接口,功能和方法更加强大

通过request获得请求行

getMethod()   //获取请求方式

getContextPath  //获得项目名

String requestURI=request.getRequestURI(); //网址

StringBuffer requestURL=request.getRequestURL(); //网址

getQueryString()  //获取get请求后的参数

getRemoteAdder  //获取客户端ip地址

通过request获取请求头

getHeader(“Referer”)  //获取请求头

应用,防盗链

//获取指定的请求头

String referer=request.getHeader("Referer");

 

//防盗链

//判断请求头

response.setContentType("text/html;charset=utf-8");//解决中文乱码

if(referer!=null && referer.startsWith("http://localhost")){//判断是否以什么开头

    response.getWriter().write("杨超越");

}else{

    response.getWriter().write("你是小偷");

}

通过request获取请求体

//解决post提交 中文乱码问题

request.setCharacterEncoding("UTF-8");

//解决get方式中文乱码问题

username=new String(username.getBytes("ISO-8859-1"),"UTF-8");

//获取单个参数值

String username=request.getParameter("user"); //括号内填name

//获取一个name多个值的参数

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

//获取所有请求参数的map集合

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

request域对象

作用范围:一次请求中

setAttribute(String name, Object o)  //存入

getAttribute(String name)  //取值

removeAttribute(String name)  //删除值

请求转发

request.getRequestDispatcher(转发的地址).forward(request,response);

特点:

       1.请求服务器1次

       2.url地址不变化

原文地址:https://www.cnblogs.com/hhthtt/p/10708158.html