




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章JavaServlet基础 课程目标 掌握如何编写和使用Servlet理解掌握init service doPost 和doGet 方法理解Servlet的工作原理和生命周期学会在Servlet中使用session和请求转发了解Servlet的应用 过滤器 Filter 引入 JavaServlet技术就是在服务器端创建响应用户请求对象的技术 被创建的对象习惯上称为一个Servlet对象 JSP是在Servlet的基础上产生的 屏蔽了其创建的过程 只是关心页面本身的结构和标记采用Servlet可以更好的处理数据请求 一 Servlet对象的创建与使用 HttpServlet类及对象的创建部署Servlet运行Servlet 1 1HttpServlet类及对象的创建 创建一个Servlet对象的类就是编写一个Java文件 实现一个特殊类的子类这个特殊的类就是javax servlet http包中的HttpServlet类 HttpServlet类实现了Servlet接口 实现了响应用户的方法 1 1HttpServlet类及对象的创建 简单实例 Hello javapackagestar moon importjava io importjavax servlet importjavax servlet http 1 1HttpServlet类及对象的创建 publicclassHelloextendsHttpServlet publicvoidinit ServletConfigconfig throwsServletException super init config 1 1HttpServlet类及对象的创建 publicvoidservice HttpServletRequestrequest HttpServletResponseresponse throwsIOException response setContentType text html charset GB2312 PrintWriterout response getWriter out println out println 您好 欢迎您 Hello youareWelcome out println 1 2部署Servlet 编译加载 Tomcat安装目录 common lib servlet api jar保存如果Servlet类Hello的包名是 star moon 首先将Servlet源文件编译生成字节码文件 Hello class保存到 Web服务目录WEB INF classes star moon 2 编写web xml文件 根标记互不相同hellostar moon Hello所在的类名hello lookHelloURL的路径名 Web服务目录的层级结构 ch08 web应用程序的所有文件 ch08 WEB INF 部署描述符文件web xml及以下三个文件夹 ch08 WEB INF classes 存放Servlet和javaBean相关的类文件 ch08 WEB INF lib 所需的类包 JAR文件 ch08 WEB INF tags 标签文件 ch08 WEB INF web xml web应用程序的配置和部署信息 1 3运行Servlet 根据web xml部署文件来请求服务器执行一个Servlet对象根据web xml文件中标记指定的格式输入请求 例如 http 127 0 0 1 8080 chaper8 lookHello 二 Servlet工作原理 Servlet的生命周期初始化 init 方法 1次 响应请求 service 方法 多次 从服务器中移除 destroy 方法 1次 二 Servlet工作原理 init 方法初始化Servlet对象 Servlet对象第一次被请求加载时 服务器会创建一个Servlet对象 该对象自动调用init 方法完成必要的初始化工作传递一个ServletConfig对象给init方法 它包含Web应用程序的配置信息 web xml中配置 获取的初始化参数 二 Servlet工作原理 service 方法调用service 方法响应客户的请求传递两个参数 通过ServletRequest对象得到客户端相关信息和请求信息 通过ServletResponse对象实现对客户端的响应 二 Servlet工作原理 destroy 方法当一个Servlet实例应该从服务器中移除时 调用destroy 方法 释放其使用的资源 二 Servlet工作原理 客户端 Servlet容器 Servlet 二 Servlet工作原理 doGet 方法和doPost 方法直接继承service方法改在Servlet类中重写doPost 或doGet 方法来响应用户的请求 增强响应灵活性 降低服务器负担 二 Servlet工作原理 处理方式如果不论用户请求类型是POST还是GET 服务器的处理过程完全相同 那么我们可以只在doPost 或doGet 方法中编写处理过程 在另一个方法中调用方法即可 如果根据请求的类型进行不同的处理 就需在两个方法中编写不同的处理过程 二 Servlet工作原理 输入一个数 提交给servlet Post方式 二 Servlet工作原理 GetSquare javapublicvoiddoPost HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException Stringnumber request getParameter number 获取客户提交的信息try 输出number的平方值 catch NumberFormatExceptione publicvoiddoGet HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException doPost request response 二 Servlet工作原理 GetSquareOrCubic javapublicvoiddoPost HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException 计算number的平方并显示 publicvoiddoGet HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException 计算number的立方并显示 三 通过JSP调用Servlet 表单向Servlet提交数据computerstart moon Computercomputer getResult 三 通过JSP调用Servlet 表单向Servlet提交数据 续 givenumber jsp getResult 思考 如果givenumber jsp存放在子目录number下 是否还能正确访问getResult 三 通过JSP调用Servlet 通过超链接访问Servletshowstar moon ShowLettershow helpMeShow 三 通过JSP调用Servlet 通过超链接访问Servlet 续 showLetter jsp单击超链接查看英文字母表 查看英文字母表 helpMeShow 四 Servlet的共享变量 在编写Servlet类时声明的某些成员变量被所有线程共享 当用户请求加载Servlet时 服务器分别为每个用户启动一个线程 所有线程共享Servlet类的成员变量 四 Servlet的共享变量 ComputerPI javapublicclassComputerPIextendsHttpServlet doublesum 0 i 1 j 1 intnumber 0 publicsynchronizedvoidservice throwsIOException number sum sum i j j j 2 i i out println 现在PI的值是 out println PI 4 sum 五 几个特性 重定向和转发会话管理 5 1重定向和转发 重定向sendRedirect 将用户重新定向到一个JSP页面或另一个Servletreponse sendRedirect URL地址 重定向方法仅仅是将页面从当前定向到另一个JSP或Servlet 不能转发请求可以定向至任何URL地址 5 1重定向和转发 转发RequestDispatcher对象调用forward方法可以将用户对当前JSP页面或Servlet的请求转发给RequestDispatcher对象所指定的JSP页面或Servlet RequestDispatcherdispatcher request getRequestDispatcher URL地址 dispatcher forward request reponse forward可以转发请求 forward标记 只能在本Web服务目录内跳转 5 1重定向和转发 例 Verify javapublicclassVerifyextendsHttpServlet publicvoiddoPost request response throwsServletException IOException if name length 0 name null response sendRedirect input jsp 重定向 else RequestDispatcherdispatcher request getRequestDispatcher forYouShowMessage dispatcher forward request response 重定向 5 2会话管理 request调用getSession 方法获取用户的会话对象 HttpSessionsession request getSession true 一个用户在不同的Servlet中获取的session对象是完全相同的 不同的用户的session对象互不相同 5 2会话管理 例8 6Boy javapublicclassBoyextendsHttpServlet publicvoiddoPost HttpSessionsession request getSession true 获取客户的会话对象session setAttribute name 耿祥义 out println session getId Look javapublicclassLookextendsHttpServlet publicvoiddoPost HttpSessionsession request getSession true 获取客户的会话对象Stringstr String session getAttribute name 获取会话中存储的数据out println session getId out println str Servlet实例 猜数字getNumber jsp 获取一个需要猜的1 100的随机数 保存在session对象savedNumber中 session对象的message保存猜数的结果 赋初值请你猜数 inputNumber jsp 显示猜数结果message 用户输入要猜测的数clientGuessNumber 提交给Servlet文件HandleGuess进行处理 HandleGuess 比较savedNumber与clientGuessNumber的大小 得到结果保存在message对象中 练习题 1 写出本机的IP地址和域名表示形式 Tomcat服务器默认的端口号 2 假设Tomcat服务器的IP地址是192 172 1 156 在其根目录下有一个test jsp页面 则访问它的完整形式 若其放在webapps目录下test子目录下 则访问它的完整形式是 3 将D JspTest目录设为一个Web服务目录 让用户可以用虚拟目录Hello来访问 请写出其设置的完整操作步骤 4 JSP的英文全称是什么 写出定义及其作用 5 分别写出Tomcat安装目录下的webapps子目录 conf子目录和common lib目录各存放什么文件 6 假设Web服务目录为test 其目录结构有 test test WEB INF test WEB INF classes test WEB INF lib test WEB INF tags test WEB INF web xml分别写出每部分表示的意义 练习题 1 JSP文件由哪5种元素组成 2 叙述一下JSP的运行原理 它在服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 执法演讲面试题目及答案
- 先进制造市场分析与经营
- 环境评价公众参与机制在2025年公众参与评价与环境保护教育中的应用报告
- 供电试岗期满考试试题及答案
- 2025年运动控制 试题及答案
- 益智课程考试题及答案
- 2025年食堂食品安全管理人员考试试题及答案
- 2025年flash动画制作考试题及答案
- 2025年法语考试题目及答案
- 2025年陕西省辅警协警笔试笔试真题含答案
- 郑远元加盟合同协议
- 慢性粒细胞白血病汇报课件
- 智慧民航数据治理典型实践案例2023
- 2025年重点信访人员稳控实施方案重点信访人稳控
- 六年级上册 道德与法治 全册公开课一等奖创新教案
- (完整)蜘蛛人安全技术交底
- 建筑工程三级安全教育内容
- 2025年新高考数学命题趋势及二轮复习备考策略(深度课件)
- 2025年职工职业技能竞赛(泵站运行工赛项)参考试指导题库(含答案)
- 创建安全质量标准化示范工地实施方案
- 一例使用胰岛素泵治疗2型糖尿病患者的护理
评论
0/150
提交评论