JavaSE_JavaWeb编程

来源:互联网 发布:日历行程软件 编辑:程序博客网 时间:2024/06/07 21:24

1、课程名称:JavaWeb编程
2、知识点
2.1、本次预计讲解的知识点
1、 JavaWeb编程思想
2、 B/S结构程序设计
3、 Servlet应用
3、具体内容
3.1、WEB技术概述(了解)
3.1.1、网络计算模式
C/S模式(Client/Server,客户/服务器):
其工作分别由服务器和客户机完成。服务器负责管理数据库的访问,为多个客户程序管理数据,并对数据库进行检索和排序,此外,还要对客户机/服务器网络结构中的数据库安全层加锁,进行保护。客户机负责与用户的交互,收集用户信息,通过网络向服务器请求对诸如数据库、电子表格或文档等信息的处理工作。

这里写图片描述

B/S模式(Browser/Server,浏览器/服务器):
在客户端统一采用如IE一类的浏览器,通过WEB浏览器向WEB服务器提出请求,由WEB服务器对数据库进行操作,并将结果传回客户端。

这里写图片描述

3.1.2、两种模式的比较分析
 开发和维护成本
C/S开发和维护成本较高。对不同客户端需要开发不同的程序,且应用程序的安装、修改和升级,均需要在所有的客户机上进行。而B/S,客户端只需有通用的浏览器,所有的维护与升级工作都是在服务器上执行,无须对客户端进行任何改变,因而大大降低了开发和维护的成本。
 客户端负载
C/S的客户端具有显示与处理数据的功能,负载重。随着应用系统的功能越来越复杂,客户端的应用程序也变得越来越庞大。B/S的客户端把事务处理逻辑部分给了服务器,客户端只须进行显示即可,俗称为“瘦”客户机。
 可移植性
C/S移植困难,因为不同开发工具开发的应用程序,一般情况不互不兼容,难以移植到其他平台上运行。对于B/S,在客户端安装的是通用浏览器,不存在移植问题。
 用户界面
C/S用户的界面是由客户端所安装的软件决定,因此用户界面各不相同;而B/S通过通用的浏览器访问应用程序,使用时类似于浏览网页。
 安全性
C/S适用于专人使用的系统,可以通过严格的管理派发软件,适用安全性要求较高的专用应用软件;而B/S适用于交互性要求较多,使用人数较多,以及安全性要求不是很高的应用环境。
 小结
综上所述,这两种开发模式都是网络环境下的开发模式,B/S相对于C/S具有更多的优势,现如今大量的应用开始转移到应用B/S的模式,许多软件公司争相开发B/S版本的软件。由于Internet逐步走进人们的日常生活当中,对电子商务有进一步的应用需求,客户简便化的使用要求对加速推广使用B/S模式起到了推波助澜的作用。
3.2、WEB应用程序(理解)
3.2.1、什么叫Web
Internet是一个连接世界上计算机的物理网络。
Web是建立在Internet上的一种服务(Service)。
Web 是Internet上多种不同的服务之一,其他还包括E-mail、流媒体、FTP等。
这里写图片描述

3.2.2、Web工作原理
作为一种服务,Web定义两方面:Web客户端(Web浏览器)和Web服务器如何通过Internet通讯。当你访问一个Web站点时,你就建立了这两者之间的关系。
首先,Web浏览器向Web服务器发送消息请求一个它期望的指定页面,Web服务器用适当的消息响应它。
这种关系叫“请求/响应模型”(request/response model)。
客户端,这里是浏览器,请求一个特殊资源,比如一个Web页面,服务器如果有,就响应该请求。
3.2.3、URL
URL(Uniform Resource Locators):统一资源定位符。Web上的每个资源都有唯一的地址,采用的就是URL格式。

这里写图片描述
3.2.4、HTTP协议
Hypertext Transfer Protocol:超文本传输协议。它是以TCP/IP为基础的高层协议。用于定义浏览器与web服务器之间交换数据的过程以及数据格式。
3.2.4.1、概述
Web基于请求/响应模型,它通过HTTP超文本协议来实现。
“协议”在国家之间的外交上规定双方如何进行协商。
“协议”在网络则定义一个设备或程序如何与另一方进行通讯。
HTTP是定义Web浏览器与Web服务器如何通讯的协议。

HTTP是以明文方式传输数据的无状态协议
在浏览器地址栏输入某个URL地址,或单击网页上一个超链接,或提交网页上的Form表单后,浏览器将生成HTTP请求消息发送给服务器。服务器收到请求消息后进行处理,并生成HTTP响应消息回送给浏览器。

请记住:
客户端发送给服务器的请求叫HTTP请求
服务器返回给客户端的响应叫HTTP响应
所以:
进行Web应用的开发,就是频繁的处理HTTP请求和HTTP响应!
3.2.4.2、HTTP/1.1
现在广泛使用的版本HTTP/1.1。相对于HTTP/1.0来说,最大的特点就是支持持续连接(即一次TCP连接上可以包含多次请求和响应)。

一个包含许多图像的网页文件的多个请求和响应可以在一个连接中传输,但每个单独的网页文件的请求和响应仍然需要使用各自的连接。

HTTP/1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求。

这里写图片描述
3.2.4.3、HTTP消息
请求消息:客户端向服务器发送的HTTP请求文本。
请求消息中的关键要素是:HTTP请求方式,要访问的资源(URL),表单参数数据。
响应消息:服务器向客户端返回的HTTP响应文本。
响应消息中的关键要素是:状态码、响应内容的类型(也叫MIME类型)、具体的响应内容(HTML、图像等数据)。

MIME类型告诉浏览器所要接收的是哪一类数据,使浏览器能够知道如何加以处理(呈现HTML、显示图片、播放音乐等)。

一个完整的请求消息包括一个请求行、若干消息头以及消息体。消息头和消息体之间要用空行隔开。
请求行指定请求方式,资源路径及使用的协议版本
消息头用来描述HTTP消息本身的一些属性
消息体是请求消息的正文
HTTP请求常用的方式是GET和POST
3.2.5、Tomcat介绍
3.2.5.1、概述
Tomcat是Apache组织的Jakarta项目中的一个重要子项目,是Sun公司推荐的运行Servlet和JSP的容器(引擎),其源代码完全公开。
它也具有一些Web服务器的功能。如:数据连接池、SSL、Proxy等。
Tomcat不同版本对Servlet和JSP的版本支持:

这里写图片描述
3.2.5.2、目录介绍
安装:需要在环境变量中指定JAVA_HOME变量:值为JDK的安装目录。
这里写图片描述

3.3、Servlet的基本概念(理解)
Servlet 是一种独立于平台和协议的服务器端的Java 应用程序, 可以生成动态的Web 页面。Servlet 是位于Web 服务器内部的服务器端的Java 应用程序, 与传统的从命令行启动的Java 应用程序不同, Servlet 由Web 服务器进行加载, 该Web 服务器( 如Tomcat) 必须包含支持Servlet 的Java 虚拟机。

Servlet的基本运行方式
Servlet没有main()方法。它们受控于另一个Java应用,这个Java应用称为Sevlet容器。Tomcat就是这样一个容器。
这里写图片描述
Web服务器应用得到一个指向servlet的请求时,服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器。由容器实例化Servlet,并向servlet提供HTTP请求和响应,由容器调用servlet的请求处理方法(如doPost()或doGet()),处理结果会送回web服务器,再由web服务器传回客户端。
Servlet的优点
执行效率高:Servlet默认是以多线程模式执行的。
进入门槛低。
拥有跨平台执行能力。
这里写图片描述

Servlet的框架组成
Servlet 框架是由两个Java 包组成: Javax.servlet 和Javax.servlet.http。
Servlet 的框架的核心里Javax.servlet.Servlet 接口, 所有的Servlet 都必须实现这一接口。

Web.xml配置
 配置Serlvet类

<servlet>    <servlet-name></servlet-name>       // Servlet名称    <servlet-class></serlvet-class>         //类</servlet>

 配置Servlet访问路径(URL)

<servlet-mapping>    <servlet-name></servlet-name>      // Servlet名称    <url-pattern></url-pattern>          // 访问该Servlet的URL路径</servlet-mapping>

3.4、创建Servlet的一般步骤(重点)
在Eclipse 中新建一个servlet:
在 Ecliipse 中, 创建完成的servlet 会自动在web.xml 中注册, 示例如下:

<servlet>    <description>This is the description of my J2EE component</description>    <dispaly-name>This is the display name of my J2EE component</display-name>    <servlet-name>MyFirstServlet</servlet-name>    <servlet-class>com.servlet.MyFirstServlet</servlet-class></servlet><servlet-mapping>    <servlet-name>MyFirstServlet</servlet-name>    <url-pattern>/servlet/MyFirstServlet</url-pattern></servlet-mapping>

MyFirstServlet类:

public class MyFirstServlet extends HttpServlet {    public MyFirstServlet() {        super();    }    public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        request.getRequestDispatcher ("../welcome.jsp").forward(request, response);    }}

3.5、Servlet的生命周期(重点)
Servlet 的生命周期定义了一个Servlet 如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。
有 3 个方法代表了Servlet 的生命周期:
init 方法, 负责初始化Servlet 对象。
service 方法, 负责响应客户的请求(调用doGet 或 doPost等方法)。
destroy 方法, 当Servlet 对象退出生命周期时, 负责释放占用的资源。

Servlet生命周期图例:

这里写图片描述
3.6、Servlet相关的类及方法(重点)
基于HTTP协议的WEB开发,只须用javax.servlet.http包中的类开发,通常情况下继承HttpServlet类即可!

1) doGet ()
用来处理HTTP的GET请求,当客户端用GET方法请求数据时,如表单请求method为Get,则接收数据的Servlet就会调用doGet()方法。其调用方法如下:

doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException

2) doPost()
用来处理HTTP的POST请求,当客端用POST方法请求数据时,如果表单请求method为post,则接收数据的Servlet就会调用doPost()方法。其调用方法如下:

doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException

3) init ()
这个方法用来完成一些初始化的工作,如设置变量的值等。当Servlet第一次被请求时该方法会被调用,再次请求时则不会被调用。其调用方法如下:

init(ServletConfig config)throws ServletException

4) service ()
这个方法用来处理对客户端的响应,其调用方法如下:

service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException

5) destroy
当web服务关闭时则会调用Servlet的destroy方法。其调用方法如下:

destroy()

3.7、Servlet实现CRUD综合案例
1、创建数据库表(表Student:字段:id、name、age、tel、email、description)
2、创建WEB工程StudentCRUD
3、编写VO(View Object)类Student
4、编写数据库工具类
5、编写DAO类
6、编写Servlet类
4、总结
1、了解WEB技术相关概念
2、Tomcat服务器的安装配置
3、理解Servet基本概念与使用、生命周期
4、理解Servet综合案例

5、作业
1、 创建数据库游戏表(games),一个游戏包括以下字段:游戏编号gid,游戏名称gname,游戏种类type,游戏大小size,语言language,创建日期createDate,游戏介绍gdescription。
2、 根据创建的games表,使用Servlet技术实现CRUD功能。

原创粉丝点击