资源预览内容
第1页 / 共75页
第2页 / 共75页
第3页 / 共75页
第4页 / 共75页
第5页 / 共75页
第6页 / 共75页
第7页 / 共75页
第8页 / 共75页
第9页 / 共75页
第10页 / 共75页
亲,该文档总共75页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
B/S系统设计及相关技术JSP服务器端技术服务器端的任务 接受客户端的请求 将合适的内容发送给客户代理浏览器 HTML XML JS CSS如何接收响应 TCP协议 Socket协议 HTTP协议 侦听80端口 Web服务器 微软方案: IIS ASP ASP .NET ISAPI/NSAPI Dynamic Link Library Java方案: SDK J2SE/J2ME/J2EE JSP 容器 Apache TomcatJava的B/S包括的主要内容 JSP 负责生成页面 表达式语言 自定义标签 Servlet 负责进行控制 Java Bean/EJB 负责业务逻辑 XML 负责配置与数据传输 JDBC负责连接数据库JSP预备式脚本语言 JSP/ASP都是脚本语言 脚本语言是在HTML之中嵌入部分脚本 服务器端把脚本执行后输出,非脚本部分 直接输出 JSP中以标记对作为脚本开始和 结束的标志 JSP大小写敏感!JSP示例-奇怪的嵌套JSP示例”); if (h 早上好下午好晚上好JSP示例-等价写法JSP示例”); if (hJSP请求响应过程nJSP容器(Web Server)接收到对JSP页面 的请求 n如果对应的Class文件已经存在,则5,否则3 n将JSP翻译成Java Servlet源码(.Java) n将Java Servlet源码伪编译成Class文件 (.class) n加载运行Class文件 n执行结果发送给浏览器端三种注释 JSP注释 Java文件中不存在,浏览器页面更不存在 Java注释 Java文件中存在,浏览器页面不存在 HTML注释 浏览器页面中存在, Java文件中当然存在JSP基本元素 元素 指令元素 提供全局信息 独立于请求 不产生页面输出 为翻译提供信息 行为元素 为请求处理提供信息 脚本元素 在模板数据、行为元素中嵌入 模板数据 不经过JSP容器处理,直接发往客户端JSP初级第一重基本脚本元素基本脚本元素 声明 declarations 声明全局变量以及局部变量 脚本片段 scriptlets 执行代码 表达式 expressions 输出内容声明 全局变量声明 局部变量声明 函数声明 =3”; %脚本片段 可以包含任何符合Java规范的代码 out对象的输出 按照顺序出现在送往客户 代理的HTML流中。 同一个转换单元的脚本片段,按顺序组合 在一起,必须形成有效的语句序列表达式 脚本片段通过out.println来产生输出流 大量的out.println导致易读性变差 ”) out.println(“变量i的值是:”+i); % 使用,与模板元素配合。变量i的值是:%转义 “” % % 错误处理页面 输出错误信息 getLocalizedMessage() getMessage() toString() 代码跟踪 printStackTrace第二重达到的境界 使用request、response、Cookie对象, 可以与客户端人机交互了 使用Session、Application,可以保存长 期信息了 可以方便了异常处理了 动态网页基本上都能实现了JSP初级第三重指令及行为元素指令元素 page 大部分属性定义都只能在每个转换单元中 出现一次pagenlanguage属性:定义使用的脚本语言,目 前取值仅有java,为将来扩展用ninfo 属性:定义页面的描述信息 不直接使 用。 nimport属性 声明导入页面中使用的Java包 可以多次 定义pagenpage属性 指定页面的字符编码格式ncontentType属性 指定浏览器返回的数据类型 text/html nisErrorPage 此页面是否是一个错误处理页面 nerrorPage 指定此页面的错误处理页面pagensession属性 是否使用Session true/false nisELIgnored 是否忽略EL表达式 nbuffer属性 指定缓冲区大小 nautoFlase 缓冲区溢出时是否自动发送指令元素 taglib JSP2开始提供标准标签以及自定义标签 taglib就是声明如何寻找所使用标签前缀 的标签库 标签库可以位于同一台服务器的不同目录 下 标签库可以位于另一台服务器上指令元素 include 读入引用的公共文件行为元素 行为元素、JSP标签、JSP标记 分为标准行为与自定义行为(自定义标签) 标准行为的前缀是 jsp,无需声明 使用XML语法格式 标签由前缀与行为构成 表现形式: 内容 基本标准行为元素 在JSP中,一共有20中标准行为元素 基本元素6种 用于JavaBean的3种 用于JSP文档的6种 用于XML的3种 用于标记文件的2种标准行为元素 参数设定 和是用来为其他的标 签设置参数值的标签 使用形式: 使用形式:标准行为元素 包含 编译时包含(静态)相当于include指令元素 运行时包含(动态)将参数传入另一个JSP页面,将 页面的执行结果包含进来。 动态包含示例:公共页面GL.jsp 当前结果:include和param示例 文件a.jsp这是文件A 文件b.jsp这是文件A其余部分与文件A相同标准行为元素 HTML对象 HTML中,仍然可以嵌入Bean Applet等对象 HTML嵌入对象是使用object 或 embed标签 的 是帮助生成这些html标签的元素 定义了如果浏览器端不支持嵌 入对象,那么显示什么内容。plugin和fallback使用形式第三重达到的境界 page 指令的使用完善了对JSP环境的控 制 行为元素使得一些代码清晰直观了,将配 置与代码相剥离。 可以说“会使用JSP开发B/S系统了”JSP中级第四重表达式语言表达式语言 $表达式语言 目的:简单 变量访问形式自由 隐式变量类型转换 通过隐含范围对象简化属性操作 表现形式清晰表达式语言 变量 数据存储采用字符串下标“”与点符 . 两种形式 ,且两形式可以混用。 如果包含特殊字符的情况下,只能使用字符串 下标形式。 变量范围可以省略,如果省略的话,依据 page-request-session-application 的顺序进行查找。 字符串下标形式的字符串本身也可以是一个变 量。 表达式变量的值直接输出到HTML流表达式语言 变量举例 $sessionScope.user.name $sessionScope.user“name” $user.name $sessionScope.userdata表达式语言 运算 数学运算 () + - * / div % mod E 关系运算 = != = eq ne lt gt le ge 逻辑运算 & | ! and or not empty表达式语言 类型转换 在EL中,隐含实现了变量类型转换,并且 基本上将Null转化为“”、0等,避免了错误 。但同时带来了编译隐患。 例如 $true $“12E3”+0.0 $null $null+0与范围有关的隐含对象 pageScope当前页內变量 requestScope请求有效 sessionScope会话有效 applicationScope应用有效与输入有关的隐含对象 param.name paramValues.name 例如 输入文件 ask.html姓名: 爱好: 读书 电影 输出文件 out.jsp 姓名:$param.username 兴趣:$paramValues.habit0、$paramValues.habit1与客户要求有关的隐含对象 pageContext 比较常用的属性有: $pageContext.request.queryString请求的参数字符串 $pageContext.request.requestURL 请求的URL $pageContext.request.method取得请求的方法 $pageContext.request.protocol协议及版本 $pageContext.request.remoteAddr用户IP地址 $pageContext.session.newsession是否新其它隐含对象 cookie 取得Cookie的值 $cookie.username header以及headerValues 取得HTML头中的内容 $header“User-Agent” initParam 在web.xml中设置的Web的环境参数EL 自定义函数 编写Java类文件 public static 修改标记库描述文件 在JSTL及自定义标签中具体介绍第四重达到的境界 使用EL表达式 工作轻松了 代码清晰了JSP中级第五重JSTLJSTL 目的 标签的目的 增强可读性、可维护性 业务逻辑与HTML文档相剥离 开发人员与Web设计人员相分离 JSP Standard Tag Library 标签的实现 jar 标签的描述 tld JSTL 的内容 核心标签库 SQL标签库 I18N标签库 XML标签库 函数标签库JSP中级第六重JDBC使用JSTL的SQL标签库 使用JDBC Connection Statement ResultSetJSP高级第七重数据独立 使用XMLXML标记库 核心标记 解析文档 文档转存到变量 显示数据 流程控制标记 if choose when otherwise forEach 转换标记 XSLT template transform paramJSP高级第八重控制独立 使用Servlet能够多做什么? 过滤器 监听器JSP高级第九重业务逻辑独立 使用JavaBean和自定义标签库Java Bean 遵循约定的类 实现 java.io.Seralizable 所有属性私有 公有的无参构造函数 使用公有的,无值的set+属性名来命名赋 值方法使用Java Bean封装业务逻辑 安全 完整 不够清晰使用自定义标签 代码清晰 标签的实现 标签的声明JSP第十重大象无形 Web的数据验证问题 Web的国际化问题 JSP的调试问题 JSP的部署 应用JSP框架 J2EE体系中的JSP JSP的安全问题 JSP的性能问题 Web的负载均衡问题 开发方法与工具 Ant CVS JUnit HTTPUnit 技乃艺之末
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号