JAVA WEB开发教程 第四章 JSP技术基础知识.ppt

上传人:max****ui 文档编号:7260603 上传时间:2020-03-17 格式:PPT 页数:54 大小:373KB
返回 下载 相关 举报
JAVA WEB开发教程 第四章 JSP技术基础知识.ppt_第1页
第1页 / 共54页
JAVA WEB开发教程 第四章 JSP技术基础知识.ppt_第2页
第2页 / 共54页
JAVA WEB开发教程 第四章 JSP技术基础知识.ppt_第3页
第3页 / 共54页
点击查看更多>>
资源描述
第四章JSP技术基础知识 JSP JavaServerPage 是SUN公司开发的一种服务器端的脚本语言 自从1999年推出以来 逐步发展为开发Web应用一项重要技术 JSP可以嵌套在HTML中 而且支持多个操作系统平台 一个用JSP开发的Web应用系统 不用做什么改动就可以在不同的操作系统中运行 在本章接下来的内容中 首先将简单介绍JSP的运行原理和基本语法 然后重点介绍在实际开发过程中技巧和方法 4 1JSP简介 JSP本质上就是把Java代码嵌套到HTML中 然后经过JSP容器的编译执行 可以根据这些动态代码的运行结果生成对应的HTML代码 从而可以在客户端的浏览器中正常显示 在这个小节中将介绍JSP的运行原理 JSP的优点和其运行环境的搭建 4 1 1运行原理 如果JSP页面是第一次被请求运行 服务器的JSP编译器会生成JSP页面对应的Java代码 并且编译成类文件 当服务器再次收到对这个JSP页面请求的时候 会判断这个JSP页面是否被修改过 如果被修改过就会重新生成Java代码并且重新编译 而且服务器中的垃圾回收方法会把没用的类文件删除 如果没有被修改 服务器就会直接调用以前已经编译过的类文件 具体内容请参照书 4 1 2选择JSP的原因 在Web应用开发中 可供选择的动态页面语言技术有很多 例如PHP ASP JSP等 在这些动态页面语言中 JSP凭借其自身的优点成为开发人员最喜欢的语言之一 下面列出的几条就是开发人员钟爱JSP的重要原因 4 1 3环境搭建 要运行JSP程序 必需为其提供一个JSP容器 也就是需要一个Web服务器 支持JSP的服务器非常多 Tomcat Resin Weblogic WebSphere等对JSP的支持都非常好 但是由于Weblogic和WebSphere都是功能非常强大的重量级服务器 而且价格昂贵 对计算机的硬件配置要求也比较高 所以在一般情况下 如果只用到JSP的技术 是没有必要选择这两个服务器的 具体内容请参照书 4 2JSP基本语法 本书的重点内容是介绍基于JSP的Web开发技术 对于Java的语法在此不做详细的介绍 这里所涉及JSP语法指的是在JSP中所特有的语法规范 在接下来的章节中将假设读者已经了解Java的基本语法 只介绍JSP的结构 变量声名 表达式 动作 指令等JSP的特有语法 如对Java语法有疑问的读者可以参考相关语法书籍 4 3程序结构 JSP就是把Java代码嵌套在HTML中 所以JSP程序的结构可以分为两大部分 一部分是静态的HTML代码 另一部分是动态的Java代码和JSP自身的标签和指令 当JSP页面第一次被请求的时候 服务器的JSP编译器会把JSP页面编译成对应的Java代码 根据动态Java代码执行的结果 生成对应的纯HTML的字符串返回给浏览器 这样就可以把动态程序的结果展示给用户 具体内容请参照书 4 4JSP动作指令 在Web程序涉及中经常需要用到JSP的动作指令 例如在使用JavaBean的时候就离不开userBean的指令 JSP的强大功能和它丰富的动作指令标签是分不开的 在接下来的章节中将对这些指令进行详细的介绍 读者可以仔细体会每个动作的示例程序 在示例程序中掌握这些动作指令的基本用法 4 4 1include动作指令 include动作指令可以在JSP页面中动态包含一个文件 这与include指令不同 前者可以动态包含一个文件 文件的内容可以是静态的文件也可以是动态的脚本 而且当包含的动态文件被修改的时候JSP引擎可以动态对其进行编译更新 而include指令仅仅是把一个文件简单的包含在一个JSP页面中 从而组合成一个文件 仅仅是简答的组合的作用 其功能没有include动作指令强大 具体内容请参照书 4 4 2forward动作指令 forward动作指令可以用来控制网页的重定向 即从当前页面跳转到另一个页面 forward动作的使用方法非常简单 具体使用格式如下 4 4 3param动作指令 在上面forward动作指令中可以用程序控制页面的跳转 如果需要在跳转的时候同时传递参数 这时候就需要用到param动作指令 param动作指令的具体使用方法可以参考下面的示例程序 具体内容请参照书 4 4 4plugin动作指令 元素用于在浏览器中播放或显示一个对象 典型的就是applet和bean 而这种显示需要在浏览器的java插件 当jsp文件被编译 送往浏览器时 元素将会根据浏览器的版本替换成或者元素 4 4 5useBean动作指令 useBean动作指令可以在JSP中引用JavaBean 这个动作指令在实际开发过程中经常会用到 在第六章JavaBean的讲解过程中将对这个动作指令做详细的介绍 在这里我们仅仅知道其基本用法即可 而且在这里不在用示例程序说明 useBean的使用格式如下 其中id为所用到的JavaBean的实例对象名称 class是JavaBean对应类的包路径 包括包名和类名 scope是这个JavaBean的有效范围 共有page request session application四个值可以选择 4 4 6setProperty动作指令 setProperty一般情况下是和JavaBean配合使用的 用来给JavaBean的实例对象进行赋值操作 setProperty的基本方法有以下两种 上面这种方法是setProperty动作指令最基本的用法 用来给JavaBean实例对象的某一个属性赋值 上面这种JavaBean的赋值方法也是经常用到的 4 4 7getProperty动作指令 getProperty一般情况下也是和JavaBean配合使用的 用来取出JavaBean实例对象的属性值 这个动作指令的基本使用方法如下 4 5JSP指令 JSP的指令虽然没有动作指令那么丰富 但是其作用却是不容忽视的 例如page指令 在设置显示编码 引入类的包路径 设置错误页面等方面都是必不可少的 在接下来的章节中将介绍JSP的两个指令标签 4 5 1page指令 page指令可以用来定义JSP也面的全局属性 例如编码 错误页面等 page指令的属性很多 下面来具体介绍它的各个属性 具体内容请参照书 4 5 2include指令 include指令可以在当前的JSP页面中包含一个文件 从而和当前页面组成一个整体的文件 这中包含仅仅是静态包含 具体内容请参照书 4 6JSP内置对象简介 JSP内置对象即无需声名就可以直接使用的对象实例 在实际的开发过程中 比较常用的JSP内置对象有reqest response session out application等 在接下来的章节中将详细介绍这几个JSP内置对象的使用方法 JSP其他的几个内置对象在实际的开发中并不十分常用 在这里不做具体介绍 4 7request对象 request对象代表这从用户发送过来的请求 从这个对象中间可以取出客户端用户提交的数据或者是参数 这个对象只有接受用户请求的页面才可以访问 4 7 1request对象使用场合 如果要与用户的互动 必须要知道用户的需求 然后根据这个需求生成用户期望看到的结果 这样才能实现与用户的互动 在Web应用中 用户的需求就抽象成一个request对象 这个对象中间包括用户所有的请求数据 例如通过表单提交的表单数据 或者是通过URL等方式传递的参数 这些就是用户的需求 request正是用来收集类似这些用户的输入数据和参数 同时 request对象中还包括一些服务器的信息 例如端口 真实路径 访问协议等信息 通过request对象可以取得服务器的这些参数 4 7 2request对象主要方法 request对象的方法非常多 在这里我们只介绍其中最常用的几种方法 其他方法可以参考相关类库的介绍 具体内容请参照书 4 7 3request对象使用示例 1 使用request对象取得表单数据request获取用户数据的一个主要方式就是获取表单数据 具体内容请参照书 4 8response对象 response对象是服务器端向客户端返回的数据 从这个对象中间可以取出一部分与服务器互动的数据和信息 只有接受这个对象的页面才可以访问这个对象 4 8 1response对象使用场合 既然用户可以对服务器发出请求 服务器就需要对用户的请求做出反应 这里服务器就可以使用response对象向用户发送数据 response是对应request的一个对象 如果需要获取服务器返回的处理信息 就可以对response进行操作 同时当服务器需要再客户端进行某些操作的时候也需要用到response对象 例如服务器要在客户端生成Cookies 那么这时候response对象就是一个很好的选择 4 8 2response对象主要方法 response的方法也很多 但是常用的也就其中的几个 下面介绍比较常用的几个方法 1 addCookie Cookiecookie 这个方法可以添加一个Cookie对象 用来保存客户端的用户信息 2 containsHeader Stringname 这个方法判断指定的头信息是否存在 具体内容请参照书 4 8 3response对象使用示例 response的用法很多 在这里我们用response来实现一个页面的重定向 4 9session对象 session对象维护着客户端用户和服务器端的状态 从这个对象中间可以取出用户和服务器交互的过程中的数据和信息 这个对象在用户关闭浏览器离开Web应用之前一直有效 4 9 1session对象使用场合 session对象中保存的内容是用户与服务器整个交互过程中的信息 如果是想在整个交互的过程中都可以访问到的信息 就可以选择存放在session对象中 例如在用户登录的过程中 可以在session中记录用户的登录状态 这样用户就不必在每个页面都重新登录 只要用户没有离开当前的Web应用系统 就可以一直保存登录的状态 4 9 2session对象主要方法 session所提供的方法并没有前面几个内置对象那么多 但是基本都是非常常用的 4 9 3session对象使用示例 在这里我们模拟一个简单的用户登录动作 在这个示例程序中 我们不对提交的登录信息做具体的验证 只要用户名和密码都不为空就可以登录系统 这样处理只是为了方便展示session的使用方法 在具体的开发中必须要对登录信息进行验证的 具体内容请参照书 4 10out对象 这个对象是在Web应用开发过程中使用最多的一个对象 其功能就是动态的向JSP页面输出字符流 从而把动态的内容转化成HTML形式来展示 这个对象在任何JSP页面中都可以任意访问 4 10 1out对象使用场合 out对象的功能就是向JSP页面输出数据信息 所以当有动态信息要展示给用户的时候就要用到out对象 在前面的很多示例中已经多次用到这个对象 读者从中可以很清楚的看到 out对象就是用来输入动态内容信息的 4 10 2out对象主要方法 在这里只介绍out对象最常用的方法 1 clear 这个方法可以清除缓冲区的数据 但是仅仅是清除 并不向用户输出 2 clearBuffer 这个方法可以清除缓冲区的数据 同时把这些数据向用户输出 具体内容请参照书 4 10 3out对象使用示例 out对象在前面的示例中已经多次使用到 在这里就不再针对这个对象举例说明 4 11application对象 application对象保存着整个Web应用运行期间的全局数据和信息 从Web应用开始运行开始 这个对象就会被创建 在整个Web应用运行期间可以在任何JSP页面中访问这个对象 4 11 1application对象使用场合 application中保存的信息可以在整个应用的任何地方访问 这个session对象类似 但和session对象还是有所区别的 只要Web应用还在正常运行 application对象就可以访问 而session对象在用户离开系统就被注销 4 11 2application对象主要方法 下面介绍application对象的最常用的主要方法 1 getAttribute Stringname 2 getServerInfo 3 removeAttribute Stringname 4 setAttribute Stringname Objecto 4 11 3application对象使用示例 在这里我们要实现一个简单的计数器 这个计数器就是利用application对象来储存计数器的值 用来统计服务器开始运行以来的访问量 4 12JSP中文问题完全解决方案 对于中文乱码问题 Java中才用的默认编码方式是Unicode 而中文的编码方式一般情况是GB2312 因为编码格式的不同 导致在中文不能正常显示 在不同的JDK版本和不同的应用服务器中的处理方法是不同的 但是其本质上都是一样的 就是把中文字符转化成合适的编码方式 或者是把在显示中文的环境中声名采用GB2312的编码 统一编码方案之后自然可以正常显示 4 12 1JSP页面中文乱码 在JSP页面中 中文显示乱码有两种情况 一种是HTML中的中文乱码 另一中是在JSP中动态输出的中文乱码 具体内容请参照书 4 12 2URL传递参数中文乱码 在一般情况下 可以用类似http localhost 8080 chapt4 URLCharset jsp param 中文 这种形式来传递参数 而且HTML在处理表单的时候 当表单的method采用get方法的时候 传递参数的形式与URL传递参数的形式基本一样 具体内容请参照书 4 12 3表单提交中文乱码 对于表单中提交的数据 可以使用request getParameter 的方法获取 但是当表单中如果出现中文数据的时候就会出现乱码 具体内容请参照书 4 12 4数据库操作中文乱码 在建立数据库的时候 应该选择支持中文的编码格式 最好能和JSP页面的编码格式保持一致 这样就可以尽可能减少数据库操作的中文乱码问题 同时在JDBC连接数据库的时候可以使用类似下面这种形式的URL jdbc microsoft sqlserver localhost 1433 DatabaseName pubs useUnicode true characterEncoding gb2312 4 12 5Eclipse开发工具中JSP文件中文不能保存 在Eclipse中 JSP文件默认的编码格式为ISO 8859 1 所以在JSP代码中间如果出现中文就不能保存 4 12 6Eclipse开发工具中中文显示乱码 在Eclipse中 由于默认的JSP编码格式为ISO 8859 1 所以当打开由其他编辑器编辑的JSP页面就会出现乱码 具体内容请参照书 4 12 7JSP下载中文文件名乱码 在实现文件下载功能的时候 如果出现中文文件名 如果不进行特殊的处理 下载下来的中文文件名会变成乱码 在下载前 就需要对这个文件名进行处理 然后才能正常显示中文的文件名 4 13其他JSP开发技巧 具体内容请参照书 4 13 1自定义错误页面 在JSP中 如果出现代码的错误 就会直接在页面上打印类似 4 13 2在MyEclipse中快速部署项目 在Web应用开发的过程中 部署项目往往十分麻烦 虽然在后续章节中介绍的Ant可以非常方便的完成这个任务 但是Ant复杂的操作不适合初学者 在这里我们使用前面推荐的MyEclipse这个集成开发工具来部署项目 MyEclipse的安装在前面第二章中已经详细介绍 在这里直接开始介绍如何发布Web应用项目 要想发布部署一个项目 首要任务就是把MyEclipse和服务器Tomcat联系起来 4 13 3测试配置是否成功 下面来测试下配置是否成功 具体内容请参照书 4 13 3在MyEclipse中调试Web应用程序 在MyEclipse中 对JSP页面进行调试也是非常方便的 如果需要调试JSP页面 只需要在JSP页面源代码的左侧双击鼠标左键 具体内容请参照书 4 13 4学习使用日志Log4j 在JSPWeb开发中 有很多方便的日志工具可供选择 利用这些日志工具可以很方便的对系统中的错误信息进行管理 在这里我们选择使用Log4j Log4j是目前JSP开发中使用最多的日志工具 Log4j按照严重程度给日志风味5个等级 DEBUG 调试 INFO 提示 WARN 警告 ERROR 错误 FATAL 严重错误 4 14小结 在本章中 对JSP的基本语法和对象等知识进行了系统的介绍 而且对于其中大部分的知识点都给出了具体示例 这些示例在具体的开发过程中都有很大的参考价值 读者可以在这些示例程序的基础上进行尝试 试着修改其中的功能 只有这样才肯定能对其运行原理有更深入的了解和体会 这就是学习程序语言的最基本最有效的方法
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!