Servlet In Web Application

来源:互联网 发布:js和jquery的事件区别 编辑:程序博客网 时间:2024/05/22 06:59
Servlet In Web Application
 
HttpServlet的执行步骤:
1.       容器收到调用请求的时候,先调用HttpServletservice()方法;
2.       如果HttpServletservice()方法没有被重写,那么就调用Servletservice()方法,
3.       这个方法中,会根据requerst head中的method 参数来判断执行哪个函数。方法名称为:XXX ,那么就执行 doXXX()方法。
 
Note:
·          http1.0中有三种方法:get,post,head.http1.1中又增加了5个方法:put, options,delete,trace,connect.
·          如果HttpServlet中的service()被重写,那么就要人工的根据method判断需要调用的方法。
·          在浏览器中如果不指定request中的方法名,那么默认为get。比如链接,未声明method的表单,都默认是用get。所以当你想提交比较长的数据,或者不想把表单中的数据显示到链接的后面,那么就必须声明formmethod方法为post.
 
HttpServletResponse:
1.   getWriter() getOutputStream()方法在同一个ServletResponse中只能调用其中之一。否则会抛出IllegalStateException。但是同一个方法是可以多次调用的。
2.       Reponse.setRedirect().方法要在response head发送到客户端之前调用,否则会抛出IllegalStateExceptionserRedirect()方法实际上就是通过response head告诉浏览器,转向到指定的地址。和重新在地址栏输入地址效果一样。原先发送过的request数据是没有的,更forward()方法有所区别。Forward方法对客户端来说是透明的,服务器端将收到的request转发给特定的资源。
 
Servlet Life Cycle
       1. Servlet 实例默认在容器第一次受到对该Servlet的请求的时候初始化,也可以进行预加载,在描述文件中设置<load-on-startup>
       2. Servlet的初始化调用的是init(ServletConfig)函数,其中ServletConfig包含了在描述文件中对这个Servlet设置的初始化参数。这个函数运行完毕之后Servlet才能进入initialized状态。
       3. GenericServlet(Servlet接口的一般实现)中还有一个不带参数的init() ,这方法是用来提供给用户重写的,当想在初始化的时候做些事情,重写这个方法既可,init(ServletConfig)方法会自动调用这个方法。在init()中如果想使用ServletConfig,可以通过函数getServletConfig()来获得。如果重写了init(ServletConfig)方法,那么记住要在方法中使用super.init(ServletConfig).
 
ServletContext
         ServletContext是整个Web Application的公共对象,保存了这个应用的环境参数,也可以被共享所有Servlet的公共数据。他也有权利访问整个应用的说有资源。
         ServletContext获得资源的方法有:
1. Java.net.URL getResource(String path)
2. java.io.InputStream getResourceAsStream(String path)
3. String getRealPah(String relativePath) //返回本地绝对路径,但是不能读取jar包里面的文件。
 
RequestDispatcher
          有两种方式获得RequestDispatcher,通过ServletContextServletRequest,这两种方式获得的RequestDispatcher 的区别是:后者可以使用相对路径,而前者不可以。
          两个函数:
1.   Void forward(ServletRequest request,ServletResponse response)
response commited 之前,可以将request response路由到别的servlet或者jsp来继续处理。
2.   Void include(ServletRequest request,ServletResponse response)
response commited 之前,可以将request response路由到别的servlet或者jsp来处理,但是处理完成后还会回到本servlet.
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 前夫把我微信拉黑 孩子的事怎么办 微信好友验证疑似被盗怎么办 我的世界被banip怎么办 dnf深渊宝珠出了怎么办 吞噬魔4个球吃了怎么办 dnf没有支援兵了怎么办 家里没通天然气怎么办 苹果6p16g不够用怎么办 魅蓝手机内存不够用怎么办 3dmax灯光全黑怎么办 高压15o低压1oo怎么办 源码一位乘法中c怎么办 怀孕搬了重东西怎么办 深蹲力量不涨怎么办 ps4连接显示器分辨率低怎么办 大疆失去链接后怎么办 脑袋被锤了几拳怎么办 华为手机变板砖怎么办 电脑网页打开很慢怎么办 网页加载速度太慢.怎么办 cad字显示不出来怎么办 dell笔记本打不开机怎么办 手机系统界面已停止运行怎么办 大石退出菊丸怎么办 word空白页面突然变大了怎么办 高速上车胎爆了怎么办 没有定速巡航跑长途怎么办 惠普笔记本驱动无法安装怎么办 狙击手遇到热追踪导弹怎么办 做完卷腹脖子疼怎么办 医疗设备销售遭遇瓶颈怎么办 给顾客加油加超了怎么办 卡密码输错两次怎么办 擤鼻涕耳朵会响怎么办 鼻子里有血丝是怎么办 怀孕8周上火了怎么办 鼻炎犯了鼻涕流不停怎么办 擤鼻涕眼睛肿了怎么办 感冒咳嗽鼻子不通气怎么办 宝宝感冒不会擤鼻涕怎么办 新生儿鼻腔里有鼻涕怎么办