J2EE开发基础培训银海软件开发中心殷飞系统架构师2006年7月培训目标了解XML文件结构掌握简单的网页和javascript函数编写掌握JSP编译运行机理了解J2EEWeb应用目录结构,常用技术掌握request/response/session等概念能够使用JSP、Servlet、struts编写应用了解MVC模式了解filter的运行机理了解taglib的运行机理了解B/S结构应用开发跟C/S开发的差异培训计划以应用的完善为主线技术点引入步骤HtmlJavascriptJSPServletStrutsFilter/TaglibHTML网页只是简单的文本文件浏览器对HTML进行解释执行HTML是一种不严格的标记语言标签不配对浏览器也可能会支持HTML标记不区分大小写HTML文件可以HTM或HTML为扩展名HTML页面框架htmlheadtitlebody常用HTML标记meta-元数据p-段落font-字体table/tr/td-表格a-超链接br-换行表单-form常用的表单输入控件input-输入控件select-选择控件button-按钮submit-提交按钮reset-重置按钮提交的是表单而不是页面一个HTML页面可以有多个表单javascript浏览器是javascript的解释执行环境javascript区分大小写javascript变量为弱类型html页面的几个常用对象documentwindowforminputhtml控件常用属性和事件readOnly:输入控件是否只读disabled:输入控件是否被disabledvalue:获取或设置输入控件的值onclick:输入控件或按钮被点击时触发onchange:输入控件的值改变时触发onfocus:输入控件或按钮获得焦点时触发练习1创建新增开发人员信息页面录入控件全部采用text录入控件name使用class中的成员变量名称在提交数据之前添加javascript数据校验所有属性都不能为空性别只能为男和女JSP声明JSP元数据:%@page%contentType:内容类型import:引入包包含公用文件:%@includefile%服务器端代码嵌入:%嵌入java代码%Jsp在服务端执行,输出HTML,再返回给客户端浏览器,由浏览器解释HTML获取提交的表单数据:request.getParameter表单数据提交的两种方式Get表单数据在url中支持的数据量较小Post表单数据不在url中支持的数据量较大Get方式提交表单数据和在超链接url中包含参数没有任何区别location?param1=value1¶m2=value2练习2创建保存开发人员信息页面使用request.getParameter获取表单参数转换字符集调用已有的Dao保存数据到数据库中Servlet基类-HttpServlet覆写service方法使用response.getWriter()直接输出HTMLforward到JSP上,由JSP生成HTMLweb.xml配置servlet:定义servletservlet-nameservlet-classinit-paramparam-nameparam-valueservlet-mapping:定义url映射servlet-nameurl-pattern服务器端的页面跳转forward把处理请求直接转发到指定的urlredirect把要跳转的url发给客户端浏览器,由浏览器发起访问请求练习3把检查参数和保存数据的操作移到servlet在servlet里面根据保存成功与否转向到不同的jsp显示成功或失败JSP与ServletJSP在运行时会被编译成为servlet源文件,再编译为class执行JSP适合于做界面通常在Servlet对表单参数进行处理,并调用业务逻辑进行处理,再把需展现数据存入request中,根据需要forward到相应的JSP上去JSP不直接调用业务逻辑request/responserequest代表一次客户端请求在一次请求期间控制流可以在Servlet和JSP之间进行转发getParameter函数用于获取表单参数get/setAttribute函数用于在request中存放和传递数据response代表服务器端对请求的响应setContentType设定输出内容类型getWriter用于向客户端输出内容session通过request.getSession函数获取到session我们需要session-有些数据需要在多次交互之间保存,比如认证信息session机制需要判断发生多次交互的是否同一个客户端http协议是无状态协议,而不是常连接服务器分配一个id给客户端浏览器,并通过该id来确定是否同一个sessionsessionid可能在url中或cookie中session通常有个超时时间服务器端不能主动向客户端发起请求MVC模式M-Model,领域模型层C-Controller,控制器V-Viewer,界面展示层XML严格的标记语言开始标记和结束标记必须配套区分大小写内容非常的结构化常用于数据传输和配置文件struts成熟的第三方开源项目充当Controller的角色Controller的职责针对客户端提交的表单数据调用相应的业务处理根据业务处理的结果跳转到相应的展示页面struts实现的功能表单数据的收集跳转页面的管理使用struts在web.xml中添加servlet配置写Action类写ActionForm类在struts-config.xml中添加form-bean配置在struts-config.xml中添加action/forward配置练习4把练习3中servlet的控制器功能使用struts进行替代filter过滤器例字符集转换过滤器HTTP请求返回认证过滤器struts登陆界面认证未通过filterfilter先于servlet执行,可以对提交的表单数据先行进行处理,甚至可以选择不交给下一个servlet或filter处理filter后于servlet返回,可以对返回数据进行再加工filter通常完成相对较简单,切面较为明显的工作taglibTaglib是封装界面元素的classTaglib是J2EE标准的一部分Taglib是一个接口Taglib的开发TaglibclassTld文件Taglib的使用Web.xml和jsp里面声明Tld文件在jsp中使用