您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 【黑马程序员】Servlet
黑马程序员成都中心编著【黑马程序员】ServletServletJavaWeb对咋们大家来说,是一个非常重要的阶段,这是大家第一次从eclipse控制台解放思想,回归网页的一个入门地方。这也是很多小伙伴们学习这么久以来,能够深深认识到自己做的原来是这个东西,学的原来就是这个东西了。有没有很兴奋,很激动啊,当从页面输入数据后,再在页面显示出自己所要的结果的时候,是不是觉得非常有成就感了!~对,就是要这样!HTTP协议标记:优先级1定义:超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法作用:规定浏览器和服务器的数据交互的格式.HTTP协议的特点:基于请求和响应的模型*必须先有请求后有响应.*请求和响应必须成对出现.默认的端口号是80.黑马程序员成都中心编著HTTP协议的请求部分请求行请求方式:GET和POST的区别*GET的提交的参数会显示到地址栏上,而POST不显示.*GET往往是有大小限制的,而POST没有大小的限制.*GET没有请求体,而POST有请求体.*提交路径:*协议版本:请求头:都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value.User-Agent:代表浏览器的类型.---文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码.Referer:代表的是网页的来源.---防盗链.If-Modified-Since:通常与响应中的头Last-Modified一起使用查找本地缓存请求体就是POST提交方式的提交的参数HTTP协议的响应部分响应行黑马程序员成都中心编著*协议版本*状态码:*200:成功*302:重定向*304:查找本地缓存*404:资源不存在*500:服务器内部错误*状态码描述响应头:键值对,一般一个key对应一个value,也有一个key对应多个value*Last-Modified:与请求中的If-Modified-Since一起使用查找本地缓存.*Content-Dispostion:文件下载的使用使用的一个头信息.*Location:重定向的跳转的路径.*Refresh:定时刷新/定时跳转.响应体显示浏览器的页面的内容黑马程序员成都中心编著ServletServlet的概述什么是Servlet:*就是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议.*Servlet就是SUN公司提供的一个动态网页开发技术.Servlet的作用:*用来处理从客户端浏览器发送的请求,并且可以对请求作出响应独立编写一个Servlet:*编写一个类implementsServlet接口.publicclassServletDemo1implementsServlet{@Override/***为用户处理请求和响应的方法.*/publicvoidservice(ServletRequestreq,ServletResponseres)throwsServletException,IOException{res.getWriter().println(HelloServlet...);}...}黑马程序员成都中心编著*将编写的这个类配置到服务器中.!--配置Servlet--servlet!--Servlet的名称--servlet-nametest1/servlet-name!--SErvlet的全路径--servlet-classcom.itheima.a_servlet.ServletDemo1/servlet-class/servlet!--Servlet的映射--servlet-mapping!--Servlet的名称--servlet-nametest1/servlet-name!--Servlet的访问路径--url-pattern/ServletDemo1/url-pattern/servlet-mappingServlet的关系Servlet:接口(ImplementingClasses:FacesServlet,GenericServlet,HttpServlet)||GenericServlet:通用的Servlet(ImplementedInterfaces:java.io.Serializable,Servlet,ServletConfig)|黑马程序员成都中心编著|HttpServlet(ImplementedInterfaces:java.io.Serializable,Servlet,ServletConfig)*编写一个类继承HttpServlet,重写doGet和doPost方法.*配置Servlet的生命周期(面试常用的问题)生命周期:就是一个对象从创建到销毁的过程.Servlet生命周期:Servlet从创建到销毁的过程.*何时创建:用户第一次访问Servlet创建Servlet的实例*何时销毁:当项目从服务器中移除的时候,或者关闭服务器的时候.描述概述:用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.在service方法内部根据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.Servlet相关配置启动时加载Servlet默认是在第一次访问的时候创建的.现在让Servlet在服务器启动的时候创建好.进行对Servlet的配置:在web.xml中在servlet/servlet标签中配置:*load-on-startup2/load-on-startup---传入正整数,整数越小,被创建的优先级就越高.url-pattern的配置黑马程序员成都中心编著1.完全路径匹配:以/开始例如:/ServletDemo4,/aaa/ServletDemo5,/aaa/bbb/ServletDemo62.目录匹配:以/开始需要以*结束.例如:/*,/aaa/*,/aaa/bbb/*3.扩展名匹配:不能以/开始以*开始的.例如:*.do,*.action*****错误的写法:/*.do*****完全路径匹配目录匹配扩展名匹配开发中路径的问题APIServletjavax.servletInterfaceServlet所有已知实现类HttpServlet所有实现的接口java.io.SerializableServlet黑马程序员成都中心编著ServletConfig在Java中,通常所说的servlet是指HttpServlet对象,在声明一个对象为servlet时,需要继承HttpServlet类。HttpServlet类是Servlet接口的一个实现类,继承该类后,可以重写HttpServlet类中的方法对HTTP请求进行处理。protectedvoiddoDelete(HttpServletRequestreq,HttpServletResponseresp)protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)protectedlonggetLastModified(HttpServletRequestreq)protectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)voidservice(ServletRequestreq,ServletResponseres)GenericServlet该类是一个抽象类,分别实现了servlet接口与servletConfig接口。该类实现了除service()之外的其他方法,在创建Servlet对象时,可以继承该类来简化程序代码,但是要实现service()方法。FacesServletvoiddestroy()当Servlet对象从servlet容器中移除时,容器调用该方法,以便释放资源黑马程序员成都中心编著ServletConfiggetServletConfig()用于获取servlet对象的配置信息,返回servletconfig对象java.lang.StringgetServletInfo()返回有关Servlet的信息,它是纯文本格式的字符串,如作者,版本等voidinit(ServletConfigconfig)servlet实例化后,servlet容器调用该方法来完成初始化工作voidservice(ServletRequestreq,ServletResponseres)用于处理客户端的请求ResponseInterfaceHttpServletResponseextendsServletResponseHttpServletResponse接口位于javax.servlet.http包中,继续了ServletResponse接口,是servlet中的重要对象。voidaddCookie(Cookiecookie)向客户端写入cookie信息voidaddDateHeader(java.lang.Stringname,longdate)黑马程序员成都中心编著voidaddHeader(java.lang.Stringname,java.lang.Stringvalue)针对一个key对应多个value的响应头.voidaddIntHeader(java.lang.Stringname,intvalue)voidsendRedirect(Stringlocation)使用客户端重定向到新的URL,参数location为新的地址voidsetDateHeader(java.lang.Stringname,longdate)voidsetHeader(java.lang.Stringname,java.lang.Stringvalue)针对一个key对应一个value的响应头.voidsetIntHeader(java.lang.Stringname,intvalue)InterfaceServletResponsevoidsetContentType(java.lang.Stringtype)voidsetCharacterEncoding(java.lang.Stringcharset)java.lang.StringgetCharacterEncoding()java.lang.StringgetContentType()黑马程序员成都中心编著java.io.PrintWritergetWriter()requestinterfaceHttpServletRequestextendsServletRequestHttpServletRequest接口位于javax.servlet.http包中,继续了ServletRquest接口,是servlet中的重要对象。(域对象)publicStringgetMethod();---获得请求所使用的HTTP类型,如get,postpublicStringgetQueryString();---返回请求中参数的字符串形式。如请求MyServlet?username=a,则返回username=a.
本文标题:【黑马程序员】Servlet
链接地址:https://www.777doc.com/doc-3855089 .html