您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Servlet课件。。。。PPT
Servlet2Servlet介绍Java技术细分为三个子平台JavaSE:Client/Server结构开发JavaEE:Browser/Server结构开发JavaME:手机嵌入式开发Servlet历史1995年,Java技术正式推出1997年,Servlet紧接着被推出Java的Web编程技术还包括我们后面需要讲解的:JavaBean、Struts1.X、Struts2.X、Spring、Hiberante等……3什么是Servlet定义:Servlet是一个Java程序,是在服务器上运行以处理客户端请求、业务逻辑并做出响应的程序需要运行在服务器端需要Web容器的支持Java编写请求响应Servlet运行于服务器端4Servlet的生命周期Servlet的处理流程1、客户端使用浏览器(get/post)提交,并调用Servlet的doGet或者doPost方法2、服务器接收到请求后,如果该Servlet第一次被调用,实例化这个Servlet3、服务器调用该Servlet对象的service()方法4、Servlet产生动态的回复内容5、服务器发送回复内容给客户端浏览器5Servlet的生命周期Servlet生命周期的各个阶段6如何创建Servlet前台页面的创建FORM表单的编写后台Servlet的创建使用Eclipse的Servlet向导创建Servlet代码模板根据表单提交方法,确定接收方法接收请求数据、处理数据、返回响应页面7FORM表单的method属性FORM表单提交的方法Get和PosthtmlheadtitleMyJsp/title/headbodyThisismyJSPpage.br/body/html%@pagecontentType=text/html;charset=gbk%htmlheadtitleMyJsp/title/headbodyformaction=helloservletmethod=?name=form1“!--表单内容--/form/body/htmlFORM的方法有哪些?Get|PostGet与Post有什么区别?Get、Post提交数据与Servlet有什么关系吗?8Servlet编程模式Servlet编程基本模式处理Get和Post请求importjava.io.IOException;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHelloServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//doGet方法体内容}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//doPost方法体内容}}使用Get方法提交,触发doGet()方法使用Post方法提交,触发doPost()方法9Servlet的配置在web.xml文件中配置Servlet如何访问Servletweb-appservletservlet-nameHelloServlet/servlet-nameservlet-classy2javaee.sg.ch02.HelloServlet/servlet-class/servletservlet-mappingservlet-nameHelloServlet/servlet-nameurl-pattern/HelloServlet/url-pattern/servlet-mapping/web-app两个名称必须相同为了方便使用Servlet,取个别名完整的包名+类名访问Servlet的URL10获得Servlet初始化参数在WEB-INF\web.xml中部署Servlet的时候,可以为其配置一些初始化参数,格式为,在servlet/servlet标签中嵌入:init-paramparam-nameparametername/param-nameparam-valueparametervalue/param-value/init-param这些初始化参数通常可在Servlet被装载实例化时获取;即在init()方法中,通过ServletConfig接口的getInitParameter(Stringname)方法获得这些参数值。由于HttpServlet实现了ServletConfig接口,故可在HttpServlet的子类方法中直接调用getInitParameter(Stringname)方法。应用:一些通用性信息,如数据库的连接信息,可设置在web.xml中,在Servlet初始化的时候读取。11Servlet中常用的接口或类HttpServletRequestjsp中的内置对象request即为一个HttpServletRequest的实例。HttpServletResponsejsp中的内置对象response即为一个HttpServletResponse的实例。HttpSessionjsp中的内置对象session即为一个HttpSession的实例。可通过客户端Cookie或者重写URL来维持一个sessionServletContextjsp中的内置对象application即为一个ServletContext的实例。12Servlet中常用的接口或类RequestDispatcherServlet协作,它可以把一个请求转发到另一个Servletforward(ServletRequestrequest,ServletResponseresponse),把请求转发到服务器上的另一个资源include(ServletRequestrequest,ServletResponseresponse),把服务器上的另一个资源包含到响应中ServletConfig与Servlet的配置相关,包括Servlet的名字、初始化参数和ServletContext对象。JSP中的内置对象config即为ServletConfig的一个实例。getInitParameter(Stringname),返回特定名字的初始化参数值getInitParameterNames(),返回所有的初始化参数的名字getServletContext(),返回ServletContext对象,如jsp中的application13转向控制数据的传递方式从页面到Servletrequest.getParameter(“param”);从Servlet到Servlet或JSP页面RequestDispatcher对象的forward()方法JSP的forward动作实质是RequestDispatcher技术Stringpass=request.getParameter(password);Stringuser=request.getParameter(loginName);if(user.equals(accp)&&pass.equals(accp)){request.setAttribute(loginname,user);RequestDispatcherdispatcher=request.getRequestDispatcher(/ch02/ok.jsp);dispatcher.forward(request,response);}else{response.sendRedirect(/ch02/register.jsp);}定义一个转发器进行转发存储要传递的数据14MVC设计模式(2-1)MVC设计模式模型-----Model视图-----View控制器-----ControllerMVC模式控制器模型视图JavaBeanJSPServlet15MVC设计模式(2-2)模型:代表应用程序状态和业务逻辑控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户视图:提供可交互的客户界面,向客户显示模型数据MVC设计模式的模块组成16Web程序的MVCWeb容器处理请求过程请求ServletJavaBeanJSP页面执行调用转向响应访问返回数据数据库客户端JSP视图动态显示数据数据库Servlet控制器,用于接收请求和控制应用程序的流程JavaBean数据模型进行业务逻辑和访问数据库17MVC的优点MVC设计模式的优点各司其职、互不干涉代码的重用性有利于开发的分工MVC的优点18MVC的Model层1、如何理解MVC中的Model?MVC设计模式模型-----Model视图-----View控制器-----ControllerMVC对象控制器模型视图?JSPServletModel层主要是进行业务逻辑处理、访问数据库和封装数据19企业级开发对Model层的要求企业级开发需要稳健和高效的数据访问层完成对数据库的CRUD操作能够处理数据库发生的各种错误可以灵活的修改配置提供方便使用的工具高性能数据库请求响应操作结果要求高效、稳健的数据访问层打开连接,操作数据库,关闭连接多次重复操作传统的JDBC已经无法满足需求,那怎么办呢?20数据源简介数据源(DataSource)javax.sql.DataSource接口负责建立与数据库的连接从Tomcat的数据源获得连接把连接保存在连接池中应用程序Connection1Connection2Connection3数据库想要获得连接返回一个连接连接池连接池中的连接对象是由谁创建的呢?21JNDI介绍如何获得DataSource对象数据源由Tomcat提供,不能在程序中创建实例使用JNDI获得DataSource引用什么是JNDIJNDI(JavaNamingandDirectoryInterface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的APIjavax.namming.Context接口的lookup()方法应用程序jdbc/s1jdbc/s2数据源数据源名称Connectioncontext.lookup(jdbc/s1)22使用JNDI获取连接对象importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.naming.NamingException;importjavax.sql.DataSource;publicclassTitlesBean{publicListgetTitles(){try{Contextic=newInitialContext();DataSourcesource=(DataSource)ic.lookup(java:comp/env/jdbc/books);Connectionconnection=source.getConnection();titlesQuery=connection.prepareStatement(SELECT*FROMtitles);ResultSetresults=titlesQuery.executeQuery();//为BookBean对象的属性赋值,并添加到titlesList中}catch(SQLExceptionexception){exception.printStackTra
本文标题:Servlet课件。。。。PPT
链接地址:https://www.777doc.com/doc-3799218 .html