- 第一部分 开发环境和配置概述
- 第1章 JavaEE应用概述
- 1. Java 技术系列的 3 个版本
- 2. Java EE应用分层
- 3. Java EE应用架构图
- 4. 常见Java EE服务器
- 5.轻量级Java EE主流技术
- 第2章 Tomcat
- 1. Tomcat简述
- 2. Tomcat配置
- 3. Tomcat 的几个标准目录
- 第二部分 Jsp&Servlet
- 第1章 JDBC
- 1. JDBC简介
- 1.1 JDBC中主要接口
- 2 JDBC使用
- 2.1 JDBC操作
- 2.2 带参数的查询语句
- 2.3 JDBC事务管理
- 第2章 Web应用和JSP
- 1. B/S结构和C/S结构简介
- 2. Web应用结构
- 3. JSP技术原理
- 第3章 JSP基本语法
- 1. JSP注释
- 2. JSP声明语法
- 2.1 JSP声明
- 2.2 JSP声明与Servlet的关系
- 3. 输出表达式
- 4. JSP脚本
- 4.1 JSP脚本简介
- 4.2 JSP脚本与Servlet的关系
- 4.3 JSP脚本规则
- JavaME:Java Micro Edition,Java技术微型版,为小型设备、独立设备、互联移动设备、嵌入式设备程序开发而设计。
- JavaSE:Java Standard Edition,Java 技术标准版,以界面程序、Java小程序和其它一些典型的应用为目标。
- JavaEE:Java Enterprise Edition,Java技术企业版,以服务器端程序和企业软件的开发为目标。
Java EE架构,大致上都可分为如下几层:
- Domain Object(领域对象)层:此层由系列的POJO(Plain Old Java Object,普通的、传统Java对象)组成,这些对象是该系统的Domain Object。
- DAO(Data Access Object数据访问对象)层:此层由系列的DAO组件组成,这些DAO实现了对数据库的增加、查询、更新和删除(CRUD)等原子操作。
- 业务逻辑层:此层由系列的业务逻辑对象组成,这些业务逻辑对象的实现了系统所需要的业务逻辑方法。
- 控制器层:此层由系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求。
- 表现层:此层由系列的JSP页面、Velocity页面、PDF文档视图组件组成。此层负责收集用户请求,并将显示处理结果。
Web服务器:
- Tomcat:Tomcat 和Java结合的最好,是Sun官方推荐的JSP服务器。
- Jetty:Jetty是另一个优秀的Web服务器。Jetty有个更大的优点,Jetty可作为一个嵌入式服务器,即:如果在应用中加入Jetty的jar文件,应用可在代码中对外提供Web服务。
- Resin:是目前最快的JSP、Servlet运行平台,支持EJB。个人学习该服务器是免费的,但如果想将该服务器作为商业使用,则需要交纳相应的费用。
Java EE应用服务器:
- Jboss:开源的Java EE服务器,目前支持EJB3.0技术。
- Weblogic和Websphere:这两个是专业的商用Java EE服务器,价格不菲。但在性能等各方面也是相当出色。
- 前后端分离架构
- JSP、Servlet和JavaBean
- Spring MVC(Struts 2)
- Spring——为企业应用的开发提供了一个轻量级的解决方案,主要有依赖注入、基于 AOP 的声明式事务管理等功能。
- MyBatis(Hibernate/JPA)——是一个面向 Java 环境的对象/关系映射工具(ORM)。
- Spring全家桶
Tomcat是Java领域最著名的开源Web容器,简单、易用,稳定性极好。既可以作为个人学习之用,也可以作为商业产品发布。Tomcat不仅提供了Web容器的基本功能,还支持JAAS和JNDI绑定等。
2. Tomcat配置运行Tomcat只需要一个环境变量:JAVA_HOME。不管是Windows,还是Linux,只需要增加该环境变量即可,该环境变量的值指向JDK安装路径。
Tomcat的默认服务端口是8080,可以通过管理Tomcat配置文件来改变该服务端口,甚至可以通过修改配置文件让Tomcat同时在多个端口提供服务。
Tomcat的配置文件都放在conf目录下,控制端口的配置文件也放在该路径下。打开conf下的server.xml文件,修改port属性值即可修改端口。
3. Tomcat 的几个标准目录bin:存放 Tomcat 启动和关闭等程序的文件夹。
conf:存放一些 Tomcat 的配置文件,主要有 server.xml。
webapps:该文件夹用于存放部署的 Web 应用。
work:该文件夹存放 Web 应用运行时 JSP 编译生成的 servlet 的 java 和 class文件。
java.sql.DriverManager:处理驱动程序的调入和管理
java.sql.Connection:负责连接数据库
java.sql.Statement:负责执行数据库 SQL 语句
java.sql.ResultSet:负责存放查询结果
- 加载驱动程序——Class.forName()
- 建立数据库连接——DriverManager.getConnection()
- 创建SQL容器——createStatement()
- 使用SQL容器执行SQL语句——executeQuery()、executeUpdate()、execute()
- 处理结果——next()、get…()
- 关闭结果集、容器、数据库连接——close()
JSP示例:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="java.sql.*"%>
<%
String url ="jdbc:mysql://localhost:3306/school"; // 数据库连接字符串
String sql="select * from teacher"; // SQL语句
Class.forName(" com.mysql.jdbc.Driver "); // 加载驱动程序
Connection conn = DriverManager.getConnection(url,"root","dba"); // 建立连接
Statement stmt = conn.createStatement(); // 创建SQL容器
ResultSet rs = stmt.executeQuery(sql); // 获得结果集
while( rs.next() ) { // 处理结果集
out.print(rs.getString("id")+" ");
out.print(rs.getString("name")+" ");
out.print(rs.getString("address")+" ");
out.print(rs.getString("year")+"
");
}
// 关闭
rs.close();
stmt.close();
conn.close();
%>
2.2 带参数的查询语句
PreparedStatement 是 Statement 的子接口,功能与 Statement 类似,它在 sql 语句中使用了?代替了需要插入的参数。
用 PreperedStatement 的 setString(n,参数)方法可以将第 n (n从1开始)个?用传进的参数代替。这样做增加了程序的可维护性,也增加了程序的安全性。
示例:
String sql="select * from 表 where 字段=?"; PreparedStatement pStmt = conn.prepareStatement(sql); pStmt.setString(1, parm1); ResultSet rs= pStmt.executeQuery( );2.3 JDBC事务管理
Connection类的3个控制事务的方法:
setAutoCommit(boolean autoCommit): 设置是否自动提交事务,默认自动提交事务
commit(): 提交事务
rollback(): 回滚事务
注:JDBC API中默认:每条更新语句是一项事务,是自动提交事务
示例:
try{
……
con=DriverManager.getConnection(dburl,dbuser,dbpassword);
con.setAutoCommit(false);
stmt=con.createStatement();
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
con.commit();
}
catch(SQLException e){
e.printStackTrace();
try{
con.rollback();
}
catch(SQLException ex){
System.out.println(“回滚失败”);
}
}
finally{
try{
stmt.close();
con.close()
}
catch(SQLException e){
System.out.println(“关闭资源失败”);
}
}
第2章 Web应用和JSP
1. B/S结构和C/S结构简介
B/S结构:请求 / 响应架构
C/S结构:客户端 / 服务器架构
区别:
收集用户输入数据的方式不一样;
状态是不连续的。请求/响应的架构只有当客户端发出请求时,服务器才可生成响应,服务器无法主动更新客户端状态;
生成显示时,服务器只能生成HTML标签,有浏览器根据HTML标签显示。
Java Web 应用的文件结构,必须要有个 WEB-INF目录 ,下面有 classes子目录 (存放 java 编译后的 class 文件)、lib 子目录(存放一些数据库驱动、第三方框架等 jar 文件)、web.xml(web 最重要的配置文件,主要配置 servlet、filter、listener 和首页等)。
3. JSP技术原理- JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例(默认情况下只实例化一次)。JSP页面由系统编译成Servlet, Servlet再负责响应用户请求。
- 使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。
- JSP 文件必须在 JSP 服务器内运行。
- JSP文件必须生成Servlet才能执行。
- 每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。(懒加载)
- JSP页面的访问者无须安装任何客户端,甚至不需要可以运行 Java的运行环境,因JSP页面输送到客户端的是标准HTML页面。
JSP注释:<%– 注释内容 –%> HTML注释:<!– 注释内容 –>
JSP声明:<%! 声明部份 %> —— 相当于将代码写到类中
JSP输出表达式:<%=表达式%>
JSP脚本:<% 脚本代码部分 %> —— 相当于将代码写到方法中
JSP注释的格式如下:
<%-- 注释内容 --%>
JSP注释是不会输出到客户端的。
与JSP注释形成对比的是HTML注释,HTML注释的格式是:
HTML的注释内容会发送到客户端的。
2. JSP声明语法 2.1 JSP声明JSP声明语法如下:
<%! 声明部份 %>
声明部分的变量可以使用访问控制符,如private、protected、public等修饰。
声明部分可以定义方法。
声明部分可以使用static修饰。
声明部分可以定义内部类。
JSP声明可以声明变量、方法,并且会转换成Servlet的成员变量或成员方法。
JSP页面会编译成一个Servlet类,每个Servlet在容器中只有一个实例;而在JSP中声明的变量是类的成员变量,成员变量只在创建实例时初始化,该变量值将一直保存,直到实例销毁。
3. 输出表达式JSP提供了一种输出表达式值的简单方法,输出表达式的格式如下:
<%=表达式%>
上面的表达式等同于<%out.print(表达式);%>,生成的Servlet里代码完全相同。
4. JSP脚本 4.1 JSP脚本简介JSP脚本最常用,功能比较强大;
JSP脚本的应用非常广泛,可通过Java代码镶嵌在HTML代码中,即使用JSP脚本;
所有能在Java程序中执行的代码,都可以通过JSP脚本执行,包括连接数据库和执行数据库操作。
JSP脚本语法格式如下:
<% 脚本代码部分 %>
4.2 JSP脚本与Servlet的关系JSP脚本部分对应Servlet类里的_jspService方法里的执行代码;JSP页面中的HTML部分的静态内容可由_jspService方法的输出语句输出到页面中。
4.3 JSP脚本规则- JSP脚本可以定义变量,定义的变量都是局部变量;
- JSP脚本中的变量是局部变量,不能使用访问控制符修饰;
- JSP脚本中不允许定义方法;
- JSP脚本中不可以使用static修饰;
- JSP脚本中不可以定义内部类。



