前端 | 服务器端 | 数据库 |
html css js | web层: jsp+servlet struts2 springMVC service层: sping dao层: jdbc DBUtils hibernate mybatis |
前端----(请求)---->服务器端 -----(jdbc+sql)---->数据库
服务器端----(响应)----->前端
客户端 <----------->服务器端
客户端通过http协议访问web应用服务器(服务器端)
web应用服务器:Tomcat
一、Http协议
1、什么是http协议?
HTTP:超文本传输协议(HyperText Transfer Protocal)是互联网应用最为广泛的一种网络协议。
Http协议组成:http请求 和 http响应 (给服务器端看的)
2、http请求信息
a、 请求行
请求方式:POST、GET
请求的资源:/DemoEE/form.html
协议版本:HTTP/1.1
HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。
HTTP/1.1,发送请求,创建一次连接,获得多个web资源,保持连接。
b、请求头
请求头是客户端发送给服务器端的一些信息,使用键值对表示key:value
常见请求头 | 描述 (红色掌握,其他了解) |
Referer | 浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这个头。常用于:防盗链 |
If-Modified-Since | 浏览器通知服务器,本地缓存的最后变更时间。与另一个响应头组合控制浏览器页面的缓存。 |
Cookie | 与会话有关技术,用于存放浏览器缓存的cookie信息。 |
User-Agent | 浏览器通知服务器,客户端浏览器与操作系统相关信息 |
Connection | 保持连接状态。Keep-Alive 连接中,close 已关闭 |
Host | 请求的服务器主机名 |
Content-Length | 请求体的长度 |
Content-Type | 如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码 |
Accept: | 浏览器可支持的MIME类型。文件类型的一种描述方式。 MIME格式:大类型/小类型[;参数] 例如: text/html ,html文件 text/css,css文件 text/javascript,js文件 image/*,所有图片文件 |
Accept-Encoding | 浏览器通知服务器,浏览器支持的数据压缩格式。如:GZIP压缩 |
Accept-Language | 浏览器通知服务器,浏览器支持的语言。各国语言(国际化i18n) |
c、请求体
当请求方式是post的时,请求体会有请求的参数,格式如下: username=zhangsan&password=123
如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url地址后面
3、Http响应信息
a、响应行 --- HTTP/1.1 200 OK
Http协议版本
状态码:
常用的状态码如下:
200 :请求成功。
302 :请求重定向。(跳转:访问a网站不知不觉跳转到b网站)
304 :请求资源没有改变,访问本地缓存。
404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
500 :服务器内部错误。通常程序抛异常。
状态信息:状态信息是根据状态码变化而变化的
b、响应头
响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端
常见请求头 | 描述 |
Location | 指定响应的路径,需要与状态码302配合使用,完成跳转。 |
Content-Type | 响应正文的类型(MIME类型) 取值:text/html;charset=UTF-8 |
Content-Disposition | 通过浏览器以下载方式解析正文 取值:attachment;filename=xx.zip |
Set-Cookie | 与会话相关技术。服务器向浏览器写入cookie |
Content-Encoding | 服务器使用的压缩格式 取值:gzip |
Content-length | 响应正文的长度 |
Refresh | 定时刷新,格式:秒数;url=路径。url可省略,默认值为当前页。 取值:3;url= //三秒刷新页面到 |
Server | 指的是服务器名称,默认值:Apache-Coyote/1.1。可以通过conf/server.xml配置进行修改。<Connector port="8080" ... server="itcast"/> |
Last-Modified | 服务器通知浏览器,文件的最后修改时间。与If-Modified-Since一起使用。 |
c、响应体
响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染 显示页面内容
总结:
http协议是什么?
http协议包括什么?
http协议里面包括的几个部分分别由哪些内容?
二、WEB开发中常用的概念
(1)B/S系统 和 C/S系统
Brower/Server:浏览器 服务器 系统
Client/Server: 客户端 服务器 系统
(2)web应用服务器、
供向外部发布web资源的服务器软件
(3)web资源
存在于web应用服务器可供外界访问的资源就是web资源
例如:存在于web应用服务器内部的Html、Css、js、图片、视频等
1)静态资源:指web页面中供人们浏览的数据始终是不变。比如:HTML、CSS、 JS、图片、多媒体。
2)动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问 web页面看到的内容各不相同。比如:JSP/Servlet、ASP、PHP
javaWEB领域:动态资源认为通过java代码去动态生成html
(4)请求和响应
(5)请求的URL地址
web开发常用的web应用服务器:
weblogic:oracle公司的大型收费web服务器 支持全部javaEE规范
websphere:IBM公司的大型收费web服务器 支持全部的javaEE规范
Tomcat:Apache开源组织下的 开源免费的中小型的web应用服务器 支持--- javaEE 中的 servlet 和 jsp规范
三、Tomcat
1、安装下载Tomcat服务器
2、启动Tomcat,bin--->startup.bat (必须配置JAVA_HOME环境变量,否则闪退,查看日志logs)
为什么需要配置? Tomcat是由java编写的。
3、配置Tomcat的服务端口 (conf--->server.xml) 默认:localhost:8080
怎样查看端口是否被占用?
cmd ---> netstat -aov
80端口:
4、web应用的目录结构
web
| -----html 、jsp、css、js文件等
|
|------WEB-INF目录
|-----classes目录------(java类)
|-----lib目录-------(java类运行所需的jar包)
|-----web.xml文件----(web应用的配置文件)
注意:WEB-INF目录是受保护的,外界不能直接访问
5、使用Eclipse绑定Tomcat并发布工程
Java EE --->Dynamic Web Project
发布web工程:
copy工程下面的WebContent到Tomcat下面。工程名为文件夹名。
6、Servlet 快速入门
src 写个类 MyFirstServlet ,接口 implements Servlet
在public void service 下写一句代码:
//专门向客户端提供响应的方法
HttpServletResponse response = (HttpServletResponse) arg1;
response.getWriter().write("This is my first servlet!!!");
web.xml配置文件里面添加:
<servlet>
<servlet-name>MyFirstServlet</servlet-name>
<servlet-class>com.scalpel.servlet.MyFirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyFirstServlet</servlet-name>
<!--http协议访问时资源的虚拟路径,以/开始-->
<url-pattern>/a</url-pattern>
</servlet-mapping>