11JAVAWEB编程22第一章:WEB组件作用目标:本章旨在向学员介绍:1)2)时间:学时教学方法:331.1web应用开发体系结构•J2EE体系结构441.1web应用开发体系结构(续)•WEB组件–servlet组件•Java类,它实现了JavaServletAPI接口。•动态产生网页的程序–Jsp组件•Jsp页面最终被解释为javaservlet类,也是动态产生网页的。•使用HTML代码、XML代码、和服务器端程序代码(java脚本),重点在于表示逻辑,而不是业务逻辑551.1web开发体系结构(续)requestresponsexxxx•WEB组件的作用661.1web开发体系结构(续)•WEB组件的作用–接收客户端的请求数据–返回给客户端一个响应数据–在WEB服务器内部对业务逻辑进行处理771.2基于MVC的Web应用的结构(掌握)•MVC设计模式–MVC:•Model:模型•View:视图•Controller:控制器–好处:•将表示逻辑与业务逻辑分离•可扩展性、可重用性好、为了变化而设计的思想。并且有利于分工合作。881.2基于MVC的Web应用的结构(续)99•实现MVC的组件–Controller•Servlet及普通Java技术–View•JSP+自定义标签–Model•普通Java技术•EJB•其它:Hibernate(持久层)等1.2基于MVC的Web应用的结构(续)1010第二章:Servlet组件目标:本章旨在向学员介绍:1)2)时间:学时教学方法:11112.1Servlet组件•Servlet继承体系12122.1Servlet组件(续)•Servlet是什么?–用Java编写的服务器端程序•开发一个Servlet–1)Java类,继承HttpServlet–2)使用特定的方法处理HTTP请求•doGet•doPost–3)在部署描述符中声明•Servlet的URI(访问方式)–ContextRoot+ServletMapping1313•DD:DeploymentDescriptor–web.xml文件•DD文件–web-app元素–servlet元素•定义servlet–servlet-mapping元素•为servlet指定URI2.2部署描述符文件14142.2部署描述符文件(续)名称一致对应我们写的代码对应页面的URI参见工程《JavaWebSix》中的com.neusoft.ttc.servlet.HelloServlet访问路径:第三章:Jsp组件目标:本章旨在向学员介绍:1)2)时间:学时教学方法:16163.1JSP技术•JSP:JavaServerPages•JSP的目标:支持表示逻辑与业务逻辑的分离–简化表示逻辑的开发–明确开发人员的职责分工•表示逻辑:Web开发人员不需掌握Java•业务逻辑:Java开发人员不需使用Web页面•JSP的理想–不包含业务逻辑–不包含Java代码17173.2JSP标签概述•JSP页面代码的分类–静态HTML内容–JSP的脚本元素–JSP标准动作–JSP2.0的表达式语言–JSP的自定义标签18183.3JSP的脚本元素•JSP的脚本元素语法–%scriptingelement%•脚本元素的分类–JSPScriptlet%javacode%–JSP表达式%=expression%–JSP声明%!declaration%–JSP注释%--comment--%–JSP指令%@directive%19193.4JavaScriptlet•语法格式–%JavaCode%•示例–%Stringuser=request.getParameter(“name”);%20203.5JSP表达式•语法格式–%=Java表达式%•示例–%=newjava.util.Date()%213.6JSP的预定义变量变量名数据类型说明requestjavax.servlet.http.HttpServletRequest当前的请求对象responsejavax.servlet.http.HttpServletResponse当前响应对象sessionjavax.servlet.http.HttpSession对应当前请求的客户会话对象outjavax.servlet.jsp.JspWriter对应当前响应对象的输出流applicationjavax.servlet.ServletContextWeb应用对象configjavax.servlet.ServletConfig与当前JSP页面的Servlet对应的ServletConfig对象223.6JSP的预定义变量(续)变量名数据类型说明pageContextjavax.servlet.jsp.PageContext封装当前请求内此JSP页面信息的对象pagejava.lang.Object指向页面自身的方式,相当于this关键字exceptionjava.lang.Throwable其它地方抛出的Throwable对象,仅当%@pageisErrorPage=”True”%时有效23233.7JSP指令•语法格式–%@DirectiveName[attr=”value”]*%•三种JSP指令–page–include–taglib•示例–%@pagesession=”false”%–%@includefile=“menu/banner.jsp”%–%@taglibprefix=“training”uri=“”%24243.8page指令•示例(掌握)–%@pageimport=”java.util.Date”%•说明–在翻译时起作用,作用在整个JSP文件–位置无关,最好写在JSP的最前面–一个页面可以有多个page指令,但每个属性只允许出现一次(import属性除外)25253.8page指令(续)•page指令的属性–contentType、pageEncoding–buffer、autoflush–language、extends、import–info、isThreadSafe、session–errorPage、isErrorPage26263.8page指令(续)•page指令的language属性–指明页面的脚本语言–Java是缺省的、当前唯一合法的选择•page指令的extends属性–指定此JSP页面生成的Java类的超类•page指令的import属性–定义此JSP页面生成的Java类应输入的包–page指令中唯一允许多次出现的属性–%@pageimport=“java.util.*,java.text.*”%–默认的导入包:java.lang.*,javax.servlet.*,javax.servlet.http.*,java.servlet.jsp.*27273.8page指令(续)•page指令的contentType属性–定义输出的MIMETYPE,对应响应信息的Content-Type标题–缺省的是text/html•page指令的pageEncoding属性–定义输出流的字符编码–缺省的是ISO-8859-1(ISO-8859-1不支持中文,我们写代码是通常设置为utf-8)28283.9include指令•示例–%@includefile=“navigation.jsp”%–可以用来引入公用部分•处理–在JSP主文件被翻译前加入file指定的文件内容,然后再进行翻译•file属性–语法格式:%@includefile=“文件相对路径”%–相对路径是针对当前文件的路径解析29293.10taglib指令•uri属性–uri提供的路径可以找到定义的自定义标签库的tld文件•prefix属性–自定义标签名称之前的前缀是由指令的prefix属性指定的。–名字可以任意,但是如下sunmicrosystems保留的不能使用:jsp、jspx、java、javax、servlet、sun、sunw等。30303.10taglib指令(续)•在JSP中使用CustomTag–使用taglib指令声明标记库–使用自定义标记–示例%@tagliburi=/WEB-INF/c.tldprefix=c“%……c:iftest=trueh1HelloCustomTag/h1/c:if3131第四章:Tomcat服务器安装和配置目标:本章旨在向学员介绍:1)2)时间:学时教学方法:32324.1Tomcat服务器•主要内容–安装–启动服务、停止服务–测试服务–目录结构•修改端口号•查看用户名、密码33334.2Tomcat服务器(续)•Tomcat的目录结构–bin–common•lib–conf–logs–temp–server•lib–webapps•root–work34344.3WEB应用的组成•WEB应用的基本组成–Java字节码文件,及需要的.jar文件–部署描述符及其它配置文件–JSP–HTML等静态内容文件35354.3WEB应用的组成(续)•WEB应用的基本目录结构:–WEB应用根目录•WEB-INF–classes目录:存放应用中的Java字节码文件–lib目录:存放需要的.jar文件–web.xml•其它目录:存放JSP及html等静态文件•WEB-INF目录–受保护的目录:里面的文件不能被客户直接访问36364.4WEB资源的URL•URL与URI–URI:UniformResourceIdentifier–URL:UniformResourceLocator•标识Internet上一个指定资源的规范名称•URL的组成:协议://主机名:端口号/path•例如:•URL是绝对的,URI可以是相对的–例如,uri:first/hello.html•URL是URI的子集–一个URL是一个URI,但一个URI不一定是URL37374.5WEB应用中WEB资源的URI•静态文件:–/Contextroot/在WEB应用中的相对路径•JSP–与静态文件相同•Servlet–在DD文件中分配servlet-mapping–/Contextroot/url-pattern3838第五章:Web应用实例目标:本章旨在向学员介绍:1)2)时间:学时教学方法:39395.1案例——用户登录•采用MVC设计模式–M:用户名和密码的校验–V:登录页面–C:根据校验结果进行页面迁移的控制40405.2基础组件的完成•登录界面–用户名、密码框–登录、reset按钮41415.3用户交互•问题–用户如何输入数据?–数据在HTTP请求信息中的格式–如何获得用户的输入信息?42425.4用户输入•使用Form表单传递数据formmethod=postaction=“/loginServlet用户名:inputtype=textname=userName/密码:inputtype=passwordname=password/inputtype=submitvalue=login/inputtype=resetvalue=reset//form4343•form标签:–action:目的URL(相对路径,相对于当前的url)–method:HTTP请求的方法•Get方法:数据被包含在http请求的URL内•Post方法:数据被包含在http请求的主体中内•input标签–type:GUIcomponent的类型–name:参数的名字–value:缺省值5.4用户输入(续)4444•常用的HTML输入组件–Textfield–Submitbutton–Resetbutt