Java Web开发基础
Java是一门面向对象编程语言,入门简单,广泛应用于企业级程序开发。本博客专注于Java web后端开发,此为开篇。
平台规范
1. Java平台简介
* Java 是一门强类型语言
* JavaSE 包含java.lang和java.io中的类,它是构建Java应用的基础
* JVM 又称Java虚拟机,是Java源码编译后的运行环境,JVM还负责管理内存,从而简化了Java应用程序的开发
* JDK Java开发工具包 包含了编译器、文档生成器、调试相关的类等
* JRE Java运行时环境,包含了JVM但是不包括JDK中的开发工具,不过JDK中包含了一个JRE
2. J2EE规范(现称JavaEE规范)
Sun公司于1999/12/12发布了J2EE,版本号为1.2。最初版本规范包括:
* Servlets 2.2
* JDBC Extension API 2.0
* Java Naming and Directory Interface(JNDI) 1.0
* JavaServer Pages(JSP) 1.2
* Enterprise JavaBeans(EJB) 1.1
* Java Message Service(JMS) 1.0
* Java Transaction API(JTA) 1.0
* JavaMail API 1.1
* JavaBeans Activation Framework(JAF) 1.0
3. 最新平台特性
1. JavaSE7
* 增加了对动态语言的和64位压缩指针的支持,改善了64位JVM的性能
* 泛型实例化的简写
Map <String, Object> map = new HashMap<String, Object>(); //JavaSE7之前的写法
Map <String, Object> map = new HashMap<>(); //JavaEE7新增特性
* 新增try-with-resource语法
2.JavaSE8
* lambda表达式
* 新的时间API
3.JavaEE7
* Java API for WebSockets1.0
* Java API for JSON Processing1.0
* 其他略
Web应用程序结构
1. Servlet 过滤器 监听器 JSP
基础知识 (略)
2. 目录结构
WebApp Root
-- META-INF
MANIFEST.MF
Container Resources
-- WEB-INF
-- classes
-- META-INF
Application Resources
Java.class Files and Resources
-- i18n
Internationalization Files
-- lib
Bundled JAR Files
-- tags
JSP Tag Files
-- tld
JSP Tag Library Descriptors
Other Web-Accessible Files
3. 部署描述符和类加载器架构
- 部署描述符
用于描述Web应用程序的元数据,为JavaEE WebApp 在服务器的部署和运行提供指令。传统上,所有元数据都来自于部署描述符文件/WEB-INF/web.xml,通常该文件包含Servlet、监听器和过滤器的定义,以及HTTP会话、JSP和应用程序的配置选项。Java EE 6中的Servlet 3.0添加了使用注解和Java Configuration API配置Web应用的能力,默认情况下Servlet3.0及更高版本的环境将扫描Web应用程序和Web片段中的Java EE应用程序注解,用于配置WebApp。
- 类加载器架构(双亲优先类加载委托模式 VS 子女优先类加载委托模式)
典型的应用程序中,JavaSE平台中的java.* 类将由特定的根类加载器加载,并且不能被覆盖,这种方式很安全,避免了恶意代码的执行。之后是扩展类加载器,加载JRE安装目录中的扩展JAR。最后应用程序ClassLoader将加载应用程序中的所有其他类。上述方式称为双亲优先类加载委托模式,该模式并不完全适用于JavaEE Web环境中的应用。
运行Web程序的服务器通常相当复杂,许多供应商都有自己的实现。服务器可能与个人应用程序使用了相同的第三方库,但他们的版本可能相互冲突。另外,不同应用程序之间也可能使用同一个第三方库的冲突版本。为了解决这些问题,就需要使用子女优先类加载委托模式。
选择Web容器
1. Apache Tomcat
Apache Tomcat是目前最常见和最流行的Web容器,常用于本地的开发调试,它也是Java EE Servlet规范最初的参考实现。但是作为一个轻量级的web容器,缺少了完整JavaEE标准组件的实现。例如,Java Persistence API、Bean Validation和Java Message Service等。
下表列出了常见Tomcat版本和它实现的规范
Tomcat版本 | JavaEE版本 | Servlet | JSP | EL | WebSocket | 所需最小JavaSE版本 |
---|---|---|---|---|---|---|
5.5.x | 1.4 | 2.4 | 2.0 | - | - | 1.4 |
6.0.x | 5 | 2.5 | 2.1 | 2.1 | - | 5.0 |
7.0.x | 6 | 3.0 | 2.2 | 2.2 | - | 6 |
8.0.x | 7 | 3.1 | 2.3 | 2.3 | 1.0 | 7 |
2. GlassFish
GlassFish服务器是开源的,且完整实现了Java EE标准的应用服务器。并且目前是Java EE规范的参考实现。
3.JBoss
另一款非常流行的JavaEE服务器,完整实现了Java EE标准,由RedHat研发。
网友评论