剑指JavaWeb:技术详解与应用实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 服务器端技术

下面对服务器端相关技术进行简单介绍。

1.XML配置文件

XML的全称为Extensible Markup Language,叫作可扩展标记语言。它和前面提到的HTML很相似,都属于标记语言,不过两者用途不同,HTML主要是用来显示页面数据的,而XML用来传输和存储数据。XML技术由W3C组织发布,目前推荐遵守的是W3C组织于2000年发布的XML 1.0规范。它是独立于软件和硬件的信息传输工具,并且作为一种纯文本格式,应用十分广泛,有能力处理纯文本的软件都可以处理XML。

XML 作为独立于软件和硬件的信息传输工具,它可以存储数据、作为数据交换的载体,但最常见的还是作为配置文件使用,给应用程序提供配置参数的文件,并且还可以初始化设置一些有特殊格式的文件。

2.Tomcat服务器

本书介绍的Web服务器为Tomcat服务器,它是一个免费开源的Web服务器,属于轻量级应用服务器,在很多中小型系统中被普遍使用。因为Tomcat是由Java代码编写的,所以还需要准备JDK环境。另外,为了提高开发效率,本书将借助IntelliJ IDEA(简称IDEA)开发工具编写Java程序。

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于Sun的参与和支持,最新的Servlet和JSP规范得以在Tomcat中体现。由于Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

3.HTTP

HTTP,全称为Hyper Text Transfer Protocol,中文名称为超文本传输协议,是一个属于应用层的面向对象的协议。它适用于分布式超媒体信息系统,经过十几年的使用与发展,得到不断完善和扩展。

HTTP是学习JavaWeb开发的基石,不了解HTTP,就不能说掌握Web开发。绝大多数的Web开发,都是构建在HTTP之上的Web应用。在Web开发过程中,要涉及客户端与服务端的交互,这要求我们对HTTP应有深入的了解。理解和掌握HTTP,将有助于我们更好地学习和掌握Servlet技术,以及其他相关的Web开发技术,这也是我们学习HTTP的目的所在。

4.Servlet核心技术

Servlet是Server Applet的简称,称为小服务程序或服务连接器,是使用Java语言编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。在整个Web应用中,Servlet 主要负责接收处理请求、协同调度,以及响应数据。因此,我们可以把 Servlet 称为 Web应用中的控制器。

由于Web开发基于HTTP,而Servlet规范其实就是对HTTP面向对象的封装,Servlet实现了接收客户端的请求数据,并生成响应结果最终返回给客户端的过程。同时,Servlet也是本书的一个重点内容,主要包括Servlet的生命周期、体系结构、请求与响应,以及如何应用等。

Servlet章节涉及很多源码分析和相关接口。例如,ServletConfig接口,用于封装Servlet的配置信息;ServletContext接口,代表Servlet上下文,即当前Web应用;HttpServletRequest接口是ServletRequest接口的子接口,封装了HTTP请求的相关信息;HttpServletResponse接口是ServletResponse接口的子接口,封装了服务器端针对于HTTP响应的相关信息。

5.Thymeleaf页面渲染

Thymeleaf是一个现代化的、在服务器端渲染XML/XHTML/HTML5等内容的Java模板引擎。类似JSP、Velocity、FreeMaker等,它也可以轻易地与Spring MVC等Web框架进行集成作为Web应用的模板引擎。它的主要作用是在静态页面上渲染显示动态数据。面向于后端开发人员,它是一个自然语言的模板,语法非常简单,相比其他模板引擎,上手较快,比较适合简单的单体应用。不足之处在于,Thymeleaf 不是高性能的模板引擎,如果我们要开发高并发应用,并且需要实现页面跳转功能,最好使用前后端分离技术。

值得一提的是,Thymeleaf是SpringBoot官方推荐使用的视图模板技术,能够与SpringBoot完美整合,而且Thymeleaf不经过服务器端运算仍然可以直接查看原始值,对于前端工程师而言,其同样很友好。

6.会话控制技术

会话控制是一种面向连接的可靠通信方式,通常根据会话控制记录判断用户登录的行为。一次会话,是指从浏览器开启到浏览器关闭的整个过程,在此期间,浏览器和服务器之间会发生连续的一系列请求和响应,就像从拨通电话到挂断电话聊天的全过程。Web应用的会话状态是指服务器与浏览器在会话过程中产生的状态信息。

会话控制涉及两类会话技术。一类是客户端的会话技术,实现把会话数据保存在客户端的操作,如Cookie技术。Cookie是通过HTTP扩展实现的,即在HTTP请求头里面增加Cookie字段,用于存储客户端信息。另一类是服务端的会话技术,实现把会话数据保存在服务端的操作,如Session技术。Session是基于Cooike的,在Cookie基础上做了进一步完善,解决了Cookie的一些局限问题。

7.Filter(过滤器)和Listener(监听器)

JavaWeb的三大组件分别是Servlet、Filter和Listener。过滤器是JavaWeb技术中最为实用的技术之一。过滤器是一个实现了特殊接口Filter的Java类,其作用是对目标资源进行过滤,即实现对Servlet、JSP、HTML文件等请求资源的过滤功能。它是一个运行在服务器端的程序,优先于Servlet、JSP或HTML文件等请求资源执行。Servlet API中,提供了大量的监听器来监听Web应用事件,其中Listener实现类是最为常用的。

以上就是Web开发涉及的所有技术点,本书第14章还提供了一个书城项目的综合案例,融合了全书所有内容,带领大家动手实践,以进一步了解JavaWeb在实际开发中的应用。