javaWeb-Servlet(一)
2020-12-13 16:12
标签:request 对象创建 throw cse 接收 gen mapping sed 三种方式 一:什么是Servlet: Servlet是javaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要: 1.接收请求数据 2.处理请求 3.完成响应 例如客户端发来登陆请求,获取输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己编写,每个Servlet必须实现 javax.servlet.Servlet接口 二:实现Servlet的方式 实现Servlet有三种方式: 1.实现javax.servlet.Servlet接口 2.继承javax.servlet.GenericServlet类 3.继承javax.servlet.http.HttpServlet类 通常我们会继承HttpServlet类来完成我们的Servlet,但学习Servlet还要从java.servlet.Servlet接口开始学习。 实现Servlet.java 编写完Servlet类需要在web.xml文件中配置Servlet; 三:Servlet的生命周期 所谓xxx的生命周期,就是说xxx的出生、服务,以及死亡。Servlet生命周期也是如此!与Servlet的生命周期有关的方法有: 1.Servlet的出生 服务器会在Servlet第一次被访问是创建Servlet,或者是在服务器启东市创建Servlet。如果服务器启动时创建Servlet,那么需要在web.xm文件中配置。也就是说默认情况下,Servlet是在第一次被访问时有服务器创建的。 而已一个Servlet类型,服务器只创建一个实例对象,例如在我们首次访问http://localhost:8080/AServlet时,服务器通过“/AServlet”找到了绑定的Servlet名称为cn.itcast.servlet.AServlet,然后服务器查看这个类型的Servlet是否已经创建过,如果没有创建过,那么服务器才会通过反射来创建AServlt的实例。当我们再次访问 cn.itcast.servlet.AServlet时,服务器不会再次创建AServlet实例了,而是直接使用上次创建的实例。 在Servlet被创建后,服务器会马上调用Servlet的void init(ServletConfig config)方法。请记得,Servlet实例化对象创建后马上就会调用init()方法,而且一个Servlt的 一生只会调用一次这个方法。这个方法只会被调用一次。 我们可以爸一些对Servlet的初始化工作放在init()方法中! 2.Servlet服务 当服务器每次接收到请求时,都会调用Servlet的service()方法来处理请求。服务器接收到一次请求,就会调用seviet()方法一次,所用service()方法是会被调用多次的。 正是因为如此,所以我们才需要把处理请求的代码写在service()方法中! 3.Servlet的销毁 通常在服务器关闭时Servlet才会销毁。在服务器被关闭时,服务器会去销毁Servlet,在销毁Servlet之前会调用Servlet的destroy()方法,我们可以把Servlet的临终遗言 放到destroy()方法中,例如对某些资源的释放等代码放到destroy()方法中。
* This method is supplied for convenience. It gets the value of the named
* parameter from the servlet‘s
* This method is supplied for convenience. It gets the parameter names from
* the servlet‘s
* This method is supplied for convenience. It gets the context from the
* servlet‘s javaWeb-Servlet(一) 标签:request 对象创建 throw cse 接收 gen mapping sed 三种方式 原文地址:https://www.cnblogs.com/sacai/p/11618604.html/**
*查看Servlet接口中的方法
*/
public class AServlet implements Servlet {
/*
*它也是生命周期方法
*它会在Servlet被销毁之前调用,并且它只会被调用一次!
*/
@Override
public void destroy() {
System.out.println("destory().....");
}
/*
* 可以用来获取Servlet的配置信息
*/
@Override
public ServletConfig getServletConfig() {
System.out.println("getServletConfig().........");
return null;
}
/*
*获取Servlet信息
*/
@Override
public String getServletInfo() {
System.out.println("getServletInfo()......");
return null;
}
/*
* 它是生命周期方法
* 它会在Servlet对象创建之后马上执行,并只执行一次!(出声之后调用)
*/
@Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("init()....");
}
/*
* 它是生命周期方法
* 它会被调用多次!
* 每次处理请求都是在调用这个方法
*/
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
System.out.println("service()......");
}
1. public void init(ServletConfig config) throws ServletException
2. public abstract void service(ServletRequest req,ServletResponse res) throws ServletException, java.io.IOException
3. public void destroy()
@Override
public void destroy() {
// NOOP by default
}
/**
* Returns a
String
containing the value of the named
* initialization parameter, or null
if the parameter does not
* exist. See {@link ServletConfig#getInitParameter}.
* ServletConfig
object.
*
* String
specifying the name of the
* initialization parameter
* @return String a String
containing the value of the
* initialization parameter
*/
@Override
public String getInitParameter(String name) {
return getServletConfig().getInitParameter(name);
}
/**
* Returns the names of the servlet‘s initialization parameters as an
* Enumeration
of String
objects, or an empty
* Enumeration
if the servlet has no initialization parameters.
* See {@link ServletConfig#getInitParameterNames}.
* ServletConfig
object.
*
* String
objects
* containing the names of the servlet‘s initialization parameters
*/
@Override
public EnumerationServletConfig
object that
* initialized this servlet
*/
@Override
public ServletConfig getServletConfig() {
return config;
}
/**
* Returns a reference to the {@link ServletContext} in which this servlet
* is running. See {@link ServletConfig#getServletContext}.
* ServletConfig
object.
*
* ServletContext
object passed to
* this servlet by the init
method
*/
@Override
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}
/**
* Returns information about the servlet, such as author, version, and
* copyright. By default, this method returns an empty string. Override this
* method to have it return a meaningful value. See
* {@link Servlet#getServletInfo}.
*
* @return String information about this servlet, by default an empty string
*/
@Override
public String getServletInfo() {
return "";
}
下一篇:也说JS脚本加载控制