文章目录
Servlet简介
- Servlet是Java提供的一门动态web资源开发技术
- Servlet是JavaEE规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet
Servlet快速入门
导入Servlet依赖坐标
编辑pom.xml
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
刷新后导入成功
新建测试类
package com.taotao.web;
import javax.servlet.*;
import java.io.IOException;
public class ServletDemo01 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet hello world");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
注解写上访问路径
demo1是自定义命名
运行测试
点击进入网址
输入demo1
控制台输出
Servlet执行流程
流程图
Servlet生命周期
方法演示(init,service,destroy)
复制黏贴ServletDemo01类
package com.taotao.web;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/demo2")
public class ServletDemo02 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet hello world");
}
@Override
public void destroy() {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
}
init()
/**
* 初始化方法
* 1.调用实际:默认情况下,Servlet波第一次访问时,调用
* 2.调用次数:一次
*/
不启动servlet的情况下调用init()
service()
/**
* 提供服务
* 1.调用时机:每一次servlet被访问时,调用
* 2.调用次数,多次
*/
destroy()
/**
* 销毁方法
* 1.调用时机:内存释放或者服务器关闭的时候,Servlet对象会被销毁,调用
* 2.调用次数:1次
*
*/
直接关闭服务器不会调用
调用举例
启动servlet(mvn tomcat7:run)
等待下载组件…等了2分钟
启动完成
关闭servlet
ctrl + c
getServletConfig()
因为此方法返回的是一个ServletConfig对象,但是我们又没有这个对象,所以默认return null
但是,为了验证返回ServletConfig对象,我们可以private一个成员变量,当我们启动Servlet时
源码举例
package com.taotao.web;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(urlPatterns = "/demo2",loadOnStartup = 1)
@SuppressWarnings({"all"})
public class ServletDemo02 implements Servlet {
private ServletConfig config;
/**
* 初始化方法
* 1.调用实际:默认情况下,Servlet波第一次访问时,调用
* 2.调用次数:一次
* @param servletConfig
* @throws ServletException
*/
@Override
public void init(ServletConfig servletConfig) throws ServletException {
this.config = config;
System.out.println("init....");
}
/**
* 提供服务
* 1.调用时机:每一次servlet被访问时,调用
* 2.调用次数,多次
* @param servletRequest
* @param servletResponse
* @throws ServletException
* @throws IOException
*/
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet hello world");
}
/**
* 销毁方法
* 1.调用时机:内存释放或者服务器关闭的时候,Servlet对象会被销毁,调用
* 2.调用次数:1次
*
*/
@Override
public void destroy() {
System.out.println("destroy被调用");
}
@Override
public ServletConfig getServletConfig() {
return config;
}
@Override
public String getServletInfo() {
return null;
}
}
getServletInfo()
获取Servlet信息,不再演示