servlet

来源:互联网 发布:linux curse 是什么 编辑:程序博客网 时间:2024/06/09 20:05

servlet---java web服务器进行加载响应客户端请求的代码模块

webapp目录结构

/web:应用根目录--WEB-INF(tomcat会隐藏该文件夹下的所有文件,保护其不被浏览器访问-->可以在web.xml里面配置访问路径的)/WEB-INF/web.xml:web程序主要的配置文件/WEB-INF/lib/:存放jar文件/WEB-INF/classes/:存放编译好的java文件,.class格式
servlet内部常用的方法介绍(https://docs.oracle.com/cd/E17802_01/products/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/Servlet.html):

init():初始化一个servlet,如果这个servlet在web.xml里设置了<load-on-startup=1>则在启动tomcat时启动,否则在第一次请求该servlet时启动destory():关闭该servlet,一般在该servlet关闭是调用doGet():接收由get方法访问服务器的请求(get方法信息在地址栏,不超过256个字符)doPost():接收由post方法访问服务器的请求(post可以传递大量的数据,也更加安全,毕竟不在地址栏显示信息)service():请求转向,一旦被重写,服务器会首先自动调用该方法(init,destory一样),根据该方法进行请求的冲定向,即使重写了dopost和doget,如果根据需要非要重写service方法,且根据请求调用相关的方法(get请求调用doGet),则在service里面最后加上super.service() 
web.xml:

<servlet>  <servlet-name>xxx</servlet-name>给该servlet1个名字,例如FirstServlet  <servlet-class>xxx</servlet-class>该servlet对应的具体的类,例如com.dazhi.servlet.FirstServlet  <init-param>初始化参数。。。后面有时间在具体更新下这个    .    .  </init-param></servlet><servlet-mapping>  <servlet-name>xxx</servlet-name>对应的servlet名字  <url-pattern>xxx</url-pattern>该servlet的访问路径,例如/firstServlet,这个可以配置多个访问路径,也可以使用通配符"*"和"?",前者表示任意长度字符串,后者表示任意字符,不是任意长度哦<servlet-mapping>

servlet生命周期:

服务器第一次启动时或者第一次访问该servlet是启动,调用init()方法初始化,然后调用相应的方法处理响应请求(get post),如果重写了service方法则根据该方法转向,结束是调用destory方法,一般服务器关闭的时候
servlet之间的跳转问题:
Forward实现
该方法又称为服务器端跳转,客户端浏览器地址栏不会变,只能访问应用内的url,采用RequestDispatcher对象的forward方法实现具体解释(来自百度):<pre id="best-content-921943369" class="best-text mb-10">转发过程:客户浏览器发送http请求----》web服务器接受此请求--》调用内部的一个方法在容器内部完成请求处理和转发动作----》将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
Redirect实现
还是来自百度:<pre id="best-content-921943369" class="best-text mb-10">重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器--》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
重定向,其实是两次request, 第一次,客户端request   A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失
scope属性:

四种(由小到大):page,request,sesssion,application


0 0
原创粉丝点击