HttpServletRequest

HttpServletRequest

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

常用方法如下:

方法   说明
getRequestURL() 返回客户端发出请求时的完整URL(路径)
getRequestURI()  返回除去host(域名或者ip)部分的路径
request.getContextPath()  返回工程名部分,如果工程映射为/,此处返回则为空
request.getServletPath()  返回除去host和工程名部分的路径
getQueryString () 获取url中的参数
getRemoteHost() 返回发出请求的客户机的完整主机名。
getRemoteAddr() 返回发出请求的客户机的IP地址。
getPathInfo() 返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以"/"开头。
getRemotePort() 返回客户机所使用的网络端口号。
getLocalAddr() 返回WEB服务器的IP地址。
getLocalName() 返回WEB服务器的主机名。
getHeader(string name) 以 String 的形式返回指定请求头的值。如果该请求不包含指定名称的头,则此方法返回 null。如果有多个具有相同名称的头,则此方法返回请求中的第一个头。头名称是不区分大小写的。可以将此方法与任何请求头一起使用
getHeaders(String name) 以 String 对象的 Enumeration 的形式返回指定请求头的所有值
getHeaderNames() 返回此请求包含的所有头名称的枚举。如果该请求没有头,则此方法返回一个空枚举
getParameter(String name) 根据name获取请求参数(常用)
getParameterValues(String name) 根据name获取请求参数列表(常用)
getParameterMap() 获取所有参数对应的Map,其中key为参数名,value为参数值。
   

request对象作为一个域对象(Map容器)使用时,主要是通过以下的四个方法来操作


setAttribute(String name,Object o):将数据作为request对象的一个属性存放到request对象中,例如:request.setAttribute(“data”, data);

getAttribute(String name):获取request对象的name属性的属性值,例如:request.getAttribute(“data”)

removeAttribute(String name):移除request对象的name属性,例如:request.removeAttribute(“data”)

getAttributeNames:获取request对象的所有属性名,返回的是一个,例如:Enumeration   attrNames = request.getAttributeNames();


HttpServletRequest请求转发(服务器端跳转forward)

    在Servlet中请求转发是大量要使用的,因为当我们访问一个Servlet的时候通常会执行一些后台的业务逻辑,然后跳转到一个结果页面,那么跳转到结果页面的这个过程就是请求转发,举个例子我们做登录的功能,我们填写用户名密码然后提交到一个负责登录的Servlet,Servlet为我们做用户名和密码的校验,如果我们都正确的话,我们就要跳转到登录的提示页面,如果错误就要跳转到登录失败的页面。

Request的请求转发也可以叫做服务器端的跳转,虽然有页面的跳转但是我们会发现地址栏是不会有变化的。

request.getRequestDispatcher("/success.html").forward(request, response);

HttpServletRequest获取上传的文件

// 获取上传的文件对象
Part part = request.getPart("file");
// 获取上传的文件名字
String fileName = part.getSubmittedFileName();
// 获取输入流
InputStream ins = part.getInputStream();
// 获取上传的contentType
String contentType = part.getContentType();
//获取上传的文件的大小
 long size = part.getSize();
原文地址:https://www.cnblogs.com/dw3306/p/13024891.html