JavaEE学习记录

十度 Java 2016年03月25日 收藏

TCP/IP四层模型

  1. 应用层(SMTP、FTP、DNS、SNMP、NFS、HTTP、TELNET)
  2. 传输层(TCP、UDP)
  3. 网际层
  4. 网络接口层

HTTP协议

超文本传输协议(文本、音频、视频),是一种分布式、合作式,多媒体信息系统服务,面向应用层的协议。
  1. 遵循请求/响应模型(三次握手)
  2. 无连接(每次只处理一个请求,结束断掉链接)
  3. 无状态(对事务没有记忆能力,处理前面处理过的,需要重传)

HTTP协议请求

请求行、消息报头(消息行)、请求正文
常用方法:GET、POST

HTTP响应

状态行、消息报头、响应正文

静态Web与动态Web区别

静态Web是无法继续进行数据库操作
动态Web是可以进行数据库操作。动态Web最大的特点是具有交互性(服务器会自动根据用户请求
响应不同的结果)。

Web容器

Web容器负责管理和运行Servlet

CGI缺陷:每次请求都会打开一个进程。严重消耗了系统资源,不支持高并发。

动态网页技术

  1. GUI(COmmon Gateway interface:公共网关接口)技术:最早的动态网页技术。跨平台。
  2. PHP(Hpertext Preprocessor:超文本预处理):跨平台的服务器端的嵌入式脚本语言。大量借用C、Java、Perl语言。优点:能快速的写出网页。缺点:只能在Apache平台上,使用MySql数据库技术。只适合个人或小型项目。
  3. ASP(Active Server Pages:动态服务页):ASP是一个动态Web服务器的开发环境。ASP采用的脚本语言VBscript作为开发语言。出现较早。ASP只能运行在IIS服务器上,且只能在SQLServler数据库上发挥最大性能。
  4. ASP.NET:ASP后续推出的。基于.NET架构平台。
  5. JSP/Servelt(Java Server Page:Java服务页):在HTML代码中嵌入Java代码。JSP不受平台限制,可支持多重服务器。如:Tomcat、WebLogic、JBoss、WebSphere等。适合中大型项目开发。

Servlet

  1. 运行在Web服务器或应用服务器上的Java程序
  2. 在Web上创建动态内容的(有效而强大的)解决方案
  3. 由容器来管理生命周期【加载(创建)程序、初始化、服务、终止(销毁)、卸载】与服务器交互
  4. 由Sun规范功能

Servlet生命周期

  1. 加载:通过web.xml配置指定Servlet的位置(包和类名),成功后web容器通过反射Servlet实例化。
  2. 初始化:调用init()方法初始化这个实例化的对象。在处理请求前完成一些初始化工作(建立数据库链接,读取源文件信息等)。初始失败,直接卸载Servlet。
  3. 服务:调用service()方法,处理请求。ServletRequest处理请求,ServletResponse设置响应信息。
  4. 销毁:Servlet从容器中被删除时,web容器自动调用destroy()方法。
  5. 卸载:Servlet调用完destroy()方法后,此实例被垃圾回收器回收,需再次使用此实例,会重新调用init()初始化。

正常情况下只会初始化、销毁一次;特殊情况(如:Servlet长时间不使用)下才会多次调用。

Servlet基本配置

  1. 完全匹配:
    <url-pattern>/servlet/MyServlet.do</url-pattern>`
  2. 目录匹配:
    <url-pattern>/servlet/*</url-pattern>
  3. 扩展名匹配:
    <url-pattern>*.do</url-pattern>

容器查找:完全匹配 > 目录匹配(从最长目录匹配开始) > 扩展名匹配