1. 什么是JavaEE
-
JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发(不需要使用控制台)平台。最早由Sun公司定制并发布,后由Oracle负责维护。
-
-
JavaEE平台规范了在开发企业级web应用中的技术标准。
-
在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JPA、JTA、JavaMail和JAF。
结论
-
JavaEE案例要使用到浏览器、服务器(Tomcat)、数据库。
-
JavaEE案例程序不是通过main方法来运行,而是要放在服务器(Tomcat)来运行。
-
JavaEE案例要使用到Servlet和jsp两个技术,而且多了一个web.xml文件做配置。
-
JavaEE案例是将结果给打印到了浏览器上,而不是控制台上!
-
JavaEE案例可以让更多的人去访问它、使用它!
二、HTTP协议
浏览器与服务器之间发送数据的时候,是要有格式的,是双方约定好的格式。这样双方才能认识对方发送的数据!这个格式我们称之为协议(在互联网中主机与主机之间进行访问沟通都需要使用特定的协议),这里我们访问的是Tomcat,想访问Tomcat,就必须知道http协议!
什么是超文本
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。
HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查询结果等)。
HTTP协议特点
-
支持客户端/服务器模式
-
简单快速
-
灵活(传输的数据类型多样)
-
短连接 短链接是指每次请求响应完成后,连接会自动断开。从http1.1开始,我们使用的是长连接,长连接是每次请求响应完成后,连接会保持一小段的存活时间,供之后的请求使用。长连接要比短连接的效率高!
-
单向性 服务端永远是被动的等待客户端(浏览器)的请求。
-
无状态 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,用户体验度也不好。为了解决HTTP协议无状态,于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。
URL介绍
URL(Uniform Resource Location统一资源定位符),可以帮助我们唯一定位互联网上的某一个资源,相当于是互联网资源的身份证号。URL由五个元素组成:
-
传送协议
-
域名或者IP地址
-
端口号(以数字方式表示,若为HTTP的默认值“:80”可省略)
-
请求资源路径
-
传递数据(在URL中传递数据是以key=value的结构进行数据绑定,以“?”字符为起点,每个参数以“&”隔开通常以UTF8的URL编码,避开字符冲突的问题)
http://127.0.0.1:8080/demo1/HelloServlet?name=尚学堂&birthday=1992-05-09
- http:// 是协议
- 127.0.0.1是ip地址,也可以是域名
- 8080 是端口号
- /demo1/HelloServlet 是请求资源路径,也就是URI
- name=尚学堂&birthday=1992-05-09 是请求传递的参数
URI介绍
URI:(Uniform Resource Identifier),统一资源标识符,是一个用于标识某一互联网资源名称的字符串。
URI是一个特别抽象的概念,URL包含了URI。
在Java中,当获取请求URI时,常是/demo1/HelloServlet。
HTTP协议的请求
http协议就是用来规范请求与响应的数据格式的。 Request 消息分为3部分:
-
第一部分叫Request line 请求行
-
请求方式
-
uri
-
协议及版本号
-
-
第二部分叫Request header 请求头
-
key:value
-
-
第三部分是Request body 请求体
-
get请求没有请求体,将数据通过url直接传递
-
post有请求体,将数据通过请求体传递
-
GET和POST的区别(重要,面试常问)
-
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
-
GET请求只能进行url编码,而POST支持多种编码方式。
-
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
-
GET请求在URL中传送的参数是有长度限制的,而POST则没有。对参数的数据类型GET只接受ASCII字符,
-
POST既可是字符也可是字节。
-
GET相比POST来说不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
-
GET参数通过URL传递,POST放在Request body中。
HTTP协议的响应(掌握)
Response消息也由三部分组成:
-
第一部分叫Response line
-
第二部分叫Response header
-
第三部分叫Response body。
响应行
和请求消息相比,响应消息多了一个“响应状态码”,它以“清晰明确”的语言告诉客户端本次请求的处理结果。
响应头
响应头用于告知浏览器当前响应中的详细信息,浏览器通过获取响应头中的信息可以知道应该如何处理响应结果。响应头中信息的格式为key:value。
响应体
响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码,如此之类。
服务器介绍
-
硬件服务器的构成与一般的PC比较相似,但是服务器在稳定性、安全性、性能等方面都要求更高,因为CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。
-
软件服务器(英文名称Server),也称伺服器。指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。
应用服务器是Java EE规范的具体实现, 可以执行/驱动基于JavaEE平台开发的web项目。绝大部分的应用服务器都是付费产品。
Web容器(服务器)
只实现了JavaEE平台下部分技术标准,如Servlet,Jsp,JNDI,JavaMail。Web容器是开源免费的。
-
Tomcat(Apache 开源免费)
-
Jetty(Jetty 开源免费)
Tomcat容器的使用
Tomcat配置文件介绍
Tomcat 的配置文件由4个xml组成,分别是 context.xml、web.xml、server.xml、tomcat-users.xml。每个文件都有自己的功能与配置方法。
context.xml context.xml 是 Tomcat 公用的环境配置。 Tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器 。
web.xml Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。
server.xml 是 tomcat 服务器的核心配置文件,server.xml的每一个元素都对应了 tomcat中的一个组件(pojo对象),通过对xml中元素的配置,实现对 tomcat中的各个组件和端口的配置。
tomcat-users.xml 配置访问Tomcat的用户以及角色的配置文件。
Servlet引入
-
Servlet是Server Applet的简称,称为服务端小程序,是JavaEE平台下的技术标准,基于Java语言编写的服务端程序。 Web 容器或应用服务器实现了Servlet标准所以Servlet需要运行在Web容器或应用服务器中。Servlet主要功能在于能够在服务器中执行并生成数据。
-
Servlet指的是一个接口规范,具体的体现为接口及其接口的实现类。该接口的名字就是Servlet
-
Servlet是JavaWeb开发的三大组件之一(另外两个是过滤器filter与监听器listener)
编写Servlet的步骤
-
自定义一个类,继承HttpServlet
-
重写service方法(写的就是业务处理的代码)
-
在web.xml中对Servlet进行配置