数据库系统原理课程设计实验环节.ppt
数据库系统原理课程设计实验环节 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望Web数据库应用开发基础知识n两层客户/服务器体系结构 n三层客户/服务器体系结构 n基于Java的数据库应用两层客户/服务器(C/S)体系结构 两层客户/服务器(C/S)体系结构业务逻辑和数据呈现都在客户端n胖客户n升级复杂数据库服务器 提供企业数据的集成和 管理三层客户/服务器(B/S)体系结构三层客户/服务器(B/S)体系结构客户端仅仅运行用户界面n浏览器(Web browser)用于数据的呈现 瘦客户应用服务器运行业务逻辑和数据处理.n应用服务器 Web server 数据库服务器提供企业数据的集成和管理.常用的B/S技术CGI(通用网关接口)n功能 处理用户请求(requests)访问数据库n主要优点wCGI程序可以用程序可以用C,C+,或或Perl等开发等开发 语言无关性语言无关性w采用编译语言采用编译语言.执行速度快执行速度快w提供地址空间保护提供地址空间保护 不会影响不会影响Web Servern主要缺点 w由于Http请求的无状态性,不支持跨多个请求的事务。w常用进程处理请求 负载重w不支持数据库连接池w安全性较差常用的B/S技术Web服务器脚本nWeb服务器使用脚本语言(PHP,Perl,Python)来扩展能力n相对CGI的优点w不需要为每个用户请求创建进程不需要为每个用户请求创建进程 负荷轻负荷轻w可以与可以与HTML混合编码混合编码 开发快开发快wAllow database connection pooling.支持数支持数据库连接池据库连接池n缺点缺点w不提供地址空间保护不提供地址空间保护 脚本可能使整个服务器崩溃脚本可能使整个服务器崩溃w比比CGI慢慢基于Java的数据应用Java成为Web计算标准n平台无关 类型安全 面向对象 编译代码小 安全性好n在Web应用中Java可用于编写JSP(Java Server Pages)和 Servlets服务器应用nServlet Container(容器)wJSP和Servlets必须在Servlet Container(如Apache Tomcat)下运行HTTP简介HTTP 定义客户端(如IE)如何向 Web 服务器请求文件,以及Web server如何向客户端传回文件nGet request 示例GET/path/file.html HTTP/1.0 From: User-Agent:HTTPTool/1.0 blank line here HTML表单(Forms)HTML forms提供在Web页面中Web客户端向Web服务器送数据的方法n表单的html标签.指定Web服务器端Handler指定传送请求的方法HTML表单(Forms)常用的表单元素nText Input Boxes 文本输入框nText Areas 文本区(多行)nPassword Input Boxes 密码输入框nHidden Fields 隐藏字段nFile Input 上传文件nRadio Buttons 无线按钮nCheck Boxes 复选框nPush Buttons 按钮 Reset按钮 Submit按钮HTML表单(Forms)示例:User Login Please input your userID and password!UserID:Password:显示效果GET与POST方法表单数据传送可以用GET或POST方法,其请求在对应的Servlet中分别由doGet()和doPost()方法处理。推荐POST方法GET与POST主要区别在与如何传送参数 nGET方法把参数放在URL.whttp:/ GET与POST方法GET方法的request示例GET/path/program.cgi?name=Vince HTTP/1.0 From: User-Agent:HTTPTool/1.0 blank line hereGET与POST方法POST方法的request示例POST/path/program.cgi HTTP/1.0 From: User-Agent:HTTPTool/1.0 Content-Type:application/x-www-form-urlencoded Content-Length:32 name=Vince创建简单的Web应用Eclipse下创建新java project,如test。在test下新建lib目录,复制Tomcat的commonlib目录下servlet.jar文件,并将该目录从build path中Exclude(移出)。在test的properties/java build path/Libraries下点击Add JARs,选定2中复制的servlet.jar。创建简单的Web应用在test下新建web目录,将该目录从build path中Exclude。修改test的properties/java build path下的Default output folder为test/web/WEB-INF/classes。以后servlet class放在default package(直接放在test目录下),JSP放在web下。n测试时,启动Tomcat。JSP程序的URL为:http:/localhost:8080/test/tt.jsp之类;n Servlet的URL为:http:/localhost:8080/test/servlet/HelloServlet之类。A Hello Servlet Example 1import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;A Hello Servlet Example 2public class HelloWorldExample extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException response.setContentType(text/html);PrintWriter out=response.getWriter();A Hello Servlet Example out.println();out.println();out.println(Hello World!);out.println();out.println();out.println(Hello World!);out.println();out.println();A hello JSP Example:helloJSP.jspHello,JSP Practice:熟悉Tomcat的web.xml和server.xml的配置熟悉Eclipse,完成简单的Servlet和JSP程序。测试。