ch1 软件开发环境概述
- 定义:是围绕着软件开发的一定目标而组织在一起的一组相关软件工具的有机集合
- 基本组成:工具集、交互系统、环境数据库
- 四个层次:宿主层、核心层、基本层、应用层
- 软件开发模型及开发方法分类:瀑布、螺旋、喷泉、原型化模型、结构化方法、面向对象法
CASE概念和常见类型
- 概念:计算机辅助软件工程,是一组工具和方法集合,可以辅助软件开发生命周期各个阶段进行软件开发
- 常见类型:画图工具、屏幕显示和报告生成工具、数据字典、规格说明检查工具、代码生成工具、文档自动生成工具、源码浏览工具、配置管理工具、数据库建模工具、UML建模工具
软件开发模式
- 集中型模型:大型主机资源集中,终端不具备资源
- 客户/服务器C/S模型:数据库服务器连接了多个客户端
- 优点:
- 充分利用两端硬件环境优势,将任务合理分配到客户端与服务端
- 充分发挥客户端PC的处理能力,服务器运行数据负荷较轻
- 通过异种平台集成,能够协调现有的各种IT基础结构
- 安全、稳定、速度快,可脱机操作
- 缺点:
- 必须在客户端安装大量的应用程序(客户端软件)
- 客户端安装、调试、维护、升级的成本高、任务量大
- 主要业务逻辑在客户端增加安全隐患
- 开发成本较高,移植困难
- 优点:
- 浏览器/服务器B/S模型:数据库服务器与web服务器相连,客户端只有浏览器
- 优点:
- 单一的访问点,方便、快捷、高效
- 用户可以跨平台以相同的浏览器界面访问系统
- 减轻了系统维护与升级的成本和工作量
- 简化了客户端电脑载荷,降低用户总体成本
- 缺点:
- 无法进行脱机应用
- 受制于 HTML,无法使用丰富的效果展示数据
- 应用服务器运行数据负荷重,响应速度慢
- 优点:
- 富客户端模型:有丰富的用户界面和丰富的数据模型
ch2 Web开发技术简介
Intranet
内网,仅限于特定组织或团体的专用网络
Internet
- 定义:把一个世界范围内众多的计算机、人、软件和文件通过TCP/IP协议连接在一起,相互会话的网络,也就是互联网
- 特点:容易实施、客户机/应用服务器/数据库服务器三层结构模型、开放标准
- IP地址:基于TCP/IP建立,每台主机的IP地址是在网上的唯一标识,通过域名解析系统得到主机名和域名定位
- DNS:用于将域名翻译成IP地址,DNS域是一个树状结构
- URL:统一资源定位符,也就是某个网络的通信地址,就是网址,格式是协议://主机名/文件路径
Web
- 定义:在http协议基础上,利用浏览器进行访问的网站,是Internet中使用最广泛的一种技术
- 原理:基于客户端和服务器之间的请求和响应模型。当客户端发出一个HTTP请求,相应的Web服务器接收HTTP请求后,调用相应的web应用处理请求,然后Web服务器再将响应结果返回给客户端。
- 特点:客户机/应用服务器/数据库服务器三层结构
- 三个要素:HTML、URI、HTTP
- Web访问数据库:
- 特点:客户端统一的界面、跨平台运行、统一开发标准
- 技术:CGI公关网络接口、ASP动态服务器页面、PHP超文本预处理器、JSP、
- Web开发技术:
- 服务器端编程语言:ASP、JSP、PHP
- 客户端编程语言:HTML超文本标记语言、DHTML动态html、Java Appletjava小应用程序、JavaScript、ActiveX、Ajax
- Web开发平台:.NET、Java EE
- Web技术发展史:静态技术->动态技术->Web2.0,从内容为王转换为关系为王
HTML
负责定义页面的结构
结构
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页标题</title>
</head>
<body>
文档内容
</body>
</html>
常用标签
见html笔记
- 字体标签:六级标题
<h1>到<h6>
,<font>
标记描述字体的颜色、大小和字体, - 段落标签:
<p>
分段标记、<br>
换行标记、<hr>
水平线标记、<pre></pre>
预格式化标记 - 文字对齐标签:
<center>.</center>
文字居中、<left>…</left>
文字左对齐、<right>…</right>
文字右对齐 - 多媒体标签:
<img>
图像、<bgsound>
背景音乐 - 表格与列表标签:
- 超链接和锚标签:
<a href="URL"或者name="锚名">跳转</a>
- 表单标签:
<form method="post/get"> action="URL"></form>
表单、<input type=xxx name="xxx" value="xxx">
输入 - 框架标签:
<frame>
CSS
基本概念
负责样式的呈现,将页面样式与内筒分离,将CSS样式信息存成独立文件,使多个网页文件共享样式文件,如果需要改变网页样式,只需要改变样式设定部分, HTML文件本身无须更改。
格式
选择器{规则},如h1{color:blue}
分类:
- 内联样式:通过标签的style属性来结合,
<p style="属性名称:属性值;属性名称:属性值 属性值"></p>
- 嵌入样式:把样式定义放在文档头部
<head>
<style type="text/css">
标签名称{
属性:属性值 属性值;
}
</style>
</head>
- 外部样式:通过link标签在html的文件头建立与外部样式文件的连接
<head>
<link rel="stylesheet" href="../css/myCss.css" />
</head>
DHTML
DHTML基于HTML,通过CSS技术扩展HTML在样式编排上的不足,使用脚本程序调用或控制浏览器对象和网页对象,使页面具有动态效果和交互功能。
XML
可扩展的标记语言,可以定义其他语言的语言。把显示内容与显示格式分开,显示内容在XML文件中,显示方式在样式文件CSS或XSL中。使XML文件的制作者集中精力于数据本身。包括一组相关技术:XSL(可扩展样式语言)、XML链接语言、XML名称空间、XML模式(Schema)
ch3 JSP简介
J2EE基本概念和组成
J2EE组件是一个由Java语言编写、封装了功能的软件单元,能够与相关的一些类和文件一起组成J2EE应用程序,可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
- 客户端:客户端应用程序和applet
- 服务器端:Servlet和JSP、JEB
Tomcat
-
定义:是一个JSP容器(容器),负责运行jsp并将结果发到客户端,安装了tomcat的计算机称为支持jsp的web服务器。
-
/bin:存放启动关闭和监控tomcat的命令文件
-
conf:存放配置文件
-
logs:存放日志文件
-
当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个Java文件,再将这个Java文件编译生成字节码文件,然后通过执行字节码文件响应客户的请求。
-
当多个客户请求一个JSP页面时,Tomcat 服务器为每个客户启动一个线程,该线程负责执行常驻内存的字节码文件来响应相应客户的请求。这些线程由Tomcat服务器来管理。
ch4 JSP语法
结构
以java servlet为基础,在html中插入java程序段和jsp标记,被编译成servlet后运行
<%--JSP标记--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--HTML标记--%>
<html>
<head>
<title>JSP结构</title>
</head>
<body>
<%--Java程序片--%>
<%
out.print("hello");
%>
<%--HTML标记--%>
</body>
</html>
注释
<body>
<pre><!-- 显示换行效果 -->
1. 显式注释:能在客户端查看的注释
HTML注释 <!-- HTML注释 -->
<!-- HTML注释 -->
2. 隐式注释:不能在客户端显示的注释
JSP注释 <%-- JSP自己的注释 --%>
<%-- JSP自己的注释 --%>
Java注释
// 单行注释
/* 多行注释 */
</pre>
<%
// 这是单行注释
/* 这是多行注释 */
%>
</body>
指令标签
page
定义整个jsp页面的属性和属性值<%@page 属性="属性的值" %>
- contentType:响应的MIME类型和字符编码
contentType="text/html;charset=UTF-8"
- language:脚本语言类型,只有Java
- import:引入的包
- session:是否要使用内置的session对象
- buffer:缓冲区大小
- autoFlush:缓冲区是否自动刷新
- isThreadSafe:是否多线程访问
- info:值为一个常用字符串
include
- 将其他文件插入该文件的指定位置,组合成一个新的jsp页面,实现代码的复用
- 静态包含:
<%@include file="要包含的页面地址"%>
- 动态包含:
<jsp:include page="要包含的页面路径"><jsp:param name="参数名" value="参数值"/> </jsp:include>
param
<jsp:param name="参数名" value="参数值"/>
常包含在include和forward中
forward
<jsp:forward page="跳转的页面地址"></jsp:forward>
useBean
创建一个javabean
成员变量、程序片、表达式
- Java脚本段,可以写Java代码、定义全局变量、编写语句等(不常用,会使HTML和Java耦合
<% //可以写java代码 %> 生成的代码在servlet的service的方法体中 - 声明,声明全局变量、方法、类等
<%! //声明全局变量() %> 生成的代码在servlet的类体中 - 输出表达式,可以输出变量或字面量
<%=数值 %> 生成的代码在servlet的service的方法体中,相当于out.println()输出
JSP内置对象
JSP为简化页面的开发提供了一些内部对象,对Java程序片和Java表达式有用。JSP的编写者可以直接引用这些内置对象,不需要由JSP的编写者显式声明,也不需要实例化。它们由JSP容器实现和管理,在所有JSP页面中都能使用内部对象。
request和respons和session
见servlet笔记
Session生存周期:关闭浏览器;调用invalidate()方法;超过设置的最长的发呆时间;关闭服务器。
URL 重写实际在URL的后面加上了JSESSIONID,把 Session 的 ID 传递过去。
out
是一个输出流,用来向用户输出数据
JavaBean
简介
- 定义:是一个可重复使用的软件组件,是遵循一定标准、用Java语言编写的一个类,该类的一个实例称作一个Javabean。一般实现网页中的业务逻辑或数据库操作。
- 与JSP的关系:一个JSP页面可以将数据的处理过程指派给一个或几个bean来完成,我们只需在JSP页面中调用这个bean即可。在JSP页面中调用bean可以将数据的处理代码从页面中分离出来,实现代码复用,更有效维护一个Web应用
语法
生命周期
Scope取值:page、request、session、application
获取和修改bean的属性
ch7 servlet
概述
- Servlet是一个供其他java程序(Servlet引擎)调用的 java类,它不能独立运行。
- Servlet引擎是一种容器程序,它负责管理和维护所有 Servlet对象的生命周期,因此也被称为Servlet容器或 Web容器。
- Servlet的加载、执行流程,以及如何接收客户端发送的数据和如何将数据传输到客户端等具体的底层事务, 都是由Servlet引擎来实现的。
- Servlet类继承的service方法检查HTTP请求类型,在service方法中对应地再调用doGet或doPost方法。因此,Servlet类直接继承该方法, 在Servlet类中重写doPost或doGet方法来响应用户的请求。
生命周期
- 调用init()方法完成必要的对象初始化工作,只初始化一次,重写init方法一定要加
super.init(cofnig)
- 诞生的Servlet对象再调用service()方法响应客户的请求,可调用多次,每个用户的调用在不同的进程中,互不干扰
- 当服务器关闭时,调用destroy()方法,消灭Servlet对象,仅执行一次
ch8 MVC
- Model模型:用于存储数据的对象,JavaBean
- View视图:向控制器提交所需数据以及显示模型中的数据,JSP
- Controller控制器:进行具体的业务逻辑操作,Servlet
MVC 模式的核心思想是有效的组合“视图”、“模型”和“控制器”。在 JSP 技术 中,视图是一个或多个 JSP 页面,其作用主要是向控制器提交必要的数据和为模型 提供数据显示;模型是一个或多个 JavaBean 对象,用于存储数据;控制器是一个或 多个 servlet 对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储 到 Javabean 中,然后 servlet 使用重定向或转发方式请求视图中的某个 JSP 页面更 新显示。
ch9 数据库
数据库和关系数据库的概念
数据库是提供数据的基地,它能保存数据并能使 用户方便的访问数据。
简单常用的SQL
Oracle Sybase Informix Microsoft SQL Server MySQL
JDBC简介和架构
- JSP 使用 JDBC 提供的 API 和数据库进行交互信息。使用 JDBC 的应用程序一旦和数据库建立连接,就可以使用 JDBC 提供的 API 操作数据库。
- 当查询 ResultSet 对象中的数据时,不可以关闭和数据库的连接
- 使用 PreparedStatement 对象可以提高操作数据库的效率
- JDBC 和数据库连接的两个步骤:加载驱动、建立链接
- 加载 MySQL 驱动 Class.forName("com.mysql.jdbc.Driver");
- 数据库操作的优化:分页显示记录、使用连接池、使用预处理语句
JDBC接口的重要方法(参数与返回值)
学不完啦先放下后面再说吧
简单的CRUD程序
了解JDBC-ODBC桥接器
ch10 文件
File类
- File类的对象主要用来获取文件本身的一些信息,例如文件所在的目录、文件的长度、文件读写权限等,不涉及对文件的读写操作
- 创建一个File对象的构造方法有3个:
- File(String filename);
- File(String directoryPath,String filename);
- File(File f, String filename);
- 常用方法
- 创建目录:public boolean mkdir(),成功返回true
- 列出目录中的文件:public String [ ] list()、public File [ ] listFiles() ,用字符串或file对象的形式返回当前目录下的全部文件
- 列出指定类型的文件:public String [ ] list(FilenameFilter obj)、public File [ ] ,用字符串或file对象的形式返回当前目录下指定类型的全部文件
- 删除文件和目录:public boolean delete(),成功返回true
使用文件字节流读写文件
FileInputStream、FileOutputStream
输入流
使用FileInputStream类
包括4个基本步骤:
- 设定输入流的源
- 创建指向源的输入流
- 让输入流读取源中的数据
- 关闭输入流
输出流
使用FileOutputStream类
包括4个基本步骤:
- 给出输出流的目的地
- 创建指向目的地的输出流
- 让输出流把数据写入到目的地
- 关闭输出流
使用文件字符流读写文件
FileReader、FileWriter
缓冲流作用及其重要方法
缓冲流是如何使用
FileReader inOne=new FileReader(“studen.txt”); //创建字符输入流
BufferReader inTwo=new BufferReader(inOne); //创建缓冲输入流
FileWriter tofile=new FileWriter(“hello.txt”); //创建字符输出流
BufferWriter out=new BufferWriter(tofile); //创建缓冲输入流
文件上传和文件下载
p52开始
XML
XML基本概念与组成
- XML文件是由标记构成的文本文件。XML文件有且仅有一个根标记,其他标记都必须封装在根标记中。文件的标记必须是树型结构,非空标记必须由“开始标记”与“结束标记”组成,空标记没有“开始标记”和“结束标记”。 标记的名称可以由字母、数字、下划线“_”、 点号“.”或连字符“-”组成,但必须以字母或下划线开头
- 可拓展标志语言,所谓可扩展是指XML允许用户按照XML的规则自定义标记。
浏览器显示XML
如果XML是规范的,浏览器将显示XML源文件,否则,将显示出错信息
DOM解析器的特点
- DOM 解析器在内存中按树型结构组织数据,DOM 解析器通过读入 XML 文件在内存中建立一棵“树”,XML 文件的标记、标记的文本内容都会和内存中“树”的某个节点相对应。
DOM解析器的重要类和重要方法
SAX解析器的特点
- SAX 解析器根据从文件中解析出的数据产生相应的事件,并报告这个事件给事件处 理器,事件处理器就会处理所发现的数据。
SAX解析器的重要类和重要方法
4、 通过将 XML 文件和一个 CSS 样式表文件相关联,可以方便地显示 XML 文件中的标记所含有的文本,是如何关联的?xml-stylesheet 6、 XML 文件是由标记构成的文本文件。 7、 CSS 样式表的使用方式