Request 请求

Posted hhthtt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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地址不变化

以上是关于Request 请求的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

Python 向 Postman 请求代码片段

QT QHttpMultiPart上传图片

推进学说代码片段