
java web编程(武大).ppt
47页3 Sept. 2008 © Neusoft ConfidentialJAVA WEB 编程周鑫丽Copyright 2008 By Neusoft Group. All rights reserved3 Sept. 2008 Confidential学时:1学时教学方法:讲授ppt +案例演示目标: 本章旨在向学员简要介绍WEB组 件的基础知识,学员应该了解如 下知识: 1)WEB组件作用 2)Servlet组件 3)Jsp组件 4)Tomcat服务器安装和配置3 Sept. 2008 Confidential1.1 web应用开发体系结构•J2EE体系结构3 Sept. 2008 Confidential1.1 web应用开发体系结构(续)•WEB组件 –servlet组件 •Java类,它实现了Java Servlet API接口 •动态产生网页的程序 –Jsp组件 •Jsp页面最终被解释为java servlet类,也是动态产生 网页的 •使用HTML代码、XML代码、和服务器端程序代码 (java脚本),重点在于表示逻辑,而不是业务逻辑3 Sept. 2008 Confidential1.1 web开发体系结构(续)requestresponsexxxx•WEB组件的作用3 Sept. 2008 Confidential1.1 web开发体系结构(续)•WEB组件的作用 –接收客户端的请求数据 –返回给客户端一个响应数据 –在WEB服务器内部对业务逻辑处理3 Sept. 2008 Confidential1. 2 基于MVC的Web应用的结构•MVC设计模式 –MVC •M: Model •V: View •C: Controller –表示逻辑与业务逻辑 –MVC的思想:功能分离3 Sept. 2008 Confidential1. 2 基于MVC的Web应用的结构(续)3 Sept. 2008 Confidential•实现MVC的组件 –Controller •Servlet及普通Java技术 –View •JSP+自定义标签 –Model •普通Java技术 •EJB •其它:Hibernate(持久层)等1. 2 基于MVC的Web应用的结构(续)3 Sept. 2008 Confidential2.1 Servlet组件•Servlet继承体系3 Sept. 2008 Confidential2.1 Servlet组件 (续)•思考 –Servlet是什么? •开发一个Servlet –Java类,继承HttpServlet –使用特定的方法处理HTTP请求 •doGet •doPost –在部署描述符中声明 •Servlet的URI – + 3 Sept. 2008 Confidential•DD:Deployment Descriptor •DD文件 –web-app元素 –servlet元素 •定义servlet –servlet-mapping元素 •为Servlet指定URI2.2 部署描述符文件3 Sept. 2008 Confidential2.3 WEB应用的组成•WEB应用的基本组成 –Java字节码文件,及需要的.jar文件 –部署描述符及其它配置文件 –JSP –HTML等静态内容文件3 Sept. 2008 Confidential2.3 WEB应用的组成(续)•WEB应用的基本目录结构: –WEB应用根目录 •WEB-INF –classes目录:存放应用中的Java字节码文件 –lib目录:存放需要的.jar文件 –web.xml •其它目录:存放JSP及html等静态文件 •WEB-INF目录 –受保护的目录:里面的文件不能被客户直接访问3 Sept. 2008 Confidential2.4 WEB资源的URL•URL与URI –URI: Uniform Resource Identifier –URL:Uniform Resource Locator •标识Internet上一个指定资源的规范名称 •URL的组成:协议://主机名:端口号/path •例如: http://localhost:8081/FirstWeb/demo/hello.html •URL是绝对的,URI可以是相对的 –例如,uri:FirstWeb/demo/hello.html •URL是URI的子集 –一个URL是一个URI,但一个URI不一定是URL3 Sept. 2008 Confidential2.5 WEB应用中WEB资源的URI•静态文件: –//在WEB应用中的相对路径 •JSP –与静态文件相同 •Servlet –在DD文件中分配 –//…3 Sept. 2008 Confidential3.1 JSP技术•JSP:JavaServer Pages •JSP的目标:支持表示逻辑与业务逻辑的分离 –简化表示逻辑的开发 –明确开发人员的职责分工 •表示逻辑: Web开发人员不需掌握Java •业务逻辑:Java开发人员不需使用Web页面 •JSP的理想 –不包含业务逻辑 –不包含Java代码3 Sept. 2008 Confidential3.2 JSP 标签概述•JSP 页面代码的分类 –静态HTML内容 –JSP的脚本元素 –JSP标准动作 –JSP2.0的表达式语言 –JSP的自定义标签3 Sept. 2008 Confidential3.3 JSP的脚本元素•JSP的脚本元素语法 – •脚本元素的分类 –JSP Scriptlet –JSP表达式 –JSP声明 –JSP注释 –JSP指令3 Sept. 2008 Confidential3.4 Java Scriptlet•语法格式–•示例–3 Sept. 2008 Confidential3.5 JSP表达式•语法格式–•示例–3 Sept. 2008 Confidential3.6 JSP的预定义变量变量名数据类型说明requestjavax.servlet.http.HttpServletReq uest当前的请求对象responsejavax.servlet.http.HttpServletRes ponse当前响应对象sessionjavax.servlet.http.HttpSession对应当前请求的客户会话对象outjavax.servlet.jsp.JspWriter对应当前响应对象的输出流applicationjavax.servlet.ServletContextWeb应用对象configjavax.servlet.ServletConfig与当前JSP页面的Servlet对应 的ServletConfig对象3 Sept. 2008 Confidential3.6 JSP的预定义变量(续)变量名数据类型说明pageContextjavax.servlet.jsp.PageContext封装当前请求内此JSP页面信 息的对象pagejava.lang.Object指向页面自身的方式,相当于 this关键字exceptionjava.lang.Throwable其它地方抛出的Throwable对 象,仅当时有效3 Sept. 2008 Confidential3.7 JSP指令•语法格式 – •三种JSP指令 –page –include –taglib •示例 – – –3 Sept. 2008 Confidential3.8 page指令•示例 – •说明 –在翻译时起作用,作用在整个JSP文件 –位置无关,最好写在JSP的最前面 –一个页面可以有多个page指令,但每个属性只允许出现 一次(import属性除外)3 Sept. 2008 Confidential3.8 page指令(续)•page指令的属性 –contentType、pageEncoding –buffer、autoflush –language、extends、 import –info、 isThreadSafe、session –errorPage、isErrorPage3 Sept. 2008 Confidential3.8 page指令(续)•page指令的language属性 –指明页面的脚本语言 –Java是缺省的、当前唯一合法的选择 •page指令的extends属性 –指定此JSP页面生成的Java类的超类 •page指令的import属性 –定义此JSP页面生成的Java类应输入的包 –page指令中唯一允许多次出现的属性 – –默认的导入包:java.lang.*, javax.servlet.*, javax.servlet.http.*, java.servlet.jsp.*3 Sept. 2008 Confidential3.8 page指令(续)•page指令的contentType属性 –定义输出的MIME TYPE,对应响应信息的Content- Type标题 –缺省的是text/html •page指令的pageEncoding属性 –定义输出流的字符编码 –缺省的是ISO-8859-13 Sept. 2008 Confidential3.9 include指令•示例 – •处理 –在JSP主文件被翻译前加入file指定的文件内容,然后 再进行翻译 •file属性 –语法格式: –相对路径是针对当前文件的路径解析3 Sept. 2008 Confidential3.10 taglib指令•uri属性 –uri提供的路径可以找到定义的自定义标签库的tld文件 •prefix属性 –自定义标签名称之前的前缀是由指令的prefix属性指定的。
–名字可以任意,但是如下sun microsystems保留的不能使 用:jsp、jspx、java、javax、servlet、sun、sunw等3 Sept. 2008 Confidential3.10 taglib指令(续)•在JSP中使用Custom Tag –使用taglib指令声明标记库 –使用自定义标记 –示例……Hello Custom Tag3 Sept. 2008 Confidential4.1 Tomcat服务器•主要内容 –安装 –启动服务、停止服务 –测试服务 –目录结构 •修改端口号 •查看用户名、密码3 Sept. 2008 Confidential4.2 Tomcat服务器(续)•Tomcat的目录结构 –bin –common •lib –conf –logs –temp –server •lib –webapps •root –work3 Sept. 2008 Confidential5. 1 案例——用户登录•采用MVC设计模式 –M:用户名和密码的校验 –V:登录页面 –C:根据校验结果进行页面迁移的控制3 Sept. 2008 Confidential5.2 基础组件的完成•登录界面 –用户名、密码框 –登录、reset按钮3 Sept. 2008 Confidential5.3 用户交互•问题 –用户如何输入数据? –数据在HTTP请求信息中的格式 –如何获得用户的输入信息?3 Sept. 2008 Confidential5.4 用户输入•使用Form表单传递数据用户名: 密 码:3 Sept. 2008 Confidential•Form标签: –action:目的URL(相对路径,相对于当前的url) –method:HTTP请求的方法 •Get方法:数据被包含在http请求的URL内 •Post方法:数据被包含在http请求的主体中内 •Input标签 –type :GUI component的类型 –name :参数的名字 –value : 缺省值5.4 用户输入(续)3 Sept. 2008 Confidential•常用的HTML输入组件 –Textfield –Submit。
