5.Servlet 对象(request-response)
/*ServletResponse*/
/*responese常见应用*/
1.向客户端输出中文数据 (分别以OutputStream 和 PrintWriter输出)
2.文件下载和中文文件的下载 ( /*ResponseDemo3*/)
3.完成类似验证码的功能 (输出一张随机图片)
4.用refresh控制浏览器自动刷新
5.控制浏览器缓存(保存一定时间)
6.实现重定向 (一般能不采用 就 不采用)(因为重定向是转到其他地址,所以重定向的地址需要比 转发 的地址 /*多上web应用名称*/)
Response的小细节:
1.getOutputStream 和 getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOutputStream、PrintWriter对象
2.getOutputStream 和 getWriter 这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另外一个方法
(转到另外的页面上,如果是通过重定向转的,就可以同时使用(因为重定向 向服务器发送了两次请求,有两个response,两次调用的是不同的))
3.Servlet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法。
如果没有,Servlet引擎将调用close方法关闭输出流对象。
(即程序里面可以不用去 close )
4./*Request*/
request的常用方法:
(获得客户机信息) (URL(网络上的web应用)和URI(所有web应用)的关系 : 狗和动物)
getRequestURL 返回客户端发出请求时的完整URL
getRequestURI 返回请求行中的资源名部分
getQueryString 返回请求行中的参数部分
getRemoteAddr 返回发出请求的客户机的IP地址
getRemoteHost 返回发出请求的客户机的完整主机名
getRemotePort 返回客户机所使用的网络端口号
getLocalAddr 返回web服务器的IP地址
getLocalName 返回web服务器的主机名
getMethod 得到客户机请求方式
/*request获取请求头和请求数据 RequestDemo2 test.html*/
/*通过表单搜集用户数据*/ /*主要是HTML方面的 暂时先不写了*/
/*request乱码问题*/
通过表单提交中文字符产生的乱码问题 : 1. get(手工) 2.post
通过超链接提交中文字符 : 想要避免乱码问题 (手工)
/*MVC设计*/ //MVC (m model (javabaen) ; v view (jsp) ; c controller (servlet) ) 处理请求的是处理请求的 封装数据的是封装数据的 显示数据的是显示数据的
servlet收到请求 返回数据,数据封装到javabean中,javabean中的数据存到request域中,通过转发(forword)技术将转到jsp页面,jsp页面从request域中取出数据显示
请求转发的细节: ( /*只有在客户端没有输出时,才可以调用forword方法*/)
1.forword方法用于将请求转发到 RequestDispatcher 对象封装的资源
2.如果在forword方法之前,在servlet程序写入的部分内容已经被真正传递到了客户端 (流的关闭以及多个forword跳转都可能导致),forword方法将抛出异常
3.如果在调用forword方法之前,向servlet引擎的缓冲区(response)中写入了内容,只要写入到缓冲区的内容还没有真正输出到客户端,
forword方法就可以被正常执行,原来写入到输入缓冲区的内容将被清空
例:String value = "aaaa";
response.getWriter().write(value); //此时 数据还没有写入到客户机中,如果这个时候forword的话,response中的内容将被清空,转发正常执行
request.getRequestDispatcher("/index.jsp").forward(request, response);
request实现页面包含 (用include实现页面包含(包含一些公共的页面) ,一般不使用,因为这是动态包含(一般在jsp中做静态包含更好 ))
//用include实现页面包含(包含一些公共的页面) (一般在jsp中做包含 )
public class RequestDemo6 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.getRequestDispatcher("/public/Head.jsp").include(request, response);
String value = "body";
response.getWriter().write(value);
request.getRequestDispatcher("/public/Foot.jsp").include(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
web工程中各类地址的写法( /*看地址是给谁用的*/)
利用referer防盗链
//利用referer防盗链
public class RequestDemo7 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String referer = request.getHeader("referer"); if(referer == null || !referer.startsWith("localhost")) { //如果页面时直接访问,没有经过跳转||或者不是以localhost开头
response.sendRedirect("/day06/index.jsp");
return;
} String data = "日记";
response.getWriter().write(data); } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
5.Servlet 对象(request-response)的更多相关文章
- JavaWeb——JSP内置对象request,response,重定向与转发 学习总结
什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...
- Server,Servlet,ServletConfig,ServletContext,Session,Request,Response
Server流程 解析URL->找到应用->找到Servlet->实例化Servlet->调用init->调用service->返回响应->调用destroy ...
- request response
request 和 response 这两个对象是出现在service方法中.service方法是用来接收请求处理请求,完成响应的. 接受请求指的就是request对象 完成响应指的就 ...
- JSP中九大内置对象+request对象的属性介绍和如何应用
JSP的九大内置对象requestresponseApplicationconfigoutpagepageContextsessionException默认没有,需要进行在Page指令下进行isErr ...
- JavaWeb -- 服务器传递给Servlet的对象 -- ServletConfig, ServletContext,Request, Response
1. ServletConfig 有一些东西不合适在程序中写死,应该写在web.xml中,比如 文字怎么显示, 访问数据库名 和 密码, servlet要读取的配置文件 等等.. l在Servle ...
- request 对象和 response 对象
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...
- 重温Servlet学习笔记--response对象
在用户浏览网页时,服务器对于客户端浏览器做出的响应被封装成一个HttpServletResponse对象,要对浏览器操作只需要操作这个response对象即可.response的功能分类及介绍: 响应 ...
- javaWeb中 servlet 、request 、response
1.Servlet (1)Servlet是JavaEE的一个动态web资源开发技 术,就是在服务器上运行的小程序,这个小程序是由服务器调用的,服务器为了能调用这个小程序,就要求这样的程序必须实现一个S ...
- (day20)javaEE三大组件之一Servlet (简介(二)servletconfig,servletContext,session,cookie,request,response,out)
javaEE是服务器编程,javaEE提供了服务器的接口让具体的服务器去创建实现的对象 JavaEE是sun公司为了解决企业级开发定义的一套技术,只提供了规范,具体的实现是由服务器完成的 servle ...
- servlet中request和response
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
随机推荐
- PHPCMS get SQL 返回单条的办法
{pc:get sql="SELECT * FROM v9_member_detail where userid=1" num="1" return=" ...
- java-对象的区别
1.JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员 ...
- 深入理解java虚拟机---读书笔记
第一章 走近java 1. java 技术体系: java 程序设计语言 各种硬件平台上的java虚拟机 class 文件格式 java API 类库 来自商业机构或者开源机构的第三方java类库 j ...
- mysql/mariadb数据库在插入表数据时,ID竟然成奇数增加了?看完下面内容就知道怎么处理了。
今天突然被问到一个问题,mysql数据库插入表数据时,设置了ID自增,但是插入数据后,ID却呈奇数增加,不是123456类型,而是13579形式,突然有点懵,研究了一会,发现是auto_increme ...
- Tomcat 部署web 项目
转载,原文链接: https://www.cnblogs.com/ysocean/p/6893446.html 侵删 回到顶部 3.Tomcat 的目录结构 回到顶部 4.部署项目的第一种方法(项目直 ...
- 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关
[Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处http://blog.csdn.net/lg125915677 ...
- Qt中mouseMoveEvent无效
最近用Qt软件界面,需要用到mouseMoveEvent,研究了下,发现些问题,分享一下. 在Qt中要捕捉鼠标移动事件需要重写MouseMoveEvent,但是MouseMoveEvent为了不太耗资 ...
- Java代码是怎么运行的
前言.... 作为一名 Java 程序员,你应该知道,Java 代码有很多种不同的运行方式.比如说可以在开发工具中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至可以在网页中运行.当然 ...
- bat命令教程
转自:https://www.jb51.net/article/151923.htm 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合 ...
- Django 实现登录后跳转
说明 实现网页登录后跳转应该分为两类:即登录成功后跳转和登录失败再次登录成功后跳转.参考网上内容,基本都只实现了第一类.而没有实现第二类. 实现 为了能让登录失败后再次登录成功后还能实现跳转.我这里采 ...