Java Web开发基础

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  map = new HashMap();   //JavaSE7之前的写法
Map  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研发。

你可能感兴趣的:(Java Web开发基础)