servlet使用

web应用

web应用:
web项目(使用html、css、js、dom以及其他的变成语言)开发的一个程序,这个程序需要交给对应的服务器运行,然后用户通过客户端(浏览器、移动设备上的app程序)可以访问到的。

web项目中的资源:
1、静态web资源:html、css、js、dom 开发的资源
2、动态web资源:PHP、ASP、JSP等技术可以开发一些动态的web资源,最后依然以网页的形式展示给客户端。(动态资源静态化)

web项目的目录结构:

项目名称 day07
|----------- 外界可以直接访问的资源
|----------- WEB-INF保存在这个目录下的内容外界不能直接访问
|----------classes  保存的项中书写的所有的class文件
|----------lib      项目中依赖的第三方jar包
|----------web.xml  是当前这个项目的核心配置文件

http协议介绍

网络模型:
OSI 开发互联参考模型,把网络分成七层。

传输层:UDP(面向无连接的协议)、TCP(面向有连接的协议)

http协议:它不属于传输层的协议,它是应用层,但是它的底层使用的是TCP协议。底层使用的Socket技术。

http协议:超文本传输协议。这个协议规定了客户端和服务器应该以什么方式进行通信

客户端给服务器发送数据(request):在http协议称为客户端向服务器发送了一次请求。

服务器给客户端发送数据(response):在http协议称为服务器根据客户端的请求作出的的响应。

http协议是基于请求和响应模型展开的一个应用层的通信协议,http协议它默认的端口是80。因此在开发中很多的服务器会把自己的端口修改成80,这样可以保证客户端在访问服务器的省略端口的书写。

http协议的请求格式:

http协议中规定:请求的数据必须按照如下的格式(三部分)发送:

1、请求行数据
2、请求头数据
3、请求体数据

请求行中的信息:

请求方式     请求的服务器的资源         请求时使用的协议
GET         /ccc/c.html                   HTTP/1.1

请求头数据: 请求头是由key和value组成

请求体数据:请求正文
只有客户端的提交数据的方式为post的时候,请求体中才有数据。
请求体中的数据是客户端给服务器发送的客户输入的一些数据。
如果是get方式提交的数据,数据会在请求行中。

http协议响应消息介绍:

http协议规定服务器给客户端响应数据的格式(三部分):

1、响应行
2、响应头
3、响应体

响应行:

响应用的协议       响应的状态码      状态的信息描述
HTTP/1.1            200               OK
响应的状态码:状态码是给浏览器使用的,浏览器识别到不同的状态码,会直接作出不同的处理。

1xx  表示客户端请求服务器的数据不完整,还需要客户端继续发送数据
2xx  表示请求一切正常,服务器给客户端响应的数据也正常 200  OK
3xx  客户端请求服务器,服务器告诉客户端继续做其他的事情
302  请求重定向 A找B借钱,B告诉A去找C借   
     请求转发  A找B借钱,B把借钱的信息转C,最后是C给A的钱

304  请求的资源没有改变,请浏览器从自己的缓存获取数据
4xx  客户端请求服务器,服务器中没有这个资源  404
5xx  客户端的请求让服务器异常啦。

响应头:也是由key和value组成

响应体:

服务器给客户端发送的需要在浏览器中显示出来的数据
在后期学习JavaWEB,我们通过response对象给客户端响应数据,响应的所有数据需要通过IO流发送给客户端
getOutputStream
getWriter

http协议经过2个版本:

http1.0:一次连接,对应一次请求和响应
http1.1:一次连接,对应多次请求和响应

URL-Pattern的三种配置方式

我们书写的Servlet程序最后需要在项目的web.xml文件中配置和映射,在servlet-mapping标签中需要书写映射的路径,而这个路径使用url-pattern标签完成:
url-pattern标签有三种书写方式:

1、全路径书写:书写的时候必须以/ 开始
<url-pattern>/abc/bb/cc</url-pattern>
浏览器访问的时候书写的路径:
http://127.0.0.1:8080/day07/abc/bb/cc

2、路径通配符书写:书写的时候必须以/ 开始
<url-pattern>/bbb/*</url-pattern>
浏览器访问的时候书写的路径:
http://127.0.0.1:8080/day07/bbb/aaaaa/ccccc

注意:<url-pattern>/*</url-pattern>  浏览器的任何访问都被当前url-pattern匹配上。

3、扩展名书写:书写的时候坚决不能以/ 开始
<url-pattern>*.abc</url-pattern>
浏览器访问的时候书写的路径:
http://127.0.0.1:8080/day07/sjdkfljsdlkjfld.abc

上述的三种书写格式的优先级:
全路径  >  路径通配符   >  扩展名

web开发中路径书写分析:

如果在写项目的时候,首先自己先想想这个路径是给客户端的浏览器使用的,还是这个路径是给服务器中运行的项目直接使用的。
给客户端使用的路径一般都书写的全路径(绝对路径),
给服务器使用的路径一般书写的时候会用相对路径或绝对路径。

web项目中的绝对路径,一般是指的包含着项目名的路径:所有的web中的绝对路径都以 / 开始
/day07/abc/1.html 绝对路径 它的真正全路径是 http:/127.0.0.1:8080/day07/abc/1.html
abc/1.html 相对路径
书写的路径中没有/ 全部都是相对路径,是相对当前这个文件所在的目录而言:
如果路径是给客户端使用,不管在任何的目录下都以:
/项目名开始,永远都不错

如果路径是给服务器中的某个项目使用:
这时书写路径的时候,可以书写相对路径,但是要自己判断当前程序是相对那个目录而言
如果要书写绝对路径,也需要以 / 开始 ,但是决绝不能加项目名

posted @ 2015-08-28 19:08  beyondbycyx  阅读(155)  评论(0编辑  收藏  举报