天天看点

《Servlet、JSP和Spring MVC初学指南》——导读

《Servlet、JSP和Spring MVC初学指南》——导读

**

前言

java servlet技术简称servlet技术,是java开发web应用的底层技术。由sun公司于1996年发布,用来代替cgi——当时生成web动态内容的主流技术。cgi技术的主要问题是每个web请求都需要新启动一个进程来处理。创建进程会消耗不少cpu周期,导致难以编写可扩展的cgi程序。而servlet有着比cgi程序更好的性能,因为servlet在创建后(处理第一个请求时)就一直保持在内存中。此后,sun公司发布了javaserver pages(jsp)技术,以进一步简化servlet程序开发。

自从servlet和jsp技术诞生后,涌现出大量的基于java的web框架来帮助开发人员快速编写web应用。这些框架构建于servlet和jsp之上,帮助开发人员更加关注业务逻辑,无须编写重复性(技术)代码。目前,spring mvc是最为流行的可扩展java web应用开发框架。

spring mvc又叫spring web mvc,是spring框架的一个模块,用于快速开发web应用。mvc代表model-view-controller,是一个广泛应用于gui开发的设计模式。该模式不局限于web开发,也广泛应用在桌面开发技术上,如java swing和javafx。

servlet是一个java程序,一个servlet应用有一个或多个servlet程序。jsp页面会被转换和编译成servlet程序。

servlet应用无法独立运行,必须运行在servlet容器中。servlet容器将用户的请求传递给servlet应用,并将结果返回给用户。由于大部分servlet应用都包含多个jsp页面,因此更准确地说是“servlet/jsp应用”。

web用户通过web浏览器例如ie、mozilla firefox或者谷歌chrome来访问servlet应用。通常,web浏览器又叫web客户端。

要运行java ee应用,需要一个java ee容器,例如glassfish、jboss、oracle weblogic或者ibm websphere。诚然,我们可以将一个servlet/jsp应用部署到一个java ee容器上,但一个servlet/jsp容器就已经满足需要了,并且更加轻量。当然,tomcat和jetty不是java ee容器,因此无法运行ejb或jms技术。

url中的context部分用来代表应用名称,该部分也是可选的。一台web服务器可以运行多个上下文(应用),其中一个可以配置为默认上下文,对于访问默认上下文中的资源,可以跳过context部分。

最后,一个context可以有一个或多个默认资源(通常为index.html,index.htm或者default.htm)。一个没有带资源名称的url通常指向默认资源。当存在多个默认资源时,其中最高优先级的资源将被返回给客户端。

在资源名之后可以有一个或多个查询语句或者路径参数。查询语句是一个key/value组,多个查询语句间用“&”符号分隔。路径参数类似于查询语句,但只有value部分,多个value部分用“/”符号分隔。

**[第一部分 servlets和jsp

第1章 servlets

<a href="https://yq.aliyun.com/articles/91046">1.2 servlet</a>

<a href="https://yq.aliyun.com/articles/91053">1.3 编写基础的servlet应用程序</a>

1.3.1 编写和编译servlet类

1.3.2 应用程序目录结构

1.3.3 调用servlet

<a href="https://yq.aliyun.com/articles/91060">1.4 servletrequest</a>

<a href="https://yq.aliyun.com/articles/91063">1.5 servletresponse</a>

<a href="https://yq.aliyun.com/articles/91073">1.6 servletconfig</a>

<a href="https://yq.aliyun.com/articles/91076">1.7 servletcontext</a>

<a href="https://yq.aliyun.com/articles/91082">1.8 genericservlet</a>

<a href="https://yq.aliyun.com/articles/91087">1.9 http servlets</a>

1.9.1 httpservlet

1.9.2 httpservletrequest

1.9.3 httpservletresponse

<a href="https://yq.aliyun.com/articles/91098">1.10 处理html表单</a>

<a href="https://yq.aliyun.com/articles/91102">1.11 使用部署描述符</a>

<a href="https://yq.aliyun.com/articles/91106">1.12 小结</a>

**[第2章 会话管理

<a href="https://yq.aliyun.com/articles/91118">2.2 隐藏域</a>

<a href="https://yq.aliyun.com/articles/91123">2.3 cookies</a>

<a href="https://yq.aliyun.com/articles/91124">2.4 httpsession对象</a>

<a href="https://yq.aliyun.com/articles/91125">2.5 小结</a>