导航:首页 > 研究方法 > servlet有什么方法

servlet有什么方法

发布时间:2022-11-06 04:46:09

① Servlet执行时一般实现哪几个方法

Servlet执行时要先编译成xx.class源文件,然后由jvm的类加载器加载进运行时容器,如tomcat,
当有人访问你的Servlet时,Servlet首先运行自己的构造方法,然后运行init()方法,进行Servlet的初始化,之后运行service()方法,在service()方法中,根据你请求的类型,如直接通过url地址打开这个Servlet为get方式,如通过表单并且表单的method属性为post,打开Servlet才为post方式;
service()方法根据你访问这个Servlet用的是get还是post方式,分别调用doGet,和doPost方法。
然后当Servlet容器,web服务器关闭时,调用此Destroy()方法销毁此Servlet对象.

执行的方法按顺序为:构造方法,init(),doGet()或者doPost(),Destroy();

② Servlet主要有哪些方法

init(), service(),destroy()
这个可以认为是一个 servlet的生命周期
1.建立初始化servlet ---init(),

2.处理从客户端的零个或多个请求 ---service()(当然此方法包含 post,get方法)

3.销毁servlet,gc回收占用内存 ---destroy();

每个server可能在如何支持servlet上有不同的方法,但是生命周期却是每个servlet 引擎必须遵守的规则。
所以这三个方法是最重要的,当然还有其他方法,只是没有这三个方法最常用!

③ 调用servlet的方法是什么

如果是web项目,写完servlet时在webroot下的web-inf文件夹下的web.xml文件进行配置,
配置方法:

<!--定义一个Servlet实例-->
<servlet>
<servlet-name>Servlet的实例名</servlet-name>
<servlet-class>Servlet类的全限定名(包名.类名)</servlet-class>
</servlet>
<!--配置访问指定Servlet的URL模式-->
<servlet-mapping>
<servlet-name>Servlet的实例名</servlet-name>
<url-pattern>URL匹配模式</url-pattern>
</servlet-mapping>

例如:
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>com.servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/first.do</url-pattern>
</servlet-mapping>
通过servlet方法中的指定跳转就可以去相应的jsp文件,这样就能在jsp中获取到servlet中要传输的数据

④ Servlet执行时一般实现哪几个方法

Servlet执行时要先编译成xx.class源文件,然后由jvm的类加载器加载进运行时容器,如tomcat,
当有人访问你的Servlet时,Servlet首先运行自己的构造方法,然后运行init()方法,进行Servlet的初始化,之后运行service()方法,在service()方法中,根据你请求的类型,如直接通过url地址打开这个Servlet为get方式,如通过表单并且表单的method属性为post,打开Servlet才为post方式;
service()方法根据你访问这个Servlet用的是get还是post方式,分别调用doGet,和doPost方法。
然后当Servlet容器,web服务器关闭时,调用此Destroy()方法销毁此Servlet对象.

执行的方法按顺序为:构造方法,init(),doGet()或者doPost(),Destroy();

⑤ 三种实现servlet的方式有什么区别

开发Servlet有三种方式:
1、实现Servlet接口
2、通过继承GenericServlet
3、通过继承HttpServlet
区别如下:
首先明确,Servlet并不是专门用于处理Http请求的。

1)原生Servlet接口

package javax.servlet;
import java.io.IOException;
public interface Servlet {
public void init(ServletConfig config) throws ServletException;
public ServletConfig getServletConfig();
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;
public String getServletInfo();
public void destroy();
}

可以看到Servlet接口是定义在javax.servlet包中,该接口定义了5个方法。
init() :在Servlet实例化之后,Servlet容器会调用init()方法,来初始化该对象,主要是为了让Servlet对象在处理客户请求之前可以完成一些初始化工作,比如:建立数据库的连接,获取配置信息。

service():容器调用service()方法来处理客户端的请求。

destroy():当容器检测到一个Servlet对象应该从服务器中被移除的时候,容器会调用该对象的destroy方法,以便让Servlet对象可以释放它所使用的资源,保存数据到持久化存储设备中,例如:将内存中的数据保存到数据库中,关闭数据库的连接。

2)GenericServlet
直接通过实现Servlet接口来编写一个Servlet类,就需要实现Servlet接口中定义的5种方法,为了简化Servlet的编写,在javax.servlet包中,给我们提供了一个抽象的类GenericServlet,它提供了除service()方法外的其他4种方法的简单实现。GenericServlet类定义了一个通用的,不依赖具体协议的Servlet

package javax.servlet;

import java.io.IOException;
import java.util.Enumeration;
import java.util.ResourceBundle;

public abstract class GenericServlet
implements Servlet, ServletConfig, java.io.Serializable
{
private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
private static ResourceBundle lStrings =
ResourceBundle.getBundle(LSTRING_FILE);

private transient ServletConfig config;

public GenericServlet() { }

public void destroy() {
}

public String getInitParameter(String name) {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getInitParameter(name);
}

public Enumeration<String> getInitParameterNames() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getInitParameterNames();
}

public ServletConfig getServletConfig() {
return config;
}

public ServletContext getServletContext() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getServletContext();
}

public String getServletInfo() {
return "";
}

public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
}

public void init() throws ServletException {

}

public void log(String msg) {
getServletContext().log(getServletName() + ": "+ msg);
}
public void log(String message, Throwable t) {
getServletContext().log(getServletName() + ": " + message, t);
}

public abstract void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;

public String getServletName() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getServletName();
}
}

3)HttpServlet

由于大多数网络应用中,都是浏览器通过HTTP协议去访问服务器资源,而通常编写的Servlet也主要是应用于HTTP协议的请求和响应,为了快速开发应用于HTTP协议的Servlet,Sun公司在javax.servlet.http包中给我们提供了一个抽象的类HttpServlet,他继承自GenericServlet类,用于创建适合Web站点的HTTP Servlet。

比如,doPost doGet这些方法,从request解析请求信息开始,将根据http协议的格式进行解析,分发到不同的请求方法处理中,doPost doGet也肯定是被service方法调用的。

⑥ 谈谈servlet中可以写哪些方法,以及servlet中一般要做哪些工作

HttpServlet 类包含 init() 、 destroy() 、 service() 等方法。其中 init() 和 destroy() 方法是继承的。
(1) init() 方法
在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行的。 可以配置服务器,以在启动服务器或客户机首次访问 Servlet 时装入 Servlet 。 无论有多少客户机访问 Servlet ,都不会重复执行 init() 。
缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法来覆盖它,典型的是管理服务器端资源。 例如,可能编写一个定制 init() 来只用于一次装入 GIF 图像,改进 Servlet 返回 GIF 图像和含有多个客户机请求的性能。另一个示例是初始化数据库连接。缺省的 init() 方法设置了 Servlet 的初始化参数,并用它的 ServletConfig 对象参数来启动配置, 因此所有覆盖 init() 方法的 Servlet 应调用 super.init() 以确保仍然执行这些任务。在调用 service() 方法之前,应确保已完成了 init() 方法。
(2) service() 方法
service() 方法是 Servlet 的核心。每当一个客户请求一个 HttpServlet 对象,该对象的 service() 方法就要被调用,而且传递给这个方法一个“请求”( ServletRequest )对象和一个“响应”( ServletResponse )对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。例如, 如果 HTTP 请求方法为 GET ,则缺省情况下就调用 doGet() 。 Servlet 应该为 Servlet 支持的 HTTP 方法覆盖 do 功能。因为 HttpServlet.service() 方法会检查请求方法是否调用了适当的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。
= 当一个客户通过 HTML 表单发出一个 HTTP POST 请求时, doPost ()方法被调用。 与 POST 请求相关的参数作为一个单独的 HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用 doPost() 方法。
= 当一个客户通过 HTML 表单发出一个 HTTP GET 请求或直接请求一个 URL 时, doGet() 方法被调用。 与 GET 请求相关的参数添加到 URL 的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用 doGet() 方法。
Servlet 的响应可以是下列几种类型:
一个输出流,浏览器根据它的内容类型(如 text/HTML )进行解释。
一个 HTTP 错误响应 , 重定向到另一个 URL 、 servlet 、 JSP 。
(3) destroy() 方法
destroy() 方法仅执行一次,即在服务器停止且卸装 Servlet 时执行该方法。典型的,将 Servlet 作为服务器进程的一部分来关闭。缺省的 destroy() 方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如,如果 Servlet 在运行时会累计统计数据,则可以编写一个 destroy() 方法,该方法用于在未装入 Servlet 时将统计数字保存在文件中。另一个示例是关闭数据库连接。
当服务器卸装 Servlet 时,将在所有 service() 方法调用完成后,或在指定的时间间隔过后调用 destroy() 方法。一个 Servlet 在运行 service() 方法时可能会产生其它的线程,因此请确认在调用 destroy() 方法时,这些线程已终止或完成。
(4) GetServletConfig()方法
GetServletConfig ()方法返回一个 ServletConfig 对象,该对象用来返回初始化参数和 ServletContext 。 ServletContext 接口提供有关 servlet 的环境信息。
(5) GetServletInfo()方法
GetServletInfo ()方法是一个可选的方法,它提供有关 servlet 的信息,如作者、版本、版权。
当服务器调用 sevlet 的 Service ()、 doGet ()和 doPost ()这三个方法时,均需要 “请求”和“响应”对象作为参数。“请求”对象提供有关请求的信息,而“响应”对象提供了一个将响应信息返回给浏览器的一个通信途径。 javax.servlet 软件包中的相关类为 ServletResponse 和 ServletRequest ,而 javax.servlet.http 软件包中的相关类为 HttpServletRequest 和 HttpServletResponse 。 Servlet 通过这些对象与服务器通信并最终与客户机通信。 Servlet 能通过调用“请求”对象的方法获知客户机环境,服务器环境的信息和所有由客户机提供的信息。 Servlet 可以调用“响应”对象的方法发送响应,该响应是准备发回客户机的。

⑦ HttpServlet类中的主要方法都有哪些

首先我们来看看HttpServlet的继承关系。它是一个抽象类。
继承了上层抽象类GenericServlet,再向上实现了Servlet接口。
根据API文档,HttpHervlet一共含有10各方法:

init()初始化时使用。
service()提供服务,一般不需要覆盖。不对,是大多数时候不需要

destroy()销毁时使用
以上为生命周期方法。另外还有可重写的服务方法:

doDelete;doHead;doGet;doPost;doOptions;doPut;doTrace
特别注意!service方法一般不重写,但是还是有可能重写。
这里有两个service方法的重载:
service(HttpServletRequest req, HttpServletResponse
resp):
service(ServletRequest req, ServletResponse
res)
再多废话一点!HttpServlet开始说了。只是一个抽象类,
真正使用时我们要定义自己的Servlet 如MyServlet去继承HttpServlet哦~
纯手打~

⑧ Servlet执行时一般实现哪几个方法

Servlet执行时要先编译成xx.class源文件,然后由jvm的类加载器加载进运行时容器,如tomcat,

当有人访问你的Servlet时,Servlet首先运行自己的构造方法,然后运行init()方法,进行Servlet的初始化,之后运行service()方法,在service()方法中,根据你请求的类型,如直接通过url地址打开这个Servlet为get方式,如通过表单并且表单的method属性为post,打开Servlet才为post方式;

service()方法根据你访问这个Servlet用的是get还是post方式,分别调用doGet,和doPost方法。

然后当Servlet容器,web服务器关闭时,调用此Destroy()方法销毁此Servlet对象.

执行的方法按顺序为:构造方法,init(),doGet()或者doPost(),Destroy();

⑨ Servlet包含哪些主要方法,这些方法主要起什么作用

HttpServlet 类包含 init() 、 destroy() 、 service() 等方法。其中 init() 和 destroy() 方法是继承的。
(1) init() 方法
在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行的。 可以配置服务器,以在启动服务器或客户机首次访问 Servlet 时装入 Servlet 。 无论有多少客户机访问 Servlet ,都不会重复执行 init() 。
(2) service() 方法
service() 方法是 Servlet 的核心。每当一个客户请求一个 HttpServlet 对象,该对象的 service() 方法就要被调用,而且传递给这个方法一个“请求”( ServletRequest )对象和一个“响应”( ServletResponse )对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。例如, 如果 HTTP 请求方法为 GET ,则缺省情况下就调用 doGet() 。 Servlet 应该为 Servlet 支持的 HTTP 方法覆盖 do 功能。因为 HttpServlet.service() 方法会检查请求方法是否调用了适当的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。
(3) destroy() 方法
destroy() 方法仅执行一次,即在服务器停止且卸装 Servlet 时执行该方法。典型的,将 Servlet 作为服务器进程的一部分来关闭。缺省的 destroy() 方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如,如果 Servlet 在运行时会累计统计数据,则可以编写一个 destroy() 方法,该方法用于在未装入 Servlet 时将统计数字保存在文件中。另一个示例是关闭数据库连接。

阅读全文

与servlet有什么方法相关的资料

热点内容
中式棉袄制作方法图片 浏览:65
五菱p1171故障码解决方法 浏览:860
男士修护膏使用方法 浏览:548
电脑图标修改方法 浏览:609
湿气怎么用科学的方法解释 浏览:539
910除以26的简便计算方法 浏览:807
吹东契奇最简单的方法 浏览:706
对肾脏有好处的食用方法 浏览:100
电脑四线程内存设置方法 浏览:514
数字电路通常用哪三种方法分析 浏览:17
实训课程的教学方法是什么 浏览:527
苯甲醇乙醚鉴别方法 浏览:84
苹果手机微信视频声音小解决方法 浏览:702
控制箱的连接方法 浏览:77
用什么简单的方法可以去痘 浏览:791
快速去除甲醛的小方法你知道几个 浏览:805
自行车架尺寸测量方法 浏览:126
石磨子的制作方法视频 浏览:154
行善修心的正确方法 浏览:405
薯仔炖鸡汤的正确方法和步骤 浏览:278