收藏 分销(赏)

JavaWeb开发优秀PPT.ppt

上传人:a199****6536 文档编号:10509081 上传时间:2025-05-31 格式:PPT 页数:36 大小:290KB 下载积分:12 金币
下载 相关 举报
JavaWeb开发优秀PPT.ppt_第1页
第1页 / 共36页
JavaWeb开发优秀PPT.ppt_第2页
第2页 / 共36页


点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java Web,开发,计算机系,孙杰,1,Servlet,开发,2,2,本章内容,1.,什么,Servlet,2.Se,rvlet,的主要方法,3.Servlet,运行原理,4.Servlet,开发流程,5.MyEclipse,中开发,Servlet,6.Servlet,实例,3,2.1,什么是,Servlet,Servlet,是用,Java,语言编写的运行在服务器端的小应用程序,能够接收,Web,客户端的请求,并能对,Web,客户端进行响应,通常是通过,HTTP,(,HyperText Transfer Protocol,)协议进行工作的。,可以认为,Servlet,是服务器端的一个动态,Java,程序,用户通过访问这个程序获取服务器的服务。,4,2.2 Servlet,的主要方法,Servlet,是一个,Java,类,通常会有,3,类方法,分别是:,init,方法,用于初始化。,destroy,方法,用于释放资源。,service,方法,服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在这里完成。这类方法可以有多个,最常用的是,doGet,和,doPost,方法。,5,Servlet,的生命周期,装载,Servlet,:这项操作一般是动态执行。有些服务器提供了相应的管理功能,可以在启动的时候就装载,Servlet,,并能够初始化特定的,Servlet,:,创建过程:,创建一个,Servlet,实例,;,初始化过程:,调用,Servlet,的,init(),方法,;,响应服务:,如果容器接收到对此,Servlet,的请求,那么它调用,Servlet,的,service(),方法,;,销毁释放资源:,实例被销毁,通过调用,Servlet,的,destroy(),方法销毁,Servlet,。,6,2.3 Servlet,运行原理,1.Servlet,的工作过程如下,Servlet,容器接收到客户端的请求时,先判断用户所请求的,Servlet,对象是否存在。如果不存在,则加载,Servlet,类、创建,Servlet,对象并实例化,然后调用,init,方法进行初始化。,容器创建,request,和,response,对象,并且创建一个线程,调用,Servlet,对象的,service,方法(间接调用,doGet,方法或者,doPost,方法)。,service,方法产生响应,容器将响应发回客户端。,容器销毁,reqeust,和,response,对象以及相应的线程。,注意:,加载,Servlet,类、创建对象、调用初始化方法,init,和销毁方法,destroy,都只有一次。,当,Web,应用被卸载或者服务器被关闭的时候,系统卸载,Servlet,,调用,destroy,方法释放资源。,7,2.3 Servlet,运行原理,2.Servlet,的加载有两种方式:,第一次请求的时候加载。,服务器启动的时候加载。,8,3.2.4,开发,Servlet,基本流程,由于,MyEcilpse,自身具有的强大功能,上面开发,Servlet,的过程中某些操作已经由,MyEclipse,自动完成,极大的方便了程序员开发程序。但当脱离集成开发工具时,对开发一个,Servlet,的基本流程也应有所了解。,9,2.4,开发,Servlet,基本流程,开发一个,Servlet,程序基本包括以下几步:,(,1,)编写,Servlet,引入用到的包,需要的导入的包有,:,javax.servlet.*,,,javax.servlet.http.*,等,定义类的基本框架并继承,HttpServlet,重写成员方法。如果需要对,Servlet,进行初始化,需要重写,init,方法。如果需要在卸载,Servlet,的时候执行一些功能,可以重写,destory,方法。一般情况下,根据需要完成的功能只需要重写服务类方法即可。服务类方法包括,doGet,方法和,doPost,方法等。,10,import javax.servlet.ServletException;,import javax.servlet.http.HttpServlet;,import javax.servlet.http.HttpServletRequest;,import javax.servlet.http.HttpServletResponse;,public class TestServlet extends HttpServlet,public void init()throws ServletException,/Process the HTTP Get request,public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException,public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException,11,1.Servlet,中获取参数,隐含对象,Request,String request.getParamter(,参数名称,);,例子:,String userName=“”;,userName=request.getParameter(“username”);,System.out.println(“userName”+userName);,12,HttpServletRequest,常用,API,HttpServletRequest,的常用方法有:,获取单值请求参数的方法:,getParamter();,获取多值请求参数的方法:,getParameterValues();,获取请求参数名字的方法:,getParameterNames();,获取,session,对象的方法:,getSession();,获取,Web,应用根路径的方法:,getContextPath();,获取,Servlet,路径的方法:,getServletPath();,获取,request,中的属性的方法:,getAttribute();,设置,request,中的属性的方法:,setAttribute();,获取请求转发对象的方法:,getRequestDispatcher();,13,2.Servlet,中处理返回结果,隐含对象,Request,String request.getParamter(,参数名称,);,例子:,String userName=“”;,userName=request.getParameter(“username”);,System.out.println(“userName”+userName);,14,2.4,开发,Servlet,基本流程,(,2,)编译,Servlet,在,MyEcilpse,中,,.java,文件会在保存后自动编译。,若未安装,MyEcilpse,,则需要程序员手工编译,Servlet,。,需要事先把位于,%TOMCAT_HOME%commonlib,下的,servlet-api.jar,压缩包添加到环境变量中。,使用,JDK,中的,javac,命令编译。,15,2.4,开发,Servlet,基本流程,(,3,)配置,Servlet,Servlet,编写完之后,作为,Web,应用的组成部分,需要在配置文件,web.xml,中进行配置。,Servlet,的名称,Servlet,类的全路径,参数名,1,参数值,1,启动时加载的顺序,servlet,的名称,访问路径,16,2.4,Servlet,的访问路径和,url-pattern,当一个请求发送到,servlet,容器的时候,容器先会将请求的,url,减去当前应用上下文的路径作为,servlet,的映射,url,,比如我访问的是,localhost/test/aaa.html,,我的应用上下文是,test,,容器会将,localhost/test,去掉,剩下的,/aaa.html,部分拿来做,servlet,的映射匹配。这个映射匹配过程是有顺序的,而且当有一个,servlet,匹配成功以后,就不会去理会剩下的,servlet,了,其匹配规则和顺序如下:,1.,精确路径匹配。例子:比如,servletA,的,url-pattern,为,/test,,,servletB,的,url-pattern,为,/*,,这个时候,如果我访问的,url,为,localhost/test,,这个时候容器就会先 进行精确路径匹配,发现,/test,正好被,servletA,精确匹配,那么就去调用,servletA,,也不会去理会其他的,servlet,了。,2.,最长路径匹配。例子:,servletA,的,url-pattern,为,/test/*,,而,servletB,的,url-pattern,为,/test/a/*,,此时访问,localhost/test/a,时,容器会选择路径最长的,servlet,来匹配,也就是这里的,servletB,。,17,2.4,Servlet,的访问路径和,url-pattern,3.,扩展匹配,如果,url,最后一段包含扩展,容器将会根据扩展选择合适的,servlet,。例子:,servletA,的,url-pattern,:*,.action,,*,.do,4.,如果前面三条规则都没有找到一个,servlet,,容器会根据,url,选择对应的请求资源。如果应用定义了一个,default servlet,,则容器会将请求丢给,default servlet,。,18,2.4,Servlet,的访问路径和,url-pattern,在,web.xml,文件中,以下语法用于定义映射:,1.,以”,/,开头和以”,/*”,结尾的是用来做路径映射的。,2.,以前缀”*,.”,开头的是用来做扩展映射的。,3.“/”,是用来定义,default servlet,映射的。,4.,剩下的都是用来定义详细映射的。比如:,/aa/bb/cc.action,19,2.4,开发,Servlet,基本流程,(,4,)部署,Servlet,Servlet,编写完成之后,需要部署到服务器才能访问,编译好的文件需要放在,Web,应用的,WEB-INFclasses,下面。,利用,MyEclipse,创建的,Servlet,,成功编译后其,.class,文件已自动放置到,WEB-INFclasses,目录下。,20,2.4,开发,Servlet,基本流程,(,5,)测试,Servlet,测试方式:,访问,Servlet,时,要使用在,web.xml,中配置的,url,地址格式进行访问。,21,2.5 MyEclipse,中开发,Servlet,利用,MyEclipse,,可以在,Web,工程中非常方便地创建,Servlet,程序,并且可以根据需要为程序员自动生成其中的大部分方法。程序员只需在此基础上进行修改就可以快速开发出自己的程序。,22,2.5 MyEclipse,中开发,Servlet,利用,MyEclipse,开发,Servlet,的步骤如下:,(,1,)在创建的,myweb,工程的,src,目录上,右击鼠标,选择,New,Servlet,。,(,2,)在,Name,处输入,Servlet,名字,如,MyServlet,,单击,Next,按钮。,23,24,2.5 MyEclipse,中开发,Servlet,(,3,)在,Servlet/JSP Mapping URL,处配置,Servlet,的,mapping url,信息,如:,/test/MyServlet,。此处配置的,mapping url,即为将来访问,Servlet,时的地址格式。单击,Finish,按钮结束。,25,26,2.5 MyEclipse,中开发,Servlet,(,4,)查看生成的,Servlet,源文件:,在,Eclipse,环境中,创建,Servlet,时可以选择自动生成构造方法、,init,方法、,destroy,方法、,doGet,方法和,doPost,方法。,27,(,5,)查看生成的,Servlet,源文件:,MyEclipse,会为新建的,Servlet,在,web.xml,中自动生成相应的配置代码。每个,Servlet,在,web.xml,中都对应一对,标签和一对,标签。其中:,标签用于声明,Servlet,。其中的子标签又包括:,用于声明,Servlet,的名字,是,web.xml,中内部使用的名字。,标签:用于声明,Servlet,所对应的类名。,标签用于进行,Servlet,映射。其中的子标签又包括:,标签:表示,Servlet,的名字,需要和上面,标签的,子标签中声明的名字保持一致。,标签:用于配置,Servlet,的访问地址。,28,2.5 MyEclipse,中开发,Servlet,(,6,)测试,Servlet,的运行:,可以通过以下,3,种方式进行:,通过在浏览器中直接输入地址访问:,127.0.0.1:8080/myweb/test/MyServlet,通过超链的形式访问:,第一个,Servlet,通过表单提交的方式访问:,29,2.5 MyEclipse,中开发,Servlet,启动,Tomcat,服务器,使用第一种方式,即在浏览器地址栏中直接输入地址访问:,localhost:8080/myweb/test/MyServlet,运行效果如下:,30,2.6 Servlet,实例,1.HelloWorld,程序,1,)引入包,import java.io.*;,import javax.servlet.*;,import javax.servlet.http.*;,import javax.servlet.ServletException;,import javax.servlet.http.HttpServlet;,import javax.servlet.http.HttpServletRequest;,import javax.servlet.http.HttpServletResponse;,31,2.6 Servlet,实例,1.HelloWorld,程序,2,)处理,GET,请求,public class HelloWorld extends HttpServlet,public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException,32,1.HelloWorld,程序,3,)返回结果,response.setContentType(text/html);,PrintWriter out=response.getWriter();,out.println();,out.println();,out.println(HelloWorld);,out.println(“”);,、,out.println();out.println(My first Servlet,HelloWorld);out.println();,out.println();,33,2.6 Servlet,实例,1.HelloWorld,程序,4,)配置,web.xml,HelloWorld,HelloWorld,HelloWorld,/servlets/servlet/HelloWorld,34,2.RequestParam,程序,1,)处理,POST,方法,public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException,doGet(request,response);,35,2.RequestParam,程序,2,)获取参数,String loingName=request.getParameter(loingName);,String userName=new String(request.getParameter(lastname).getBytes(“8859_1”),”GBK”);,36,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服