JavaWeb应用开发原理与技术第14章PPT格式课件下载.ppt
《JavaWeb应用开发原理与技术第14章PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《JavaWeb应用开发原理与技术第14章PPT格式课件下载.ppt(12页珍藏版)》请在冰豆网上搜索。
或者,
(2)在网页上填写表单,并提交。
在网页上填写表单,并提交。
n不管哪种操作,都是浏览器访问Web服务器过程,过程如下:
l
(1)浏览器根据用户输入的请求在网络上找到相应的浏览器根据用户输入的请求在网络上找到相应的Web服务器;
服务器;
l
(2)Web服务器把这个请求交给文件管理器,后者找到相应的文件服务器把这个请求交给文件管理器,后者找到相应的文件(JSP或或Servlet),加载并执行这个文件。
执行的结果通常是),加载并执行这个文件。
执行的结果通常是HTML文档文档;
l(3)Web服务器把服务器把HTML文档返回给浏览器;
文档返回给浏览器;
l(4)浏览器将浏览器将HTML文档解析成网页显示给用户。
文档解析成网页显示给用户。
n通过学习JSP,我们了解到JSP实际上被JSP引擎(如Tomcat)编译成Servlet,也就是说,JSP实质上还是Servlet。
那么,什么是Servlet呢?
14.1ServletnServlet是SunMicrosystems公司利用Java语言实现类似CGI(公共网关接口)的服务器端编程技术。
Servlet是Java语言编写的、运行在Web服务器端的程序。
能够接收客户端的请求,目的是与客户端进行交互,产生动态Web内容。
nServlet作为J2EE的三大基础技术(JSP,Servlet和JavaBean)之一,是目前流行的开发企业Web应用的轻量级框架(Struts、Spring和Hibernate)的技术基础。
nServlet作为平台独立的Java类,必须运行在支持Java技术的Web服务器中。
nServlet的优势主要体现在它能利用Java语言的所有的优点,能访问Java平台提供的大量的API。
故在Web应用中,Servlet主要用于流程的控制,页面生成则由其衍生技术JSP来完成。
14.1ServletnServlet实际上是一个Java类,通常包括3类方法:
lInit()方法,用于初始化;
方法,用于初始化;
ldestroy()方法,用于释放资源;
方法,用于释放资源;
lService类方法,服务类方法用于处理用户的请求、并作出响应。
包括类方法,服务类方法用于处理用户的请求、并作出响应。
包括doGet()和和doPost()方法,方法,doGet()响应用户响应用户get方式请求,方式请求,doPost()响应用响应用户户post方式请求方式请求(通常表单提交使用通常表单提交使用post方式,超链接使用方式,超链接使用get方式方式)。
nServlet的运行原理:
14.1Servletn第一个Servlet程序:
l1.Servlet程序的编辑(程序的编辑(HelloServlet.java,P199页)页)l2.编译成编译成HelloServlet.class类文件。
需要导入包类文件。
需要导入包servlet-api.jar和和jsp-api.jar。
有两种解决方法:
(。
(1)将)将Tomcat6.0lib下的此两个包复制下的此两个包复制到到java安装目录下的安装目录下的jre1.6.0libext文件夹中;
(文件夹中;
(2)设置环境变量:
)设置环境变量:
右击右击“我的电脑我的电脑”-系统属性系统属性-环境变量环境变量-用户变量用户变量classpath-编辑,编辑,加入加入D:
Tomcat6libservlet-api.jar;
D:
Tomcat6libjsp-api.jarl3.部署文件。
在部署文件。
在Tomcat安装目录下的安装目录下的webapps文件夹下创建目录文件夹下创建目录helloServlet子目录,然后在该目录下创建子目录,然后在该目录下创建WEB-INF目录,接着在目录,接着在WEB-INF目录下创建目录下创建classes和和lib子目录。
在子目录。
在classes目录下要创建文目录下要创建文件夹件夹common,将,将HelloServlet.class文件拷贝其下。
文件拷贝其下。
l4.编写编写web.xml的配置。
的配置。
l5.最后就是运行实现,在浏览器中最后就是运行实现,在浏览器中输入输入:
http:
/127.0.0.1:
8080/helloServlet/helloworld.jsp14.1Servletn过滤器FilterlFilter主要功能在于它能通过某种拦截机制对请求进行预处理或对响应主要功能在于它能通过某种拦截机制对请求进行预处理或对响应进行后处理,藉此修改或调整请求和响应的资源。
进行后处理,藉此修改或调整请求和响应的资源。
lFilter常用来完成诸如认证处理、日志、图像格式转换或加密等功能。
常用来完成诸如认证处理、日志、图像格式转换或加密等功能。
lFilter的创建必须实现的创建必须实现javax.servlet.Filter接口并提供一个无参构造函接口并提供一个无参构造函数。
数。
l例如:
上例中例如:
上例中helloworld.jsp的编码为的编码为“UTF-8”,由于采用的字符集可,由于采用的字符集可能不同,输入中文提交后会输出乱码。
下面就通过能不同,输入中文提交后会输出乱码。
下面就通过Filter来实现将所有来实现将所有请求的编码方式设为请求的编码方式设为“UTF-8”以支持中文的正确显示,主要代码如下以支持中文的正确显示,主要代码如下所示(所示(EncodingFilter.java)和)和web.xml文件文件P202页页l最后就是运行实现,在浏览器中最后就是运行实现,在浏览器中输入输入:
8080/helloServlet1/helloworld.jsp14.2MVC模式模式nMVC(Model-View-Controller,模型视图控制器模式)是软件工程中的一种软件架构模式。
MVC模式将整个应用系统分为三个基本部分:
模型(Model)、视图(View)和控制器(Controller)。
nMVC模式的结构如图所示。
MVC14.3Model2n通常将Web应用的架构根据MVC模式划分为三个层次:
l1.视图层:
视图层包括前端的视图层:
视图层包括前端的HTML、XML、JSP及及Applet等,主要等,主要充当用户的操作接口,负责数据的输入及结果的输出。
该层的功能对充当用户的操作接口,负责数据的输入及结果的输出。
该层的功能对应于应于MVC模式中的视图部分。
模式中的视图部分。
l2.控制层:
控制层的主要工作是控制整个应用的流程。
控制层将视图控制层:
控制层将视图层提交的数据,交付给业务逻辑层处理,并将结果返回至视图层。
控层提交的数据,交付给业务逻辑层处理,并将结果返回至视图层。
控制层的角色是介于视图层和业务逻辑层之中,该层的功能相当于制层的角色是介于视图层和业务逻辑层之中,该层的功能相当于MVC模式中的控制器部分。
模式中的控制器部分。
l3.业务逻辑层:
业务逻辑层是应用的核心部分,它的主要功能包括:
业务逻辑层:
数据处理、数据的维护及业务逻辑的实现。
该层的功能对应于数据处理、数据的维护及业务逻辑的实现。
该层的功能对应于MVC模模式中的模型部分。
式中的模型部分。
n在Model2中,JSP负责数据显示逻辑,JavaBean负责业务逻辑,Servlet负责流程控制。
lServlet不参加显示工作,只负责产生中间数据,并将这些数据以不参加显示工作,只负责产生中间数据,并将这些数据以JavaBean的形式存储在的形式存储在session或其它对象中。
或其它对象中。
14.4Model2应用应用n通过Model2来开发一个简单的、实现用户登录的小型系统,以阐述如何将Model2应用至Web应用开发中。
n用户登录系统可以分为三个模块,各个模块的主要功能如下:
l用户登录模块:
为系统的主界面。
用户需要输入用户名和密码来登录用户登录模块:
用户需要输入用户名和密码来登录系统,模块应能根据输入信息,查找到用户所对应角色,并根据角色系统,模块应能根据输入信息,查找到用户所对应角色,并根据角色分别引导用户进入管理员或普通用户页面。
在系统主界面中,还包含分别引导用户进入管理员或普通用户页面。
在系统主界面中,还包含了注册链接,引导用户访问注册页面。
了注册链接,引导用户访问注册页面。
l用户注册模块:
用于注册一个新用户,要求用户输入用户名、密码、用户注册模块:
用于注册一个新用户,要求用户输入用户名、密码、性别、邮箱及年龄等信息,系统自动将新用户的角色设置为普通用户。
性别、邮箱及年龄等信息,系统自动将新用户的角色设置为普通用户。
注册过程中必须保证输入的合法性。
l公共模块:
主要用于页面中文信息的正确显示。
公共模块:
14.4Model2应用应用n系统使用基于MVC模式的Model2开发方式,将用户登录模块和注册模块划分为三层:
视图层、控制层与业务逻辑层,n使用JSP技术来实现模块的页面显示:
l包括包括index.jsp;
register.jsp;
regsuccess.jsp;
userPage.jsp;
manageUser.jspn使用Servlet技术来实现系统的流程控制:
l包括包括LoginServlet.java;
RegisterServlet.javan使用JavaBean组件来实现业务实体对象及业务处理逻辑:
l包括包括User.java;
UserDAO.java;
UserDAOImpl.javan而公共模块则用一个支持中文编码的Filter来实现:
l包括包括EncodingFilter.javanWeb应用的配置文件web.xml对使用的Servlet进行了配置。