本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

本人互联网技术爱好者,互联网技术发烧友

微博:伊直都在0221

QQ:951226918

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.HttpServletRequest 简介

  1)Servlet API 中定义的 ServletRequest 接口类用于封装请求消息

  2)HttpServletRequest 是专用于HTTP协议的ServletRequest 子接口,它用于封装 HTTP 请求消息

  3)在 service() 方法内部调用 HttpServletRequest 对象的各种方法来获取请求消息。每次请求都会调用servece()方法

2.获取请求行的相关信息:ServletRequest,HttpServletRequest

本部分值列举出部分的API,详细参考   ServletRequest ,HttpServletRequest

1)ServletRequest

  获取参数

  ① ServletRequest:封装了请求信息,可以获取到任何的请求信息。这两个接口的实现类都是服务器给予实现的,并在服务器调用service方法时候传入

  ② String getParameter(String name):根据请求参数的名字,返回参数值

  ③ String[] getParameterValues(String name):根据请求参数的名字,返回请求参数对应的字符串数组。在例如“checkbox”比较方便

  ④ Map getParametrMap():返回请求参数的键值对:key->参数名 值:->参数值,String类型数组

  ⑤ Enumeration getParameterNames():返回参数名对应的enumeration对象,类似于ServletConfig(或ServletContext )的getInitPrameterNames()方法

2)HttpServletRequest

  获取请求行的相关信息 

  ① String getMethod():返回HTTP请求消息中的请求方式

  ② String getRequestURI():返回请求行中的资源名部分。

  ③ String getQueryString():返回请求行中的参数部分。

  ④ String getProtocol():返回请求行中的协议名和版本

  ⑤ String getContextPath():返回请求资源所属于的WEB应用程序的路径

  ⑥ String getPathInfo():返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头

  ⑦ String getPathTranslated():返回URL中的额外路径信息所对应的资源的真实路径

  ⑧ String getServletPath():Servlet的名称或Servlet所映射的路径

获取网络连接信息

  ① String getRemoteAddr():返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (*)

  ② String getRemoteHost():返回发出请求的客户机的完整主机名,即“pc1.atguigu.com”这种格式

  ③ String getRemotePort():返回发出请求的客户机所使用的网络接口的端口号

  ④ String getLocalAddr():返回WEB服务器上接收当前请求的网络接口的IP地址

  ⑤ String getLocalName():返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。

  ⑥ String getLocalPort():返回WEB服务器上接收当前请求的网络接口的端口号

  ⑦ String getServerName():返回当前请求所指向的主机名

  ⑧ String getServerPort():返回当前请求所连接的服务器端口号

  ⑨ String getScheme():返回请求的协议名,例如http、https或ftp

  ⑩ String getRequestURL():返回客户端发出请求时的完整URL

获取请求头信息

  getHeader方法

  getHeaders方法

  getHeaderNames方法

  getIntHeader方法

  getDateHeader方法

  getContentType方法

  getContentLength方法

  getCharacterEncoding方法

请求域属性

  存储在ServletRequest对象中的对象称之为请求域属性,属于同一个请求的多个处理模块之间可以通过请求域属性来传递对象数据

   setAttribute方法   getAttribute方法   removeAttribute方法   getAttributeNames方法

代码一:login.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="LoginServlet" method="get"> user:<input type="text" name="user"/>
password:<input type="password" name="password"/> <br><br> interesting:
<input type="checkbox" name="interesting" value="reading">Reading
<input type="checkbox" name="interesting" value="game">Game
<input type="checkbox" name="interesting" value="party">Party
<input type="checkbox" name="interesting" value="shopping">Shopping
<input type="checkbox" name="interesting" value="sport">Sport
<input type="checkbox" name="interesting" value="tv">Tv
<input type="checkbox" name="interesting" value="run">Run <input type="submit" value="submit"/> </form>
</body>
</html>

代码二:web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"> <servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.jason.javaweb.LoginServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern> </servlet-mapping>
</web-app>

代码三:LoginServlet.java

 package com.jason.javaweb;

 import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest; public class LoginServlet implements Servlet { @Override
public void destroy() { } @Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
} @Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
} @Override
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub } @Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// 获取请求参数 String getParameter(String name):根据请求参数的名字,返回参数值
String user = request.getParameter("user");
String password = request.getParameter("password");
System.out.println(user + " , " + password);// eee , eee // String[] getParameterValues(String name):根据请求参数的名字,返回请求参数对应的字符串数组
String[] interestings = request.getParameterValues("interesting");
for (String interesting : interestings) {
System.out.println("checked-->" + interesting);
// checked-->reading checked-->game
} // Enumeration
// getParameterNames():返回参数名对应的enumeration对象,类似于ServletConfig(或ServletContext)的getInitPrameterNames()方法
Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()) {
String name = names.nextElement();
String value = request.getParameter(name);
System.out.println("~~~" + name + ":" + value);
// ~~~user:eee ~~~password:eee ~~~interesting:reading
} // Map getParametrMap():返回请求参数的键值对:key->参数名 值:->参数值,String类型数组
Map<String, String[]> map = request.getParameterMap();
for (Map.Entry<String, String[]> entry : map.entrySet()) {
System.out.println("**" + entry.getKey() + " : "
+ Arrays.asList(entry.getValue()));
// **user : [eee]
// **password : [eee]
// **interesting : [reading, game]
} HttpServletRequest httpServletRequest = (HttpServletRequest) request; // 获取请求的URL
String url = httpServletRequest.getRequestURI();
System.out.println("url : " + url);// url : /javaWEB/LoginServlet // 获取请求方法
String method = httpServletRequest.getMethod();
System.out.println("method : " + method);// method : GET // 获取字符串儿=
String queryString = httpServletRequest.getQueryString();
System.out.println(queryString);// user=eee&password=eee&interesting=reading&interesting=game // 获取请求的servlet的映射路径
String servletPath = httpServletRequest.getServletPath();
System.out.println(servletPath);// /LoginServlet } }

[原创]java WEB学习笔记08:HttpServletRequest & ServletRequest的更多相关文章

  1. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  2. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. [原创]java WEB学习笔记45:自定义HttpFilter类,理解多个Filter 代码的执行顺序,Filterdemo:禁用浏览器缓存的Filter,字符编码的Filter,检查用户是否登陆过的Filter

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. [原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. [原创]java WEB学习笔记52:国际化 fmt 标签,国际化的总结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. [原创]java WEB学习笔记51:国际化 概述,API 之 locale类,dataFormat类,numberFormat类, MessageFormat类,ResourceBundle 类

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. 给mysql root用户设置密码

    使用其他用户进入数据库, 用select PASSWORD('你要设置的密码'), 然后直接update mysql.user set  mysql.user.Password='你PASSWORD( ...

  2. POJ 3126 Prime Path (BFS+剪枝)

    题目链接:传送门 题意: 给定两个四位数a.b,每次能够改变a的随意一位.而且确保改变后的a是一个素数. 问最少经过多少次改变a能够变成b. 分析: BFS,每次枚举改变的数,有一个剪枝,就是假设这个 ...

  3. 解决Linux上解压jdk报错gzip: stdin: not in gzip format

    最近在阿里上买了个服务器玩,需要安装jdk,在解压过程中遇到了一些问题,又是一番Google度娘,终于解决了.问题原因让我有点无奈…… 输入 #tar -xvf jdk-8u131-linux-x64 ...

  4. PLSQL中显示Cursor、隐示Cursor、动态Ref Cursor差别

    一.显式cursor 显式是相对与隐式cursor而言的,就是有一个明白的声明的cursor.显式游标的声明类似例如以下(具体的语法參加plsql ref doc ): cursor cursor_n ...

  5. Python基础(字符编码与文件处理)

    一.了解字符编码的知识储备 1.计算机基础知识(三副图) 2.文本编辑器存取文件的原理(notepad++,Pycharm,word) 打开编辑器就启动了一个进程,是在内存中运行的,所以在编辑器写的内 ...

  6. Parencodings - poj 1068

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22764   Accepted: 13344 Description L ...

  7. java多线程实现复制大文件

    有些开发的时候我们经常遇到这样一个问题,对大文件的处理.比如:日志文件.那么十几G的大文件.我们应该如何复制呢? 还有就是希望从本地和远程复制文件,文件都很大,10G级的如何办呢? 在这里我告诉你们, ...

  8. transport connector和network connector

    1 什么是transport connector 用于配置activemq服务器端和客户端之间的通信方式. 2 什么是network connector 用于配置activemq服务器之间的通信方式, ...

  9. iOS系统层次架构

    本文转自:http://blog.csdn.net/lxl_815520/article/details/51172917 一,概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS la ...

  10. zabbix 主机组管理

    分组的目的是将同一属性的主机归类,主机组中可以包含主机,也可以包含模板 建议:同一属性的主机或者模板,尽量归纳到分组中方便以后管理.分组原则如下: 以地理位置进行划分 以业务划分 以机器用途划分 以系 ...