- C/S:服务端仅仅是安装一个数据库和数据存储;B/S:WEB應用
-
HTML标记语言的出现标志Web开发时代的到来
-
富客户端:
开发技术:Extjs,EasyUI,bootstrp,Flash等.(JavaScript/CSS/ActionScript) - Servlet和JSP再加上JavaBean,
- 服务器分类:
软件服务器: 软件,提供了B/S应用运行的环境.
硬件服务器: 电脑,该电脑安装了软件服务器. -
JavaWeb的软件服务器的分类:
1):http服务器,用于运行静态的网页.
2):Web服务器,实现了JavaEE部分规范(比如Servlet/JSP),没有实现JavaEE中的EJB规范.
Tomcat,Jetty等.
3):应用服务器,实现了JavaEE全部的规范,支持EJB的.
TomEE,GlassFish,JBoss,Weblogic,WebSphere.
---------------------------------------------------------
Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP 的生命周期,以及管理它们的共享数据。
Servlet容器也称为JavaWeb容器,或者Servlet/JSP容器 ---> Tomcat。 -
Tomcat的默认端口是8080:
-
1.安装目录不能使中文的,并且安装路径不允许出现空格.
-
2.启动Tomcat服务器:在bin目錄右鍵命令行窗口打開或startup.batTomcat根/bin/startup.bat.
-
3.访问 打开浏览器:
http://服务器所在主机的IP:服务器的端口号/资源名字 //http://localhost:8080/index.jsp -
在XML配置文件中使用了中文,文件内容的编码和文件本身编码要相同,都为UTF-8.
-
Tomcat根/conf/server.xml文件中,默认第71行. 端口改成80;配置文件改变之后,需要重新启动Tomcat.
WEB应用程序指供浏览器访问的程序,通常也简称为web应用。
一个web应用由多个静态web资源和动态web资源组成,如:
静态资源包括:html、css、js、图片文件等
动态资源包括:jsp文件、java程序、jar文件、
配置文件
……
组成 web 应用程序的这些文件要部署在相应的目录层次中,根目录代表整个 web 应用程序的“根”。
--------------------------------------------
从JavaEE6开始(Tomcat7,Servlet3.0规范),JavaWeb应用下可以不需要web.xml文件了.(可以使用注解).
但是建议保留该文件:搭建基于Eclipse的纯的JavaWeb项目:
步骤:
1,搭建一个Java项目:
2,在该项目下新建一个文件夹,表示根,名字为:webapp(名字随意)
6,去Tomcat根/webapps/ROOT/WEB-INF目录下拷贝一个web.xml文件到WEB-INF下(只保留头和根元素)
7,改变该项目的输出目录:也就是改变classpath的路径,从默认的bin目录该变为webapp/WEB-INF/classes中以后要把项目给别人,只给webapp目录.
-
给Eclipse安装Tomcat的插件:
1.Eclipse根/dropins目录
2.把插件的tomcatPluginV331.zip包拷贝到该目录下
3.重新启动Eclipse.看效果,若看到3只可爱的小猫咪,表示插件安装成功.
4.把插件跟Tomcat服务器做关联.把项目部署在Tomcat服务器中.
方式1:直接把项目的web根路径,拷贝到Tomcat根/webapps目录中.
该方式,可行,而且是MyEclipse工具的部署方式.
缺点:
1:不支持热部署.(代码变动之后,需要重新部署,重新部署的成本很大).
2:把所有的项目都部署在该路径,启动越来越慢,若其中有一个项目有问题,Tomcat是启动不了.
-----------------------------------------------------------------
方式2:告诉Tomcat服务器,从指定的路径去部署项目.
1):找到Tomcat根/conf/server.xml文件.
2):在<Host>元素之间,编写<Context/>元素,具体代码如下:
<Context docBase="web项目的根的路径" path="上下文路径"/>
3):访问当前项目的路径:http://ip:port/上下文路径/资源名称.
注意:多个<Context>元素的path绝对不能相同.
-----------------------------------------------------------------
方式3:从Tomcat5.5开始推荐使用另外的一种方式来部署项目:(其本质和方式二相同)
步骤:
1).找到Tomcat根/conf/Catalina/localhost新建一个xml文件:比如abc.xml
内容是:<Context docBase="D:\JavaPros\pureWeb\webapp"/>
2).此时该文件的名字,就相当于是第一种方式的path值(上下文名字)
访问: http://localhost/abc/index.html -
修改Windows系统中的C:\WINDOWS\system32\drivers\etc\hosts.
WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循HTTP协议。数据的过程以及数据本身的格式。
1.约束了浏览器以何种格式想服务端发送数据:
2.约束了服务器应该以何种格式来接受客户端发送过来的数据:
3.约束了服务器应该以何种格式来反馈数据给浏览器;
4.约束了浏览器应该以何种格式来接收服务器反馈的数据.
HTTP1.1规范:能在一次连接之间,多次请求,多次响应,响应完之后再关闭连接.请求消息
1、包含三大部分
1.1请求行:位于请求消息的第一行
格式:请求方式 资源路径 HTTP版本号
GET /newshoppingcart/qryNum.jhtml?callback=jQuery183024469431406034503_1542116053480&_=1542116060196 HTTP/1.1
注:GET请求方式,数据不安全且有URL长度限制(1K)
1.1.2Post请求方式:
a、若使用Post请求方式传递数据,可以借助form表单的method="post"
b、数据安全,且长度没有限制1.2若干请求头:从第二行开始到第一个空行。作用:向服务器传递客户端的一些基本信息
<1>、Accept:浏览器可接受的MIME类型(内容类型)(Tomcat安装目录/conf/web.xml中查找)
<2>、Accept-Charset:告知服务器,客户端支持哪种字符集
<3>、Accept-Encoding:浏览器能够进行解码的数据编码方式
<4>、Accept-Language:浏览器支持的语言。
<5>、Referer:当前页面由哪个页面访问过来的。
<6>、Content-Type:通知服务器,请求正文的MIME类型。
取值:application/x-www-form-urlencoded默认值
对应的是form表单的enctype属性
<7>、Content-Length:请求正文的长度
<8>、If-Modified-Since:通知服务器,缓存的文件的最后修改时间。
<9>、User-Agent:通知服务器,浏览器类型.
<10>、Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1;HTTP 1.1默认进行持久连接
<11>、Cookie:这是最重要的请求头信息之一(会话有关)1.3请求实体:从第一个空行开始,后面的都是正文。(可以没有)只有POST请求才有请求实体.
- 响应消息
1、包含三大部分
1.1响应行:位于响应消息的第一行
格式: HTTP版本号 状态码 HTTP/1.1 200 OK
1.2若干响应头:从第二行开始到第一个空行
<1>、Location:制定转发的地址。需与302/307响应码一同使用
<2>、Server:告知客户端服务器使用的容器类型
<3>、Content-Encoding:告知客户端服务器发送的数据所采用的压缩格式
<4>、Content-Length:告知客户端正文的长度
<5>、Content-Type:告知客户端正文的MIME类型
Conent-Type:text/html;charset=UTF-8
<6>、Refresh:定期刷新。还可以刷新到其他资源
Refresh:3;URL=otherurl
3秒后刷新到otherurl这个页面
<7>、Content-Disposition:指示客户端以下载的方式保存文件。
Content-Disposition:attachment;filename=2.jpg
<8>、Expires:网页的有效时间。单位是毫秒(等于-1时表示页面立即过期)
Cache-Control:no-cache
Pragma:no-cache
控制客户端不要缓存
<9>、Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie(会话有关)
1.3响应正文:从第一个空行开始,后面的都是正文。
MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型
text/html img/* -
GET和POST请求的区别:
1):GET的请求数据在地址栏,而POST不会.
POST比GET更安全. --->只要涉及到数据提交都使用post
表示查询数据时候使用get
2):POST请求的参数存放于请求实体中,而GET存放于请求行中.
3):GET方式请求的数据不能超过2K,而POST没有上限.
比如文件上传时,必须使用POST方式.
4):GET可以缓存,而POST没有缓存.GET方式:
1:直接在浏览器地址栏敲回车.
2:表单中,method=get.
3:超链接.
只有表单中使用method=post,才是POST方式.