JavaServlet基础1.ppt_第1页
JavaServlet基础1.ppt_第2页
JavaServlet基础1.ppt_第3页
JavaServlet基础1.ppt_第4页
JavaServlet基础1.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章 Java Servlet基础,课程目标,掌握如何编写和使用Servlet 理解掌握init()、service()、doPost()和doGet()方法 理解Servlet的工作原理和生命周期 学会在Servlet中使用session和请求转发 了解Servlet的应用:过滤器(Filter),引入,Java Servlet技术就是在服务器端创建响应用户请求对象的技术,被创建的对象习惯上称为一个Servlet对象。 JSP是在Servlet的基础上产生的,屏蔽了其创建的过程,只是关心页面本身的结构和标记 采用Servlet可以更好的处理数据请求,一. Servlet对象的创建与使用,HttpServlet类及对象的创建 部署Servlet 运行Servlet,1.1 HttpServlet类及对象的创建,创建一个Servlet对象的类就是编写一个Java文件,实现一个特殊类的子类 这个特殊的类就是javax.servlet.http包中的HttpServlet类。HttpServlet类实现了Servlet接口,实现了响应用户的方法,1.1 HttpServlet类及对象的创建,简单实例:Hello.java package star.moon; import java.io.*; import javax.servlet.*; import javax.servlet.http.*;,1.1 HttpServlet类及对象的创建,public class Hello extends HttpServlet public void init (ServletConfig config) throws ServletException super.init(config); ,1.1 HttpServlet类及对象的创建,public void service (HttpServletRequest request,HttpServletResponse response) throws IOException response.setContentType (“text/html;charset=GB2312“); PrintWriter out=response.getWriter(); out.println(“); out.println(“您好,欢迎您。Hello,you are Welcome“); out.println(“(“); ,1.2 部署Servlet,编译 加载 : Tomcat安装目录 commonlibservlet-api.jar 保存 如果Servlet类Hello的包名是:star.moon.首先将Servlet源文件编译生成字节码文件:Hello.class 保存到: Web服务目录 WEB-INFclassesstarmoon,2. 编写web.xml文件 /根标记 互不相同 hello star.moon.Hello 所在的类名 hello /lookHello URL的路径名,Web服务目录的层级结构,ch08:web应用程序的所有文件 ch08WEB-INF:部署描述符文件web.xml及以下三个文件夹 ch08WEB-INFclasses:存放Servlet和javaBean相关的类文件 ch08WEB-INFlib:所需的类包(JAR文件) ch08WEB-INFtags:标签文件 ch08WEB-INFweb.xml:web应用程序的配置和部署信息,1.3 运行Servlet,根据web.xml部署文件来请求服务器执行一个Servlet对象 根据 web.xml文件中标记指定的格式输入请求, 例如: :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.java public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException String number= request. getParameter(“number”); /获取客户提交的信息 try /输出number的平方值; catch(NumberFormatException e) public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException doPost(request,response); ,二、 Servlet工作原理,GetSquareOrCubic.java public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException /计算number的平方并显示 public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException /计算number的立方并显示 ,三、 通过JSP调用Servlet,表单向Servlet提交数据 computer start.moon.Computer computer /getResult ,三、通过JSP调用Servlet,表单向Servlet提交数据(续) givenumber.jsp ,getResult,思考:如果givenumber.jsp存放在子目录number下,是否还能正确访问getResult?,三、通过JSP调用Servlet,通过超链接访问Servlet show star.moon.ShowLetter show /helpMeShow ,三、通过JSP调用Servlet,通过超链接访问Servlet (续) showLetter.jsp 单击超链接查看英文字母表: 查看英文字母表 ,helpMeShow,四、Servlet的共享变量,在编写Servlet类时声明的某些成员变量被所有线程共享。 当用户请求加载Servlet时,服务器分别为每个用户启动一个线程,所有线程共享Servlet类的成员变量。,四、Servlet的共享变量,ComputerPI.java public class ComputerPI extends HttpServlet double sum=0,i=1,j=1; int number=0; public synchronized void service () throws IOException number+; sum=sum+i/j; j=j+2; i= -i; out.println(“现在PI的值是:“); out.println(“ PI= “+4*sum),五、几个特性,重定向和转发 会话管理,5.1 重定向和转发,重定向 sendRedirect()将用户重新定向到一个JSP页面或另一个Servlet reponse.sendRedirect(URL地址) 重定向方法仅仅是将页面从当前定向到另一个JSP或Servlet,不能转发请求 可以定向至任何URL地址,5.1 重定向和转发,转发 RequestDispatcher对象调用forward 方法可以将用户对当前JSP页面或Servlet的请求转发给RequestDispatcher对象所指定的JSP页面或Servlet。 RequestDispatcher dispatcher=request. getRequestDispatcher(URL地址) dispatcher.forward(request.reponse) forward可以转发请求(forward标记) 只能在本Web服务目录内跳转,5.1 重定向和转发,例:Verify.java public class Verify extends HttpServlet public void doPost (request, response) throws ServletException, IOException if(name.length()=0|name=null) response.sendRedirect(“input.jsp“); /重定向 else RequestDispatcher dispatcher=request. getRequestDispatcher (“forYouShowMessage“); dispatcher.forward(request, response); /重定向 ,5.2 会话管理,request调用getSession()方法获取用户的会话对象: HttpSession session=request.getSession(true); 一个用户在不同的Servlet中获取的session对象是完全相同的,不同的用户的session对象互不相同。,5.2 会话管理,例8-6 Boy.java public class Boy extends HttpServlet public void doPost() HttpSession session= request.getSession(true); /获取客户的会话对象 session.setAttribute(“name“,“耿祥义“); out.println(“+session.getId();,Look.java public class Look extends HttpServlet public void doPost() HttpSession session= request.getSession(true); /获取客户的会话对象 String str=(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地址是56,在其根目录下有一个test.jsp页面,则访问它的完整形式;若其放在webapps目录下test子目录下,则访问它的完整形式是? 3. 将D:JspTest目录设为一个Web服务目录,让用户可以用虚拟目录Hello来访问,请写出其设置的完整操作步骤。 4.JSP的英文全称是什么?写出定义及其作用。 5.分别写出Tomcat安装目录下的webapps子目录、conf子目录和commonlib目录各存放什么文件? 6.假设Web服务目录为test,其目录结构有 test testWEB-INF testWEB-INFclasses testWEB-INFlib testWEB-INFtags testWEB-INFweb.xml 分别写出每部分表示的意义。,练习题,1.JSP文件由哪5种元素组成? 2. 叙述一下JSP的运行原理,它在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论