[有书共读]Java Web高级编程(篇1)

Java Web高级编程 -- 篇1

注:喜闻乐见的开坑,笔记主要关于WebSockets,Spring,Framework,JPA Hibernate和Spring Security。从今天开始,每星期不定期更新。欢迎关注
面向读者:已经具有丰富的Java语言和Java SE平台知识的软件开发者和软件工程师。
预掌握知识:

  • Internet、TCP、HTTP协议
  • HTML(5)
  • XML
  • Javascript或ECMAScript
  • CSS
  • SQL,MySQL
  • 事务及其概念
  • IDE使用
  • 简单命令行的执行

需要工具:

  • Apache Maven版本3.1.1或更新
  • 可以执行命令行且能够读取命令行的操作系统
  • 文本编辑器或者IDE

    推荐sublime2编辑器,或者IDEA集成开发环境

  • 支持Java SE 8的Java开发工具包

下面开始正式内容(撒花)

Java EE平台介绍

相信大家已经看过不少关于Java的介绍,所以首先略过Java发展...

平台新特性

  1. Java SE7

    • 添加菱形操作符(<>)。

      Map<String,Map<String,Map<Integer,List<MyBean>>>> map = new Hashtable<String,Map<String,Map<Integer,List<MyBean>>>>();
      可以简化为Map<String,Map<String,Map<Integer,List<MyBean>>>> map = new Hashtable<>();

    • 使用try-with-resource管理资源

      将以前在try块或者finally块中关闭的资源,现在可以如try(resource)-catch-finally一样,放在try后的括号中,这样资源就会在隐式的finally块中自动关闭。
      同时,对于try-catch-finally的另一处改进就是可以同时捕捉多个异常,条件是异常之间不能有继承关系。

  2. Java SE8

    • 添加lambda表达式

      lambda表达式的本质是匿名函数,在定义和调用时不需要被赋予类型名或绑定到标志符。
      详细介绍

基本Web应用程序结构

    大量的组件组成了Java EE Web应用程序。首先,需要自己的代码和它依赖的第三方库。然后需要部署描述符,其中包含了部署和启动应用程序的指令。还可以添加ClassLoader用于将自己的应用程序与同一台服务器上的其它Web应用隔离开。最后通过某种方式将应用程序打包,生成WAR和EAR文件。

    所有的Java EE Web应用程序服务器都支持WAR文件应用程序归档,大多数服务器还支持未归档的应用程序目录。不过它们的目录结构预定都是相同的。

    在该结构中,类文件都存储在/WEB-INF/classes中,WEB-INF目录存储了一些包含了信息和指令的文件,Java EE Web应用服务器使用它们决定如何部署和运行应用程序。classes目录被用作包的根目录。所有编译后的应用程序类文件和其它资源都被存储在该目录中。
    WAR文件包含的应用程序依赖的JAR文件都被存储在/WEB-INF/lib中。目录/WEB-INF/tags和/WEB-INF/tld分别用于存储JSP标签文件和标签库描述符。

    根级别的/META-INF目录中包含了应用程序清单文件。它可以存储特定Web容器或应用程序服务器需要使用的资源。根级别的/META-INF目录并不在应用程序类路径上。不能使用ClassLoader获得该目录中的资源。不过/WEB-INF/classes/META-INF在路径上。可以将任何希望使用的资源文件存储在该目录中,这样就可以通过ClassLoader访问这些资源。一些Java EE组件指定了某些文件存储在该目录中。

    部署描述符是用于描述Web应用程序的元数据,并为Java EE Web应用程序服务器部署和运行Web应用程序提供指令。从传统上讲,所有元数据都来自于部署描述符文件/WEB-INF/web.xml。该文件通常包含Servlet、***和过滤器的定义,以及HTTP会话、JSP和应用程序的配置选项。Java EE 6 中的Servlet3.0添加了使用注解和Java Configuration API配置Web应用程序的能力。它还增加了Web片段的概念--应用程序中的JAR文件可以包含Servlet、过滤器和***的配置,这些配置将被添加到必要的JAR文件的部署描述符文件/META-INF/web-fragment.xml中。Web片段也可以使用注解和Java Configuration API。

    在Java SE平台上,当低级别类加载器申请加载一个类时,它总是首先将该任务委托给它的父类加载器。继续向上委托直至根类加载器确认成功。
    在Java EE Web应用服务器中,每个Web应用程序都被分配了一个自由的相互隔离的类加载器,它们都继承自公共的服务器加载器。通过隔离不同的应用程序,它们不能访问互相的类。Web应用程序加载器通常会在自己无法加载某个类的时候,请求它的父类加载器帮助加载。通过这种方式,类加载任务会在最后而不是首先委托给它的父类,Web应用程序中的类和库会被优先使用,而不是服务器提供的版本优先使用。

#读书笔记##Java#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务