JAVA-Web05
1)客户端->服务端(请求request)有三部份
2)服务端->客户端(响应response)有三部份
1)请求(客户端->服务端[request])
/books/java.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)
*/*(客户端能接收的资源类型)
en-us(客户端接收的语言类型)
Keep-Alive(维护客户端和服务端的连接关系)
localhost:8080(连接的目标主机和端口号)
http://localhost/links.asp(从来于哪里)
Mozilla/4.0(客户端版本号的名字)
deflate(客户端能接收的压缩数据的类型)
11 Jul 2000 18:23:51 GMT(缓存时间)
Cookie(客户端暂存服务端的信息)
18:23:51 GMT(客户端请求服务端的时间)
2)响应(服务端->客户端[response])
200(状态码) OK(描述信息)
302(客户端请求服务端,但服务端没有对应的资源,服务端要客户端再次请求找其它的服务端,即客户端二次请求,重定向)
307(客户端请求服务端,但服务端没有对应的资源,服务端自行再次请求找其它的服务端,即客户端一次请求,转发)
304(客户端请求服务端,此时客户端缓存中有,无需再从服务端下载新的内容,服务端叫客户端自行找缓存,优化)
500(客户端请求的资源,服务端存在,但在执行时出错)
http://www.baidu.com(服务端需要客户端访问的页面路径)
tomcat(服务端的Web服务端名)
gzip(服务端能够发送压缩编码类型)
80(服务端发送的压缩数据的长度)
zh-cn(服务端发送的语言类型)
charset=GB2312(服务端发送的类型及采用的编码方式)
Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间)
1;url=http://www.it315.org(服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径)
attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件)
chunked(分块传递数据到客户端)
path=/search(服务端发送到客户端的暂存数据)
-1//3种(服务端禁止客户端缓存页面数据)
no-cache(服务端禁止客户端缓存页面数据)
no-cache(服务端禁止客户端缓存页面数据)
close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系)
18:23:51 GMT(服务端响应客户端的时间)
想让浏览器有何种行为,服务端只能通过响应头的方式来设置
想让服务器知道何种行为,浏览器只能通过请求头的方式来设置
GET方式传递有大小限制
GET方式传递信息不安全
请求参数无论多少,都不会根着URL后传递到服务端,而是以参数形式在请求体中传递到服务端
POST方式传递无大小限制
POST方式传递信息相对安全
1)Servlet是SUN公司基于Java技术的一个开发动态资源支持的规范,以接口的形式出现,最终的实现类与服务器有关
2)Servlet是一种特殊的Java类,运行时服务端/容器中,接收每一个客户端的请求并响应,尊循HTTP协议
3)Servlet手工开发过程,参见<<手工创建Servlet的全过程.txt>>
Demo11[servlet名字,可以任意]
cn.itcast.web.servlet.Demo11[servlet全路径]
Demo11[servlet名字,必须和上述一致]
/qq[以/开头,提供外界用户访问的路径]
如果需要输出中文,需要在Servlet中如下设置:
HttpServlet已经覆写service()方法,程序员无需再次覆写,只需覆写doXxxx()方法
1)当浏览器第一次访问Servlet时,服务器会根据浏览器访问的路径,例如/Demo2,在web.xml文件中找到该Servlet的全路径,
进行反射。
4)如果浏览器再次访问相同的Servlet,直实现从服务端维护的Servlet实例集合中取得对应的实现,为浏览器响应
6)服务器在决定销毁Servlet实例之前,调用destory()方法,每个Servlet实例只会调用一次,在重新部署情况下
1)浏览器访问的url-pattern只是一个符合格式的任意字符串,以/开头
2)一个Servlet的url-pattern可以是1个或多个,有二种形式;
b)/xx/*
注意:/*不能一起直接使用
4)程序员编写的Servlet其实是由tomcat容器中的Servlet引擎来处理的,引擎会产生对应的HttpServletRequest和
HttpServletResponse对应传入到Servlet的doXxxx()方法中
Demo21
cn.itcast.web.servlet.Demo21
1
数字小的先加载,数据大的后加载,最小为0,如果为负数和没有设置一样,需要在浏览器第一次访问时创建
6)url-pattern为/的servlet是一个缺省的servlet,用于处理当前web应用下,访问路径错误的请求
任何web服务端都有一个缺省的servlet来处理
c)实例变量进行修改操作
通过加锁的方式,对敏感数据块进行代码同步(正道)
如果你实现SingleThreadModel来解决线程安全有二个不足之处:
1)想让当前Servlet读取一些在web.xml文件配置的初始化参数,可以使用ServletConfig对象,它是Servlet运行时的配置对象
2)init(ServletConfig)方法由Web容器调用,调用时,会传入与容器相关的ServletConfig接口的实现
关键代码:(前提:web.xml中有设置
JAVA-Web05的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- Java第三阶段学习(十三、会话技术、Cookie技术与Session技术)
一.会话技术 1. 存储客户端状态 会话技术是帮助服务器记住客户端状态(区分客户端)的. 2. 会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,称为一次会话.会话技术就是记录这 ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
随机推荐
- 微软企业库的 注入和依赖&nbs…
Working with ObjectBuilder This topic has not yet been rated - Rate this topic Retired Content This ...
- 下载win7/win8/win10镜像
关于给电脑换系统,很多人会花钱去电脑店里换,或者是下载Ghost系统.但这些系统都不是微软原版的,制作者已经集成了很多常用软件或垃圾软件进去.我在这给大家介绍的是如何下载正版的Windows系统.这个 ...
- POJ 3255 Roadblocks (次短路)
题意:给定一个图,求一条1-n的次短路. 析:次短路就是最短路再长一点呗,我们可以和求最短路一样,再多维护一个数组,来记录次短路. 代码如下: #pragma comment(linker, &quo ...
- 滴滴Booster移动APP质量优化框架 学习之旅
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 一.Booster简介 Booster是滴滴最近开源一个的移动应 ...
- JS动态append之后点击事件无效
今天做项目用了append向HTML里面添加结构代码,代码添加之后,单击事件就没反应了.搞得我一脸懵逼,调了代码很久实在不行,我百度了一下才发现,append添加的节点单击事件是不会生效的. 原因: ...
- 关于HTML5画布canvas的功能
一.画布的使用 1.首先创建一个画布(canvas) <canvas id=”myCanvas” width=”200” height=”100” style=”border:1px solid ...
- centOS7.5上部署server jre1.8.0_192 tomcat-8.5.35 mysql-8.0.13
- python进阶01 面向对象、类、实例、属性封装、实例方法
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...
- QDU第一届程序设计大赛——E到I题解法(非官方题解)
题目链接https://qduoj.com/contest/28/problems,密码:qdu1230 E题: 思路:先进行排序,然后去暴力模拟就可以,但可能WA了几次,导致此题没解出来,有点可惜 ...
- Python列表与元组
一.列表 1.列表的介绍: 列表lst = [ ] 是python的基本数据类型之一,其他编程语言也有类似的数据类型,比如JS中的数组,java中的数组等等,它是以[]括起来,每个元素用逗号隔开 ...