Java Web基础教程(二)开发基础
Java Web基础教程(二)开发基础
前言
Java web是一种基于B\S(浏览器\服务器)架构的网络应用程序的技术实现。这种结构的Web应用程序被大量的企业级应用所采用。随着Web应用程序的规模不断扩大,传统的Web开发模式无法满足日渐复杂的业务需要,所以出现了更加合理更加先进的MVC开发模式。随之而来的也出现了一系列的基于MVC模式的开发框架,Struts框架、Spring MVC 等。
1. Web 技术的发展
1. 第一阶段 静态网站
Web技术出现伊始,由于硬件技术的限制大多数Web应用都是基于静态的HTML页面,有部分动态Web应用运行起来也是没有现在这么流畅的。静态页面只能起到信息发布的作用,它们并不具备交互能力。
2. 第二阶段 动态网站
没有交互能力的应用程序,是绝对不能流行起来的。有很多专家提出了不同的实现动态Web程序的解决方案。其中最早提出的就是通过CGI(通用网关接口),其中最重要的特点就是可以通过CGI技术访问数据库,因为几乎所有的Web应用都需要对数据进行存取。CGI技术虽然很强大,但是它也有自己的不足之处,比如实现CGI程序的技术难度比较大,代码不易维护等。
3. Servlet 实现动态网站
为了解决以上的这些历史遗留问题,Java 在1999年推出了自己的动态Web技术Servlet。
Servlet有如下技术优点
- 基于Java技术实现
- 跨平台
- 可以访问众多数据库
- 多线程
- 网络
![](https://upload-images.jianshu.io/upload_images/444972-0de798b02471b66e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
- 浏览器向服务器发送请求
- Web服务器接受请求
- 将请求提交给Servlet引擎
- Servlet引擎调用Service方法
- 返回响应给客户端(相应的代码)
Servlet是整个JavaWeb技术的核心,也就是说Servlet可以实现全部的动态JavaWeb程序的功能。但是如果客户端页面的逻辑非常复杂的话,编写Servlet的工作量是非常大的,而且代码不易维护。
4. JSP的出现
为了解决这个问题实现页面显示代码编写与控制逻辑代码编写的分离,JSP技术就这样诞生了。
JSP技术可以在同一个页面中将客户端代码与服务端代码进行混合编程,可以直接使用Java代码作为服务端脚本。
sun公司为了充分利用已有的Servlet技术,在第一次访问JSP页面时,JSP页面会被JSP引擎翻译成Servlet,然后再交由Servlet引擎来进行处理。
![](https://upload-images.jianshu.io/upload_images/444972-a2cc3417795d1963.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
2. Java Web 技术
1. Java Web 的基本构成
一个典型的Java web程序中应该包含以下元素,将它们打包在一起,并在Web容器中运行。
- Servlet
- Java Server Pages
- JSP标准标签(JSTL)和定制标签
- 在Web应用程序中使用的Java类
- 静态的文件,包括HTML、图像、JavaScript和CSS
- 描述Web应用程序的元信息(web.xml)
2. Java Web 的目录结构
![](https://upload-images.jianshu.io/upload_images/444972-942a39ccb1e2c0c1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/534)
- untitled3 是这个工程的根目录
- web 目录下存放资源文件 例如 图片目录、CSS目录、JS目录、jsp文件等
- WEB-INF 目录下 存放 工程的配置文件 web.xml 和 lib 库文件
3. Java Web 的配置文件
配置文件是所有Java web应用程序的支柱。我们这里介绍的文件主要是位于WEB-INF目录下的web.xml文件。除此之外在Tomcat\conf目录下也有一个web.xml文件,这个文件是对于Tomcat服务器的配置文件,一种全局的配置。
配置文件可以进行如下的相关配置👇
- Servlet Context 初始化参数
- Session配置
- Servlet/JSP定义
- 标签库引用
- MIME类型映射
- 欢迎页
- 错误页
- 安全信息
3. MVC 模式和 MVC框架
经过广泛的使用Servlet/JSP技术,开发者们渐渐发现了Servlet与JSP技术的弊端
HTML代码、JavaScript、CSS和动态JSTL、java代码混合在一起不利于后期的维护,为了解决好这个问题将页面与服务端代码分离,这就是MVC模式的基本思想之一。
1. JSP Model 1 与 JSP Model2
- JSP Model1
Mode1由三部分组成
- 客户端浏览器
- 服务端程序(JSP/Servlet)
- 数据库
![](https://upload-images.jianshu.io/upload_images/444972-aaab806ba90a4522.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
这种结构也有它的不足之处,没有做到进一步的代码层次分离。
- JSP Model2
MVC是模型(Model)-视图(View)-控制器(Controller)的简称
以下就是交互图示
![](https://upload-images.jianshu.io/upload_images/444972-cb5b5bc017a699ac.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
MVC模式可以实现最大限度的代码重用
2. Web应用中的基础服务
在web应用中有许多的基础功能可以在很多页面进行复用,我们进行以下总结。
- 页面导航:这个功能最好在控制器中实现
- 页面布局:通过标准方法来实现页面布局
- 数据验证:最好通过集合框架来实现对数据的验证
- 业务逻辑重用:把能够重复利用的业务逻辑从系统中分离出来,形成一系列独立的组件,这样重用起来就非常容易了。
3. 什么是MVC模式
MVC模式将一个应用分成3部分:Model(模型)、View(视图)、Controller(控制器),这3个部分应该尽量少的耦合,从而可以提高应用程序的可扩展性和可维护性。
- 多个视图可以对应多个模型
- 可以通过模型为视图提供不同的数据
- 可以在控制器中添加权限验证来限制用户对敏感资源的访问
- 降低各层次之间的耦合性,有利于对系统中各层进行扩展
4. 常用的MVC框架
-
Struts 1.x
-
Struts 2.x
-
Spring MVC
总结
我们了解了web技术的历史及其发展路程,了解了在web应用开发中所必需的内容,了解到在多人开发中MVC模式所起到的重要作用。
下节预告
- HTML
- CSS
- JavaScript
- Ajax
敬请期待哦~