servlet+forward和direct区别
Servlet:是用于 java 编写的服务器端程序,其使用 java servlet API,当客户机发送请求到服务器时,服务器可以将请求信息发送给 servlet,并让 servlet 建立起服务器返回给客户机的响应。当启动 web 服务器 or 客户机第一次请求服务时,可以自动装入 servlet,装入后,servlet 继续运行直到其他客户机发出请求。
Servlet 工作原理:客户端发起一个请求,servlet 调用 service()方法时请求进行响应,service 对请求的方式进行了匹配,选择调用 dopost 或者 doget 等这些方法,然后进入对应方法中调用逻辑层上的方法,实现对客户的响应。
Servlet 生命周期:
1)初始化阶段:调用 init()方法
在下列时刻 servlet 容器装载 servlet
1.servlet 容器启动时,自动装载某些 servlet
2. 在 servlet 容器启动后,客户首次向 servlet 发送请求
3.servlet 类文件被更新以后,重新装载 servlet。Servlet 被装载后,servlet容器创建一个 servlet 对象并调用 servlet 的 init 方法。在 servlet 生命周期内,init()方法只被调用过一次。
2)响应客户请求:调用 service()
响应客户请求:对于用户到达servlet 的请求,servlet 容器会创建特定于该请求的 servletRequest 和 servletResponse 对象, 然后调用 servlet 的 service 方法,service 方法从 servletRequest 对象中获得客户请求的信息, 处理该请求,并通过 servletResponse 对象向客户返回响应消息。
3)终止:调用 destory()
当 web 应用终止或者 Servlet 容器终止或 Servlet 容器重新装载 Servlet 新实例时,Servlet 容器会调用 Servlet 对象的destory 方法,在 destory 方法中可释放 Servlet 占用的资源。
Tomcat 就是Servlet 容器,Servlet 容器为Javaweb 应用提供运行时环境,它负责管理Servlet和Jsp的生命周期,以及管理他们的共享数据。
以下方法都由 servlet 容器调用:
1)构造函数:只有第一次请求 servlet 时,创建 servlet 实例,调用构造器,这说明 servlet 是单例的,所以有线程安全问题,只被调用一次。
2)init:只被调用一次,在创建好实例后,立即被调用,用来初始化servlet。
3)service:被多次调用,每次请求都会调用 service,实际响应请求。
4)destory:只被调用一次,在当前 servlet 所在的 web 应用被卸载前调用,用于释放当前 servlet 所占用的资源。
JEE5.0中的Servlet相关的就下面这几个包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
这两个包了.
|
1
2
3
4
5
6
|
<html> <head><title> 跳转 </title> </head> <body> <jsp:forward page="index.htm"/> </body> </html> |
servlet+forward和direct区别的更多相关文章
- (转发)RequestDispatcher的include()方法和forward()方法的区别
forward(): 该方法用于将请求从一个Servlet传递给服务器上的另外的Servlet.JSP页面或者是HTML文件. 在Servlet中,可以对请求做一个初步的处理,然后调用这个方法,将请求 ...
- sendRedirect()和forward()方法的区别
sendRedirect()和forward()方法的区别 之前好像曾经整理过,但忘了放在哪里了,好像压根就没整理过,博客里也没有,故今天重新整理一下. 我们知道页面之间的跳转有两种方式:重定向与转发 ...
- Servlet的生命周期,并说出Servlet和CGI的区别,Servlet与JSP的区别
一.Servlet 生命周期 1.加载 2.实例化 3.初始化 4.处理请求 5.销毁 二.Servlet与cgi的区别: Servlet处于服务器进程中,它通过多线程方式运行其service方法,一 ...
- Servlet与JSP的区别(转)
原文链接:Servlet与JSP的区别 两者之间的联系和区别 [1]JSP第一次运行的时候会编译成Servlet,驻留在内存中以供调用. [2]JSP是web开发技术,Servlet是服务器端运用的小 ...
- 6.servlet和jsp的区别
servlet和jsp的区别 jsp作为Servlet技术的扩展,经常会有人将jsp和Servlet搞混.本文,将为大家带来servlet和jsp的区别,希望对大家有所帮助. servlet和jsp的 ...
- 说出Servlet的生命周期,并说出Servlet和CGI的区别。
说出Servlet的生命周期,并说出Servlet和CGI的区别. 山治ZHrx5 | 浏览 1377 次 推荐于2016-09-16 22:39:19 最佳答案 Servlet的生命周期分为5个阶段 ...
- 重定向(redirect)与转发(forward)的区别
重定向(redirect)与转发(forward)的区别 1.重定向时地址栏会发生改变,转发时地址栏不会发生改变 当浏览器请求资源时,服务器直接访问目标地址的URL,将URL的响应内容读取,之后再将读 ...
- servlet转发与重定向区别
servlet转发与重定向 HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParam ...
- jsp中jsp:forward 与 redirect区别
部分转载:http://hi.baidu.com/168zlf/item/2f4b2ad4351b881c20e2500c 在网上看到一些帖子,总结了一些区别,可以从以下几个方面来看: 1.从地址栏显 ...
随机推荐
- CSP201312-1:出现次数最多的数
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的“计算机职业资格认证”考试,针对计算机软件开发. ...
- Turtle模块,一个超精简但功能齐全的绘图包
先上官方链接https://docs.python.org/3.3/library/turtle.html 再上一个GitHub上别人做的一个小程序,画小猪佩琦的,里面用到了大量常用的turtle接口 ...
- 【虚拟货币钱包】从 BIP32、BIP39、BIP44 到 Ethereum HD Wallet
干货 | [虚拟货币钱包]从 BIP32.BIP39.BIP44 到 Ethereum HD Wallet {{uploading-image-882090.png(uploading...)}}
- 【Python】Python内置函数dir详解
1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: 复制代码代码如下: >>> help(dir)Help on built-in function ...
- android多点触控自由对图片缩放
在系统的相册中,观看相片就可以用多个手指进行缩放. 要实现这个功能,只需要这几步: 1.新建项目,在项目中新建一个ZoomImage.java public class ZoomImageView e ...
- C++STL中的vector的简单实用
[原创] 使用C++STL中的vector, #include <stdio.h> #include<stdlib.h> #include<vector> usin ...
- 有关于PHP的基础知识
(1) l 长字符串表示,必须放在“<<<heredoc”和 “heredoc;”之间.主要是<<<,其次是也可以不使用heredoc. l “<< ...
- 【Solr】——Solr7安装教程
前提 solr已经升级7.1,但是我们公司的solr还是使用的4.4,你们说low不low!!!重要的是,人家花费了大气将solr升级,从技术的角度来说solr7比solr4那是翻天覆地的改变! so ...
- javaScript的流程控制语句学习笔记
JavaScript提供了5种流程控制语句,if条件判断语句,switch语句,for循环语句,while循环语句,do-while循环语句. 1.条件判读语句 对变量或表达式进行判定,并根据判定结果 ...
- javasisst & JAVA8
今天在服务器上启动tomcat7的时候,提示如下异常: java.io.IOException: invalid constant type: 15 具体看是javasisst抛出来的. 系统运行环境 ...