一、Requset 继承体系

二、Requset 获取请求数据

1.请求行: GET  /request-demo/req1?username=zhangsan HTTP/1.1

String getMethod(): 获取请求方式 :   GET

String getContextPath(): 获取虚拟目录(项目访问路径): /requset-demo

StringBuffer getRequsetURL() :获取URL(统一资源定位符):http://localhost:8080/requset-demo/req1

String getRequsetURL(): 获取URL(统一资源标识符) : /requset-demo/req1

String getQueryString(): 获取请求参数(GET方式):username=zhangsan&password=123

2.请求头:

String getHeader(String name): 根据请求头名称,获取值

3.请求体:POST

ServletInputStream getInputStream(): 获取字节输入流

BufferedReader getReader(): 获取字符输入流

4.post或get调用相互的方法    this.doPost(req.resp)

三、Requset 通用方式获取请求参数

Map<String,String[]> getParameterMap(): 获取所有参数Map集合

String[] getParameterValues(String name) : 根据名称获取参数值(数组)

String getParamter(String name): 根据名称获取参数值(单个值)

四、Idea模板创建Servlet(网上找)

五、请求参数中文乱码问题-POST解决方案

req.setCharactorEncoding("UTF-8")

package com.itheima.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/demo5")
public class ServletDemo5 extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");System.out.println("哈哈哈"+req.getParameter("username"));}
}

六、请求参数中文乱码问题-GET解决方法

通用方法get/post:        new String(username.getBytes("ISO-8859-1"),"UTF-8")

package com.itheima.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;@WebServlet("/demo6")
public class ServletDemo6 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String regStr = new String(req.getParameter("username").getBytes("ISO-8859-1"), "UTF-8");System.out.println("哈哈哈"+regStr);}
}

七、Request请求转发

实现方式:req.getRequsetDispatcher("资源B路径").forward(req,resp);

请求转发资源间共享数据:使用Requset对象

Void setAttribute(String name,Object o): c存储数据到requset域中

Object getAttribute(String name):根据key,获取值

void removeAttribute(String name):根据Key,删除该键值对

@WebServlet("/demo7")
public class ServletDemo7 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo7");//存储数据req.setAttribute("msg","hello");//请求转发req.getRequestDispatcher("/demo8").forward(req,resp);}
}
@WebServlet("/demo8")
public class ServletDemo8 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo8");//获取数据System.out.println("demo8"+req.getAttribute("msg"));}
}

八、Response设置响应数据功能介绍&完成重定向

相应行:HTTP/1.1 200 OK

响应头:Content-Type:text/html

响应体:<html><h1></h1></html>

九、Response完成重定向

实现方式一:resp.setStatus(302)   resp.setHeader("Location","资源B的路径")

简化:resp.sendRedirect("资源B的路径")

@WebServlet("/demo9")
public class ServletDemo9 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo9");//方式一
//        resp.setStatus(302);
//        resp.setHeader("Location","/web-demo/demo1");//简化resp.sendRedirect("/web-demo/demo1");}
}

十、路径问题

明确路径谁使用?

1.浏览器使用:需要加虚拟目录(项目访问路径)

2.服务端使用:不需要加虚拟目录

练习:

<a href="路径" >     加虚拟目录

<form action="路径" >加虚拟目录

req.getRequestDispatcher("路径")   不加虚拟目录

resp.sendRedirect("路径") 加虚拟目录

因为pom.xml可以修改虚拟目录名字,所以我们需要动态获取虚拟目录:

String contextPath = requset.getContextPath()    responce.sendRedirect(contextPath+"/resp2")

十一、Responce响应字符数据

1.通过Responce对象获取字符输出流    PrintWriter writer = resp.getWriter();     2.写数据  writer.write("aaa")

2.返回结果中文乱码  resp.setContentType("text/html;charset=utf-8")

十二、Response响应字节数据

6.Request和Response相关推荐

  1. SpringMvc4中获取request、response对象的方法

    springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...

  2. 简单了解request与response

    本文对 request. response 简单描述,未涉及到具体的浏览器缓存.重定向.请求转发等代码部分. 一.Web服务器,浏览器,代理服务器 在看 response.request 对象之前,先 ...

  3. request 和response

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  4. Struts2中action获取request、response、session的方式

    2019独角兽企业重金招聘Python工程师标准>>> 第一种方式,非IoC(Spring中的控制反转)方式: package com.action; import java.uti ...

  5. request和response一览

    1.HTTP SERVLETRESPONSE简介 set heade set int head set data head add haed add int head add int head 字节流 ...

  6. Spring MVC中处理Request和Response的策略

    前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 作者:码农小胖哥, 图文编辑:xj 来源:https://mp.weixin.qq.com/s/3eFygsiVl8dC2nRy8_8n5 ...

  7. request、response 中文乱码问题与解决方式

    request.response 中文乱码问题与解决方式 request乱码指的是:浏览器向服务器发送的请求参数中包含中文字符,服务器获取到的请求参数的值是乱码: response乱码指的是:服务器向 ...

  8. ASP.NET之Request和Response对象

    经过了牛腩新闻公布系统和html的学习对B/S开发的流程有了些理解.前面尽管用到了非常多知识.但对制作网页仅仅能说知其然.当学到asp.net视频中的解说才干够说開始知其所以然了. 今天来说说clie ...

  9. error response from daemon_Scrapy 框架-模拟登录-Request、Response

    1. Scrapy-Request和Response(请求和响应) Scrapy的Request和Response对象用于爬网网站. 通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达 ...

  10. HTTP请求消息数据格式分析以及request和response

    * HTTP概念 Hyper Text Transfer Protocol 超文本传输协议         * 传输协议:定义了,客户端和服务器端通信时,发送数据的格式         * 特点:   ...

最新文章

  1. java 注解继承注解_Java注解合并,注解继承
  2. QTP连接oracle
  3. 多线程并发:每个开发人员都应了解的内容
  4. 解读思科2014-19年全球移动互联网发展趋势报告(1)
  5. 写给程序员的有效学习方法
  6. php 发送微信请求失败的原因,微信小程序模拟正常 真机服务器请求出错
  7. 【实施工程师之家】linux安装mysql(yum安装mysql)
  8. 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
  9. matlab水力学工具箱,新浪潮水工设计软件
  10. less简介、less安装、编译、less语法之变量、嵌套、类混入、函数混入、运算、less文件导入
  11. tensorflow版本及其对应环境
  12. ios7之后的一些更改
  13. Eclipse用法和技巧十三:自动生成的TODO注释1
  14. JAVA语法——选择排序
  15. Atitit 软件体系重要理论学科 v2 s67.docx Atitit 软件重要理论学科 目录 1. 计算理论这门学问 2 1.1. 学科的产生 2 1.2. 在这些领域中,自动机理论和形式语言理论
  16. 网页设计中常用的Web安全字体
  17. Hadoop的容错性
  18. memcpy和memmove以及memcmp
  19. vue 动态背景图片
  20. Linux服务器绑定mac与ip,Linux实现ip和mac绑定

热门文章

  1. python--HTTP通过127.0.0.1:8888访问百度网页
  2. BM18 二维数组中的查找
  3. 有监督 无监督 自监督 半监督 弱监督
  4. 【论文阅读】Fair and Efficient Gossip in Hyperledger Fabric -- ICDCS
  5. 精选20个最新的开发者工具
  6. [翻译]为什么我们需要校准
  7. 什么是currentColor
  8. ECharts下载最简单方法——小白必看
  9. 计算机如何取消用户账户控制面板,win10用户账户控制怎么取消
  10. 数据类型(五大基本类型,3种特殊类型)