美文网首页
Java Web开发基础

Java Web开发基础

作者: 编程渣渣 | 来源:发表于2017-06-06 21:59 被阅读0次

    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研发。

    相关文章

      网友评论

          本文标题:Java Web开发基础

          本文链接:https://www.haomeiwen.com/subject/utbnfxtx.html