书签 分享 收藏 举报 版权申诉 / 29
上传文档赚钱

类型《Java Web应用开发》课件ch09.ppt

  • 上传人(卖家):momomo
  • 文档编号:5787091
  • 上传时间:2023-05-09
  • 格式:PPT
  • 页数:29
  • 大小:573.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《Java Web应用开发》课件ch09.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java Web应用开发 Java Web应用开发课件ch09 Java Web 应用 开发 课件 ch09
    资源描述:

    1、第第9章章 基于基于Servlet的的Web开发开发Servlet概述概述l由于由于JSP在被执行之前总是被翻译为在被执行之前总是被翻译为Servlet。lServlet是用是用Java Servlet API开发的一种开发的一种Java类。类。l这些这些API被包含在被包含在javax.Servlet和和javax.Servlet.http这两个包中这两个包中创建创建ServletServlet类名类名继承继承HttpServlet类类Servlet实例名实例名URL路径路径HttpServletl编写自己的编写自己的Servlet时,继承时,继承javax.servlet.http.Htt

    2、pServlet类。类。lHttpServlet是抽象类,它的是抽象类,它的Http处理方处理方法只有定声明没有具体实现。法只有定声明没有具体实现。l开发开发Servlet类,一般需要重写类,一般需要重写doGet()或或doPost()方法。方法。一个简单的一个简单的Servletpublic class HelloServlet extends HttpServlet private static final String CONTENT_TYPE=text/html;charset=GBK;public void doGet(HttpServletRequest request,Http

    3、ServletResponse response)throws ServletException,IOException public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 实现实现doGet()方法方法/Process the HTTP Get requestpublic void doGet(HttpServletRequest request,HttpServletResponse response)throws Ser

    4、vletException,IOException response.setContentType(CONTENT_TYPE);PrintWriter out=response.getWriter();out.println();out.println(HelloServlet);out.println();out.println(Hello,Servlet!);out.println();out.println();out.close();配置配置web.xml firstServlet servlet.HelloServlet firstServlet /hello 访问访问Servlet

    5、地址栏:地址栏:http:/localhost:8080/web/hello 地址地址 端口端口 站点站点 路径路径l例:使用例:使用Servlet在页面上显示一个登录表在页面上显示一个登录表单单和一个链接和一个链接。l使该表单和链接的提交地址指向一个使该表单和链接的提交地址指向一个Servlet。Servlet生命周期生命周期public class HelloServlet extends HttpServlet private static final String CONTENT_TYPE=text/html;charset=GBK;/初始化初始化 public void init()

    6、throws ServletException /对对Get方法请求响应服务方法请求响应服务 public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException /对对Post方法请求响应服务方法请求响应服务 public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException /销毁销毁 pu

    7、blic void destroy()HttpServletRequest接口接口ljavax.servlet.http.HttpServletRequest接接口类型的对象对应口类型的对象对应JSP中的中的request内置对内置对象。象。l常用方法常用方法lpublic String getParameter(String param)lpublic String getParameterValues(String param)lpublic void setAttribute(String attname,Object o);lpublic Object getAttribute(Str

    8、ing attname);HttpResponse接口接口ljavax.servlet.http.HttpResponse接口接口类型的对象对应类型的对象对应JSP中的中的response内置内置对象。对象。l常用方法常用方法lpublic void setContentType(String contentType);lpublic void sendRedirect(String url);JSP到到Servlet的转化的转化%int sum=0;for(int i=1;i 1到到100的连续和是:的连续和是:SumServletServletContext接口接口ljavax.servl

    9、et.ServletContext接口类型的接口类型的对象对应对象对应JSP中的中的application内置对象。内置对象。l定义定义ServletContext app=this.getServletContext();l常用方法常用方法lpublic void setAttribute(String attname,Object o)lpublic Object getAttribute(String attname)ServletConfig接口接口ljavax.servlet.ServletConfig接口类型的对接口类型的对象对应象对应JSP中的中的config内置对象,用于在内置

    10、对象,用于在Servlet初始化时向初始化时向Servlet传递一些信息。传递一些信息。l定义定义ServletConfig config=this.getServletConfig();l常用方法常用方法lpublic String getInitParameter(String paraname)WelcomeServlet会话管理会话管理ljavax.servlet.http.HttpSession接口类型的对象接口类型的对象对应对应JSP中的中的session内置对象。内置对象。l定义定义lHttpSession session=request.getSession();lHttpSe

    11、ssion session=request.getSession(boolean value);l常用方法常用方法lpublic void setAttribute(String attname,Object o)lpublic Object getAttribute(String attname)LoginServlet会话管理会话管理public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException String uname=request

    12、.getParameter(uname);String upass=request.getParameter(upass);User person=new User();person.setUname(uname);person.setUpass(upass);UserDAO userDAO=new UserDAOImpl();boolean flag=userDAO.isExist(person);if(flag)HttpSession session=request.getSession();session.setAttribute(users,person);response.sendR

    13、edirect(index.jsp);else response.sendRedirect(error.jsp);HttpSession接口接口l维护维护session状态的方法:状态的方法:方法方法功能功能getCreationTime()返回第一个创建会话的时间返回第一个创建会话的时间 getLastAccessedTime()返回容器最后一次得到返回容器最后一次得到 有此会话有此会话ID的请求的时间(毫秒数)的请求的时间(毫秒数)setMaxInactiveInterval()对于此会话,指定客户请求的最大对于此会话,指定客户请求的最大间隔时间间隔时间 getMaxInactiveInt

    14、erval()对应次会话,返回客户请求的最大对应次会话,返回客户请求的最大间隔时间(秒数)间隔时间(秒数)invalidate()结束会话。当前存储在这个会话中结束会话。当前存储在这个会话中的所有会话属性也会解除绑定的所有会话属性也会解除绑定 使使session失效的几种方法失效的几种方法l关闭浏览器关闭浏览器lsetMaxInactiveInterval()linvalidate()l在在web.xml中配置如下:中配置如下:5 定义定义session超时时间间隔,这里以分钟为单位超时时间间隔,这里以分钟为单位Servlet异常处理机制异常处理机制l程序式异常处理:程序式异常处理:try-c

    15、atch-finallyl声明式异常处理声明式异常处理lHTTP错误代码的处理错误代码的处理 404 /fileNotFound.html lJava异常的处理异常的处理 java.io.FileNotFoundException /index.jsp Servlet的线程安全问题的线程安全问题/线程不安全访问计数线程不安全访问计数public class WelcomeServlet extends HttpServlet private Integer num;public void init()throws ServletException ServletConfig config=su

    16、per.getServletConfig();num=Integer.parseInt(config.getInitParameter(count);public void doGet()ServletContext application=this.getServletContext();Integer n=(Integer)application.getAttribute(num);if(n=null)application.setAttribute(num,num);else application.setAttribute(num,n+1);out.print(application.

    17、getAttribute(num);Servlet的线程安全问题的线程安全问题/线程安全访问计数线程安全访问计数public class WelcomeServlet extends HttpServlet private Integer num;public void init()throws ServletException ServletConfig config=super.getServletConfig();num=Integer.parseInt(config.getInitParameter(count);public synchronized void doGet()Serv

    18、letContext application=this.getServletContext();Integer n=(Integer)application.getAttribute(num);if(n=null)application.setAttribute(num,num);else application.setAttribute(num,n+1);out.print(application.getAttribute(num);属性的线程安全属性的线程安全lServletContext对象:不是线程安全的对象:不是线程安全的lHttpSession对象:不是线程安全的对象:不是线程安全

    19、的synchronized(session)lServletRequest对象:线程安全对象:线程安全过滤器过滤器l过滤器是一个程序,它先于与之相关的过滤器是一个程序,它先于与之相关的Servlet或或JSP页面运行在服务器上。过滤器可附加到页面运行在服务器上。过滤器可附加到一个或多个一个或多个Servlet或或JSP页面上,并且可以检页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤查进入这些资源的请求信息。在这之后,过滤器可以作如下的选择:器可以作如下的选择:l以常规的方式调用资源(即,调用以常规的方式调用资源(即,调用Servlet或或JSP页页面)。面)。l利用修改过的请求信息

    20、调用资源。利用修改过的请求信息调用资源。l调用资源,但在发送响应到客户机前对其进行修改。调用资源,但在发送响应到客户机前对其进行修改。l阻止该资源调用,代之以转到其他的资源,返回一阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。个特定的状态代码或生成替换输出。创建过滤器的步骤创建过滤器的步骤l建立一个实现建立一个实现javax.servlet.Filter接口的接口的类类 l在在doFilter方法中放入过滤行为方法中放入过滤行为 l调用调用FilterChain对象的对象的doFilter方法方法 l对相应的对相应的Servlet和和JSP页面注册过滤器页面注册过

    21、滤器 过滤器应用实例过滤器应用实例解决请求数据中文乱码问题解决请求数据中文乱码问题 l建立一个实现建立一个实现Filter接口的类接口的类EncodingCharacterFilter:public class EncodingCharacterFilter implements Filter public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException request.setCharacterEncoding(

    22、GB2312);chain.doFilter(request,response);过滤器应用实例过滤器应用实例解决请求数据中文乱码问题解决请求数据中文乱码问题l注册过滤器注册过滤器 EncodingCharacterFilter filter.EncodingCharacterFilter EncodingCharacterFilter /*过滤器应用实例过滤器应用实例身份验证问题身份验证问题 l建立一个实现建立一个实现Filter接口的类接口的类AuthorizationFilter:public class AuthorizationFilter implements Filter pub

    23、lic void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException PrintWriter out=response.getWriter();HttpSession session=request.getSession(false);if(session=null)out.println(“请先登录请先登录”);/此处应页面跳转此处应页面跳转 else if(!session.getAttribute(“user”).get

    24、Role().equals(“admin”)out.println(“不具备管理员权限不具备管理员权限”);/此处应页面跳转此处应页面跳转chain.doFilter(request,response);过滤器应用实例过滤器应用实例身份验证问题身份验证问题 l注册过滤器注册过滤器 AuthorizationFilter filter.AuthorizationFilter AuthorizationFilter /admin/*总结总结lServlet的工作原理的工作原理l了解了解Servlet的生命周期的生命周期l能够创建并运行能够创建并运行Servletl了解了解Servlet API中的类和接口中的类和接口l了解了解Servlet API如何处理请求并产生如何处理请求并产生响应响应l了解了解Servlet如何进行会话管理如何进行会话管理l了解了解Model I和和Model II 的不同的不同

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《Java Web应用开发》课件ch09.ppt
    链接地址:https://www.163wenku.com/p-5787091.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库