一些学些WebApp的一些笔记,都是些很基础的东西,现在都是是用框架了,我就是无聊增加一些知识储备,便于以后深入去了解。
- 在Mac下安装MyEcplise2017和配置Tomcat
- http协议简单描述
Servlet的例子
1.在Mac下安装MyEcplise2017和配置Tomcat
首先需要下载个MyEcplise2017 for Mac,这里分享一个博客:http://blog.csdn.net/Rbtoooooooooo/article/details/74007333 里面有详细的讲解,棒棒哒!!奈斯
下载并且破解了MyEcplise2017,就可以去Apache Tomcat的官网下载Tomcat:https://tomcat.apache.org/download-80.cgi
选择你需要的版本进行下载,我这里下载的是:
这里下载得到一个压缩包,将其解压:
a.将apache-tomcat-7.0.85拷贝到放到/Users/计算机名/Library/目录下
文件夹重名民为ApacheTomcat, 在bin的文件夹路径下有文件分别是startup.sh(开启Tomcat)和shutdown.sh(关闭Tomcat)。
如果觉得我写的不够详细,我推荐另外一位博主的博客给大家,你们可以看看这个博主的博客:http://blog.csdn.net/feng2qing/article/details/60968548
b.将Tomcat关联到MyEclipse
MyEclipse2017的选中取消了某一些选项,将一些功能重新归纳到一起了。
打开MyEclipse -> 偏好设置 -> Servers -> Runtime Environments -> add 剩下的就选择Tomcat的版本,然后选择刚刚移动并且改名的Tomcat文件夹。
添加玩了就点ok就行了。
2. http协议简单描述
Tomcat基本操作
在谈http之前先了解一下ApacheTomcat文件夹的目录
Tomcat的文件夹目录:
bin:这里存放了Tomcat的一些脚本,Tomcat的基本执行文件;
conf: 这里是Tomcat的配置文件;
lib:存放一下jar包的文件夹;
logs:用于存放Tomcat运行的时候产生的日志文件;
temp:用于存放Tomcat运行的时候产生的临时文件,这里可以手动删除temp目录下的文件,但不能删除temp文件夹,否则Tomcat无法运行;
webapps:用于发布我们的静态或者动态web应用;
work:同样存放Tomcat的临时文件,这些文件是运行时Tomcat的必要文件,理论上可以手动删除work目录下的文件,但是建议不手动去管理,Tomcat有自己的管理机制。
了解了目录,简单是试验一下:
- 在webapps文件创建一个文件夹名叫Ava,名字随便取,但请使用英文(减少没必要的错误),也别皮了,歪果仁做的东西对中文的支持不是很友好;
- 在Ava的目录下,创建一个index.html;
- 在index.html中输入一些基本的代码
<html>
<head></head>
<body>
<p>hello world!!!</p>
</body>
</html>
- 在终端CD到ApacheTomcat/bin的路径下,输入./startup.sh 开启Tomcat
- 打开浏览器,输入http://localhost:8080/Ava/index.html,就可以顺利打开Index.html;
第一个webapp就完成了;
如果你想修改一下你的端口号或者添加一个新的地址,可以打开/ApacheTomcat/conf目录下的server.xml
修改端口号和地址
- 打开了server.xml之后,搜索HTTP,知道到我们的8080端口号,这里我们可以更改我们的端口号
- 搜索localhost,找到如图所示的内容,这里可以配置域名,这里两部分组成了地址就是http://localhost:8080
appBase:访问什么路径下的文件夹,
unpackWARs:遇到WAR的时候,是否自动解压;
autoDeploy: 当web.xml发生变化时,tomcat是否自动重新部署程序。
这里有一篇有写得很不错的博客推荐:
http://blog.csdn.net/u012906938/article/details/36718809
感兴趣的可以去看看,深入认识一下。
http 个人的一些看法
谈完了一些简单的配置,就可以谈 http的一些东西,作为移动开发者http应该不会陌生,基本的东西就略过了,这里讲一下http的构成。(以下是我学习中的一些总结,在某些措辞和说法上不一定完全正确,加入了本人一部分的理解)。
http协议的基本东西,太过于官方了,什么叫http,http什么意思,三次握手,四次挥手这些都不谈了。
我在学习中简单把http中分成两个部分:request(请求)和response(响应),http是一种应答模式,有提问就有回答。
在http1.0的时候,每一次请求都要建立一次链接,每一次链接的建立都要去握手,招手,验证,这种的http链接就很浪费资源了。
现在Tomcat8.5中是http1.1的版本,这里的http一次链接可以进行多次问答,多次数据交互,等到不再需要传递数据的时候,就断开链接,很大程度上节约了资源。
1. request (请求)
客户端对服务器发请求,一个request中包含了四个部分:
a. 请求首行:
eg:
GET http://localhost:8080/xxxxx / HTTP/1.1
GET -> 请求方式 (常见方式:get,post,delete,put)
http://localhost:8080/xxxxx -> 请求的地址
HTTP/1.1 -> 协议和协议的版本号
b. 请求头:
eg:
Host:localhost:8080
Connection:keep-alive
Accpt:text/html, application/xhtml+xml, application/xml; q=0.9,image/webp, */ * ;q=0.8
User-Agent:XXXXXXXXXXXXXX
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ja,zh-CN;q=0.8, en;q=0.2
Host:localhost:8080 ->主机名和端口号;
Connection:keep-alive->这个跟http1.1版本保持一致,保持连接,直到没有请求,才中断;
Accpt:text/html, application/xhtml+xml,application/xml;q=0.9,image/webp, * /;q=0.8 -> 这一行表示可以接收的类型,在移动端中text/json或application/json,前者是没有官方支持的写法,后者是标准的json格式类型;q=x.x是优先级,数字越大,优先级越高; / *是所有格式都支持,这里CSDN中两个星号和斜杠是个格式符号,故这里用空格隔开了;
User-Agent:XXXXXXXXXXXXXX -> 这里是客户端的一些信息,比如系统版本呀,客户端信息一类等等,这里不列举了;
Accept-Encoding:gzip,deflate,sdch -> 客户端可以接收的解压的压缩格式;
Accept-Language:ja,zh-CN;q=0.8, en;q=0.2->客户端可以接收的文字,q表示优先级.
c. 请求空行:
这里是无法操作的,http本身自带的格式,用于分隔请求头和请求正文的。
d. 请求正文:
这里是字节流或者字符流
2.response
response可以简单理解成为一个容器,服务器端接收到请求,就开始填充response并发给客户端。
response分为:
a. 响应首行
http/1.1 200
http协议的版本, 响应码 200,500,404等等
b. 响应头
Server:xxxxx
content-Type:Text
content-Length:xxxx
Connection:keep-alive
Date:xxxxxx
Access-Control:xxxxxx
.........
响应头基本和request的请求头差不多,conection-length可以两端验证,防止数据长度被传改
c. 响应空行
这里是无法操作的,http本身自带的格式,用于分隔响应头和响应正文的。
d. 响应正文
这里是字节流或者字符流