Java Web基础教程(二)开发基础

Java Web基础教程(二)开发基础

转载:Future魏来

前言

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有如下技术优点

  1. 基于Java技术实现
  1. 跨平台
  2. 可以访问众多数据库
  3. 多线程
  4. 网络

Servlet的请求响应流程

  1. 浏览器向服务器发送请求
  2. Web服务器接受请求
  3. 将请求提交给Servlet引擎
  4. Servlet引擎调用Service方法
  5. 返回响应给客户端(相应的代码)

Servlet是整个JavaWeb技术的核心,也就是说Servlet可以实现全部的动态JavaWeb程序的功能。但是如果客户端页面的逻辑非常复杂的话,编写Servlet的工作量是非常大的,而且代码不易维护。

4. JSP的出现

为了解决这个问题实现页面显示代码编写与控制逻辑代码编写的分离,JSP技术就这样诞生了。
JSP技术可以在同一个页面中将客户端代码与服务端代码进行混合编程,可以直接使用Java代码作为服务端脚本。

sun公司为了充分利用已有的Servlet技术,在第一次访问JSP页面时,JSP页面会被JSP引擎翻译成Servlet,然后再交由Servlet引擎来进行处理。

JSP页面的请求、相应和运行流程

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 的目录结构

标准目录结构

  1. untitled3 是这个工程的根目录
  1. web 目录下存放资源文件 例如 图片目录、CSS目录、JS目录、jsp文件等
  2. WEB-INF 目录下 存放 工程的配置文件 web.xml 和 lib 库文件

3. Java Web 的配置文件

配置文件是所有Java web应用程序的支柱。我们这里介绍的文件主要是位于WEB-INF目录下的web.xml文件。除此之外在Tomcat\conf目录下也有一个web.xml文件,这个文件是对于Tomcat服务器的配置文件,一种全局的配置。
配置文件可以进行如下的相关配置??

  1. Servlet Context 初始化参数
  1. Session配置
  2. Servlet/JSP定义
  3. 标签库引用
  4. MIME类型映射
  5. 欢迎页
  6. 错误页
  7. 安全信息

3. MVC 模式和 MVC框架

经过广泛的使用Servlet/JSP技术,开发者们渐渐发现了Servlet与JSP技术的弊端

HTML代码、JavaScript、CSS和动态JSTL、java代码混合在一起不利于后期的维护,为了解决好这个问题将页面与服务端代码分离,这就是MVC模式的基本思想之一。

1. JSP Model 1 与 JSP Model2

  • JSP Model1

Mode1由三部分组成

  1. 客户端浏览器
  2. 服务端程序(JSP/Servlet)
  3. 数据库

Model1的构架

这种结构也有它的不足之处,没有做到进一步的代码层次分离。

  • JSP Model2

MVC是模型(Model)-视图(View)-控制器(Controller)的简称

以下就是交互图示

Model2的构架

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模式所起到的重要作用。

下节预告

  1. HTML
  2. CSS
  3. JavaScript
  4. Ajax

敬请期待哦~

原文地址:https://www.cnblogs.com/nelsen-chen/p/9050350.html

时间: 2024-08-04 22:36:38

Java Web基础教程(二)开发基础的相关文章

Java基础教程:多线程基础(2)——线程间的通信

Java基础教程:多线程基础(2)--线程间的通信 使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效的把控与监督. 线程间的通信 思维导图 等待中 等待/通知机制 不使用等待/通知机制 我们可以使用使用sleep()与 whle(true) 死循环来实现多个线程间的通信. 虽然两个线程实现了通信,但是线程B必须不断的通过while语句轮训机制来检测某一个条件,这样会浪费CPU资源. 如果轮询间隔较小,更浪费时间间隔.如果轮训

HTML/CSS基础教程 二

表 表是十分有用的,用它存储表状的数据更易于阅读.当你想用行列来显示信息时---你猜到了,<table>标签正是你需要的,有许多和表有关的标签,它们都以<table>开始. 表就是将一组数据用行列的形式排列,我们用<tr>标签创建一个表行(table row),<td>标签表示表数据(table date) <!DOCTYPE html> <html> <head> <title>Table Time</

Java Web学习(二) Eclipse的配置

Java Web学习(二) Eclipse的配置 一.下载Eclipse 1.进入Eclipse官网,进行下载 上图,下载Eclipse IDE for JaveEE Developers 版本,然后根据windows系统32位或64位,进行选择(建议64位).如果你的机器内存过小,可以选择Eclipse的旧版本:Eclipse Indigo .Eclipse Juno . Eclipse Kepler 等版本. 2.解压缩安装 打开压缩包,将里面的Eclipse 拖出到指定位置,进行解压缩.

快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础

上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是Windows,装虚拟机也麻烦,所以还不如30块钱 买个腾讯云,用putty远程练上去写代码呢. 我一直都是putty+VIM在Linux下开发代码,好几年了,只要把putty和VIM配置好,其实 开发效率挺高的. 买好腾讯云后,装个Centos,会分配个外网IP,然后买个域名,在DNSPod解析过去

Daydream从入门到精通——快速入门开发基础教程二:Android端开发环境配置二

开始部署 上篇介绍了开发Daydream Android VR需要的基本环境,这篇我们来看看如何部署和运用官方示例. -------------------------------------------------------------------------------------------------------------------- Daydream快速入门开发基础教程一:Android端开发环境配置一 http://blog.csdn.net/jaikydota163/arti

Java Web系列:Spring Security 基础

Spring Security虽然比JAAS进步很大,但还是先天不足,达不到ASP.NET中的认证和授权的方便快捷.这里演示登录.注销.记住我的常规功能,认证上自定义提供程序避免对数据库的依赖,授权上自定义提供程序消除从缓存加载角色信息造成的角色变更无效副作用. 1.基于java config的Spring Security基础配置 (1)使用AbstractSecurityWebApplicationInitializer集成到Spring MVC 1 public class Securit

Thrift 基础教程(二)编码篇

上接Thrift 基础教程(一)安装篇,今天来介绍下Thrift的编码过程,首先通过命令行生成框架代码. 命令格式如下: thrift -gen language xxx.thrift 1.首先介绍下那个xxx.thrift文件,我们需要先创建myserver.thrift文件,这个接口主要定义服务接口和数据格式. 介绍一下thrift文件的语法格式,以我写的myserver.thrift说明. /** * thrift中的数据类型 * bool 布尔类型 * byte 同java里的byte

Java Web系列:Spring MVC 基础

1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层面上给我们帮助,无法在思考和过程上帮助我们,而我们很多人都不喜欢思考和尝试. 2.实现Web MVC的基础 实现Web MVC基础可以概括为1个前段控制器和2个映射. (1)前端控制器FrontController ASP.NET和JSP都是以Page路径和URL一一对应,Web MVC要通过URL

JAVA教程 软件开发基础

软件开发 什么是软件?软件是一系列按照特定顺序组织的计算机数据和指令的集合.1.数据就是指现实生活中的年龄.姓名等信息.2.指令就是告诉计算机如何对数据进行处理. 创一个小群,供大家学习交流聊天如果有对学JAVA方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学JAVA能够持之以恒JAVA爱好群,如果你想要学好JAVA最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习JAVA组织 可以点击组织二字,可以

Java Web系列:Spring Boot 基础 (转)

Spring Boot 项目(参考1) 提供了一个类似ASP.NET MVC的默认模板一样的标准样板,直接集成了一系列的组件并使用了默认的配置.使用Spring Boot 不会降低学习成本,甚至增加了学习成本,但显著降低了使用成本并提高了开发效率.如果没有Spring基础不建议直接上手. 1.基础项目 这里只关注基于Maven的项目构建,使用Spring Boot CLI命令行工具和Gradle构建方式请参考官网. (1)创建项目: 创建类型为quickstart的Maven项目,删除默认生成的