《JSP与Servlet技术》PPT课件.ppt

上传人:za****8 文档编号:13190649 上传时间:2020-06-07 格式:PPT 页数:56 大小:1.03MB
返回 下载 相关 举报
《JSP与Servlet技术》PPT课件.ppt_第1页
第1页 / 共56页
《JSP与Servlet技术》PPT课件.ppt_第2页
第2页 / 共56页
《JSP与Servlet技术》PPT课件.ppt_第3页
第3页 / 共56页
点击查看更多>>
资源描述
第12章JSP与Servlet技术,主要内容,12.1JSP简介12.2JSP页面元素12.3JSP内置对象12.4Servlet12.5ServletAPI接口12.6开发Servlet,12.1JSP概念,Java服务器页面(JavaServerPage,JSP)以扩展名.jsp保存在JavaServerPage里面使用Java编程语言和基础类库HTML用于表示页面,而Java代码用于访问动态内容,并有效控制动态内容的生成,JSP概念,简单jsp页面举例:avceit你好,这就是一个JSP页面,JSP执行过程,Tomcat,JSP执行过程,Jsp容器管理jsp页面生命周期,分为两个阶段:转换阶段和执行阶段转换阶段当有一个对jsp页面的请求到来时,jsp容器检查jsp页面的语法是否正确,将jsp页面转换为Servlet源文件,然后调用javac命令编译Servlet源文件生成字节码文件.执行阶段Servlet容器加载转换后的Servlet类,主要内容,12.1JSP简介12.2JSP页面元素12.3JSP内置对象12.4Servlet12.5ServletAPI接口12.6开发Servlet,12.2JSP页面元素,脚本元素,包含三个部分:声明,脚本段,表达式声明:用于声明在其它脚本元素中可以使用的变量和方法脚本段:是一段java代码表达式:java语言中完整的表达式,声明,声明以结束利用声明的变量,在jsp容器将jsp转换为servlet时将作为servlet类的属性,声明的方法将成为servlet的方法,脚本段,在请求处理期间要执行的java代码段在脚本段中可以声明变量,并且在后面的脚本中可以使用该变量。容器转换jsp页面为servlet的时候,一次性被转换为_jspService()方法中的代码,表达式,计算表达式的值插入到当前流中,例:计数器您是第个访问本站的客户注意和以下代码的区别:,您是第个访问本站的客户,分析:1、这两个代码唯一的区别是声明变量i的方式不同,前者是成员变量,后者是局部变量。2、这个计数器有计数漏洞,有可能出现计数不同步的可能,原因是可能会有若干人同时访问i的值,这样大家获取的是同一个i值,与事实不符。解决的办法是synchronized加锁。,声明方法举例,您是第个访问本站的客户,JSP指令元素,page指令,page指令作用于整个jsp页面,定义了许多与页面相关的属性,这些属性将规定和jsp容器通信时的约定。语法:属性值总是用单引号或双引号括起来。如果一个属性有多个值的时候,这些值用逗号分开。例如:,page指令属性,Include指令,该指令的作用是将JSP页面出现该指令的位置处静态的插入一个文件。其语法为:例:,JSP动作元素,JSP中一共制定了7种标准的“动作元素”,分别是:,动作,include动作标签格式为:Include动作标签的功能:告诉JSP页面动态包含一个文件,即JSP页面运行时才将文件加入。,JSP页面元素,JSP页面构成JSP页面构成早上好!下午好!,动作,forward指令格式:forward指令功能:从该指令处停止当前页面的继续执行,而转向其他的一个jsp页面。,JSPexample1,demo1.jsp/,JSPexample2-文件访问,取得目录中的文件取得目录中的文件,在目录下的文件有,主要内容,12.1JSP简介12.2JSP页面元素12.3JSP内置对象12.4Servlet12.5ServletAPI接口12.6开发Servlet,12.3JSP内置对象,九种内置对象request,response,out,session,application,cookie,config,page,exception。HttpServletRequest类的Request对象该对象封装了用户提交的信息,通过调用该对象的方法可以获取用户提交的信息。getParameter(StringstrTextName)获取表单提交的信息。getRermoteAddr()获取客户的IP地址。getProtocol()获取客户使用的协议。,JSP内置对象,HttpServletResponse类的Respone对象对客户的请求做出动态的响应,向客户端发送数据。(1)将客户重新引导至另一个页面使用response的sendRedirect(URL)方法实现客户的重定向。例如:response.sendRedirect(index.jsp);(2)动态响应contentType属性使用response对象的setContentType(Strings)方法来改变contentType的属性值。格式:response.setContentType(Strings);参数s可取text/html,application/x-msexcel,application/msword等,HttpSession类的session对象从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。publicStringgetId():获取Session对象编号;publicvoidsetAttribute(Stringkey,Objectobj):将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。publicObjectgetAttribute(Stringkey):获取Session对象中含有关键字的对象。如:session.setAttribute(“username,“jack);,JSP内置对象,JSP内置对象,ServletContex类的application对象服务器启动后产生了Application对象,直到服务器关闭。与Session对象不同的时,所有客户的Application对象都是同一个,即所有客户共享这个内置的Application对象。setAttribute(Stringkey,Objectobj):getAttribute(Stringkey):,JSPexample3-模拟登陆,Login.jspCH5-Login.jspjavax.servlet.http.HttpSession-session对象LoginName:LoginPassword:,JSPexample3-模拟登陆,Member.jspCH5-Member.jspjavax.servlet.http.HttpSession-session对象,主要内容,12.1JSP简介12.2JSP页面元素12.3JSP内置对象12.4Servlet12.5ServletAPI接口12.6开发Servlet,12.4什么是Servlet,Servlet(java服务器小程序)是一个用Java编写的程序,此程序在服务器上运行以处理客户端请求。是按照Servlet规范编写的java类,ServletAPI,Servlet的框架是由两个java包组成:javax.servlet和javax.servlet.httpjavax.servlet包中定义了所有的servlet类都必须实现的接口和类。Servlet的框架的核心是:javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口.javax.servlet.http包中定义了采用HTTP协议通信的HttpServlet类,ServletAPI,创建自定义Servlet,publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres),publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres),1.实现servlet接口2.继承GenericServlet类3.继承HttpServlet类,并重写doGet()或doPost()方法实现对HTTP请求信息的动态响应。(在Web程序设计中,表单数据的提交方法常用有两种:Post方法和Get方法),创建自定义Servlet,有两个参数:HttpServletRequest和HttpServletResponse,这两个类实现了ServletRequest接口和ServletResponse接口ServletRequest接口中封装了客户请求信息.如客户请求方式,参数名,参数值,客户端正在使用的协议,以及发出客户请求的远程主机信息等ServletResponse接口为Servlet提供了返回响应结果的方法,HelloWordServlet,编写一个HelloWordServlet类,Servlet的生命周期,Servlet容器创建Servlet的一个实例Servlet的生命周期就是指创建Servlet实例之后其存在的时间以及何时消失生命周期的3个方法为:,Servlet的生命周期,生命周期的各个阶段为:,Service方法会自动根据请求的方式,调用doGet或者doPost方法,如果Service方法被重写,则doGet或者doPost方法失效,部署、运行HelloWorldServlet,在web.xml中部署Servlet后才能够使用Servlet,在浏览器中输入,“http:/localhost:8080/HelloWordServlet”,,主要内容,12.1JSP简介12.2JSP页面元素12.3JSP内置对象12.4Servlet12.5ServletAPI接口12.6开发Servlet,12.5ServletAPI接口,一个简单的JSP+Servlet实例,Sayhi.htmlServlet范例程序请访问者输入姓名:,importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;publicclassSayhiextendsHttpServletpublicvoidinit(ServletConfigconfig)throwsServletExceptionsuper.init(config);publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionresponse.setContentType(“text/html;charset=UTF-8”);PrintWriterout=response.getWriter();request.setCharacterEncoding(“UTF-8”);StringName=request.getParameter(“Name”);out.println(“”);out.println(“Sayhi”);out.println(“”);out.println(“Hi”+Name);out.println(“”);out.println(“”);out.close();/RequestDispatcherrd=request.getRequestDispatcher(userlist.jsp);/request.setAttribute(“Name“,hello“+Name);/rd.forward(request,response);,一个简单的JSP+Servlet实例,一个简单的JSP+Servlet实例,SayhiSayhiSayhi/Sayhi,HttpSession使用实例,importjava.io.*;importjavax.servlet.*;importjavax.servlet.annotation.*;importjavax.servlet.http.*;publicclassLoginextendsHttpServletprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOExceptionStringuser=req.getParameter(“user”);Stringpasswd=req.getParameter(“passwd”);if(“caterpillar”.equals(user),主要内容,12.1JSP简介12.2JSP页面元素12.3JSP内置对象12.4Servlet12.5ServletAPI接口12.6开发Servlet,12.6开发Servlet,MyEclipse提供最新的功能以开发Web应用程序MyEclipse是基于Java的应用程序,用于开发应用程序(如Applet、Servlet、JSP和JavaBean)MyEclipse工程是一个组织单元,它存储特定Web应用程序的所有文件、目录、路径和设置MyEclipse使用户可以创建三种类型的Servlet,即标准Servlet、监听器Servlet和过滤器Servlet在开发Servlet之前,有必要为此Servlet开发一个Web模块Web模块包含一个名为web.xml的文件,该文件存储正在开发的Web应用程序的内容,新建工程,新建Web模块,创建一个Servlet,创建一个Servlet,创建一个Servlet,配置servlet,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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