Servlet中的request与response
1.掌握HttpServletRequest与HttpServletResponse的概述
doGet/doPost方法的request的类型是HttpServletRequest,response的类型是HttpServletResponse,他们都是ServletRequest,ServletResponse的子接口,功能更加强大。
2.掌握抓包工具的使用
3.了解HttpServletRequest与HttpServletResponse的请求行,请求头,请求体
3.1:HttpServletRequest的请求行请求头请求体
比如抓取request请求:掌握post或者get提交的区别,了解request请求行请求头请求体有哪些重要的key和对应的api
比如请求行
String getContextPath() ---web应用的名称(常用)
比如请求头
Refer头的作用是用来做防盗链的,获取访问的来源
比如请求体 掌握request与表单获取有关的方法的使用
String getParameter(String name)
String[] getParameterValues(String name)
Enumeration getParameterNames()
Map<String,String[]> getParameterMap() 很好用!!!!与框架一起使用
掌握解决获取表单数据乱码的解决方案
解决post提交方式的乱码:request.setCharacterEncoding("UTF-8");
解决get提交的方式的乱码: parameter = new String(parameter.getbytes("iso8859-1"),"utf-8");

3.2:HttpServletResponse的请求行请求头请求体
了解响应行响应头响应体有哪些重要的Key和value,重点掌握几个设置响应行响应头响应体的api的使用
掌握常见的状态码有哪些和代表什么意思:200,404,500,302,
设置响应行的状态码
setStatus(int sc),如果你手动设置了的话,tomcat那边就不会在帮你设置了
设置响应头
- addHeader(String name, String value)
- addIntHeader(String name, int value) :有些头的值要求设置时是int类型的
- addDateHeader(String name, long date):比如有个头 date: "Thu, 09 Nov 2017 07:32:09 GMT"
- setHeader(String name, String value)
- setDateHeader(String name, long date)
- setIntHeader(String name, int value)
设置响应体文本:
获得字符流,通过字符流的write(String s)方法可以将字符串设置到response缓冲区中,随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览器端。
解决中文输出乱码的问题:
原因:response缓冲区的默认编码是iso8859-1,此码表中没有中文,可以通过response的setCharacterEncoding(String charset) 设置response的编码
但是我们发现还是客户端还是不能正常显示文字。
原因:我们将response缓冲区的编码设置成UTF-8,但浏览器的默认编码是本地系统的编码,因为我们都是中文系统,所以客户端浏览器的默认编码是GBK,我们可以 手动修改浏览器的编码是UTF-8。
我们还可以在代码中指定浏览器解析页面的编码方式
通过response的setContentType(String type)方法指定页面解析时的编码是UTF-8
response.setContentType("text/html;charset=UTF-8");
在实际开发中只要编写 response.setContentType("text/html;charset=UTF-8");即可解决

4.掌握HttpServletRequest与HttpServletResponse的运行流程

5.掌握转发与重定向的区别
转发的api:
request.getRequestDispatcher(转发的地址).forward(req,resp);
重定向的api:
转发是服务器行为比如servlet1没有这个资源但是知道servlet2有于是转发到servlet2进行获取。url地址栏不会发生改变,浏览器只做了一次访问请求
重定向是比如你在某个商城注册成功就给你重定向到登陆页面去,url地址栏会发生改变,浏览器至少做了两次请求。重定向之后之前的数据全部丢失(request域的作用范围所限),而转发不会。
总的来说,转发的性能优于重定向,因为少让浏览器跳来跳去了,但是使用哪个根据实际场景分析。
使用转发与重定向目标地址的写法:
因为转发只能在服务器之间进行:可以直接写目标地址比如 request.getRequestDispatcher("/login.jsp").forward(request, response);
重定向是可以在不同站点之间进行跳转的,所以必须加上当前web应用的名称比如 response.sendRedirect(request.getContextPath() + "/login.jsp");

6.其他
request是一个域对象:其作用范围为一次请求中,具有下列三个通用的api
request.setAttribute(name,value)
request.getAttribute(name)
request.removeAttribute(name)
7.ServeletContext域与Request域比较
ServletContext:
创建:服务器启动
销毁:服务器关闭
域的作用范围:整个web应用
request:
创建:访问时创建request
销毁:响应结束request销毁
域的作用范围:一次请求中
Servlet中的request与response的更多相关文章
- JavaWeb(一)Servlet中的request与response
一.HttpServletRequest概述 1.1.HttpServletRequest简介 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP ...
- servlet中的request和response
request对象 1.什么是请求 a.浏览器向服务器发送数据就是请求. 一.request功能1--获取数据 1.获取浏览器相关的信息 getRequestURL方法 -- 返回客户端发出请求完整U ...
- JSP Servlet中的Request和Response的简单研究
本文参考了几篇文章所得,参考目录如下: 1.http://www.cnblogs.com/guangshan/p/4198418.html 2.http://www.iteye.com/problem ...
- 【转载】Servlet中的request与response
一.HttpServletRequest概述 1.1.HttpServletRequest简介 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时, ...
- struts2中获取request、response,与android客户端进行交互(文件传递给客户端)
用struts2作为服务器框架,与android客户端进行交互需要得到request.response对象. struts2中获取request.response有两种方法. 第一种:利用Servle ...
- 此时servlet中的request和我们在页面jsp中的request 是同一个request.
在tomcat容器启动的时候,jsp页面的内置对象request,response,同样是依赖于tomcat容器中的servlet-api.jar包,这个jar包和我们在web项目中的jar包是一样的 ...
- springMVC中获取request和response对象的几种方式(RequestContextHolder)
springMVC中获取request和response对象的几种方式 1.最简单方式:参数 2.加入监听器,然后在代码里面获取 原文链接:https://blog.csdn.net/weixin_4 ...
- LoadRunner中取Request、Response
LoadRunner中取Request.Response LoadRunner两个“内置变量”: 1.REQUEST,用于提取完整的请求头信息. 2.RESPONSE,用于提取完整的响应头信息. 响应 ...
- Django中的Request和Response
接触Django这么久了,从来没有好好学习关于Django中的Request和Response对象.借着文件上传下载的相关工作,现在总结一下也不错. 当一个页面请求过来,Django会自动创建一个Re ...
随机推荐
- [转]web串口调试助手,浏览器控制串口设备
本文转自:https://blog.csdn.net/ldevs/article/details/39664697 打开串口时查找可用串口供选择 通过javascript调用activex控制串口收发 ...
- 利用OpenCV给图像添加中文标注
利用OpenCV给图像添加中文标注 : 参考:http://blog.sina.com.cn/s/blog_6bbd2dd101012dbh.html 和https://blog.csdn.net/ ...
- Laravel5性能优化技巧
分享一些 Laravel 开发的最佳实践,还有调优技巧,后面陆续整理中 1.配置缓存信息 使用laravel自带的artisan命令,将所有config里面的配置都缓存到一个文件里. php arti ...
- MyISAM和InnoDB区别详解
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点 ...
- Java学习笔记之——static关键字
static属于类的,不属于任何一个对象的 static关键字的应用场景: 1.静态代码块:在类下用static修饰的代码块 static{ 代码: } 只能执行一次,是在第一次使用类之前执行 类加载 ...
- Redirect all output to file
That part is written to stderr, use 2> to redirect it. For example: foo > stdout.txt 2> std ...
- 用Python实现Zabbix-API 监控
做运维的朋友应该知道,公司IDC机房经常有上架.下架.报修和报废的服务器.如果服务器数量很多的时候很容易造成监控遗漏. 大的互联网公司把监控系统和CMDB(资产管理系统|配置管理数据库系统 ...
- 判断文本是否溢出/hover显示全部
前言 在工作中我们经常会遇到,文字过多,需要用省略号,并且鼠标hover的时候 还需要 显示全部的文字的需求. 正文 文字过多需要用省略号的实现:上代码啦 .ellipsis { width: 100 ...
- 减少页面加载时间的n种方法
减少HTTP请求 1:减少调用其他页面.文件的数量 2:使用css spirit , 减少图片加载次数 压缩js,css代码 1:一般js.css文件中存在大量的空格.换行.注释,这些利于阅读,如果能 ...
- HTML5标签选择,图文混排使用dl dt dd
图文混排,可以使用 dl dt dd(dd 和 dt 是同级,不可以嵌套,没有先后顺序) 1,上面红色部分是标题,可以使用h1里面包含一个span标签,样式一样,所以两个可以一起写. 2,上面黑色部分 ...