目录
一、Servlet概述
Servlet是Java语言运行在服务器上的程序,简单的可以说就是一个接口或者是接口。主要作用是处理http请求,并返回一个响应。
体系结构
主要的方法
Modifier and Type | Method and Description |
void | destroy() 由Servlet容器调用,以指示伺服容器正在停止使用。 |
ServletConfig | 返回一个Servlet配置对象,其中包含此Servlet的初始化和启动参数。 |
返回有关servlet的信息,如作者、版本和版权。 | |
void | init(ServletConfig config) 由Servlet容器调用,以指示伺服容器正在投入使用。 |
void | service(ServletRequest req, ServletResponse res) 由Servlet容器调用,以允许Servlet响应请求。由Servlet容器调用,以允许Servlet响应请求。 |
二、Servlet的关系
三、Servlet的实现
1.首先,创建一个新的项目
2.编写一个类区实现Servlet接口
package com.training;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class HelloServlet 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("实现了");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
3.实现service方法,处理请求,并响应数据,到web.xml中去配置servlet程序的访问地址
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 给服务器配置Servlet程序-->
<servlet>
<!-- servlet name标签是Servlet程序的一个别名-->
<!-- servklet class标签是Servlet程序的全类名-->
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.training.HelloServlet</servlet-class>
</servlet>
<!-- 给配置Servlet程序访问地址-->
<servlet-mapping>
<!-- 告诉服务器,当前配置的地址给哪个Servlet程序用的-->
<servlet-name>HelloServlet</servlet-name>
<!-- 配置访问地址-->
<!-- / : 在服务器解析的时候,表示地址为http://ip:port/工程路径
/hello: 表示为: http://ip:port/工程路径/hello
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
4.运行访问(localhost:8080/WebServlet/hello),结果如下:
四、Servlet的生命周期
代码实现:
package com.training;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
HttpServletRequest httpServlet=(HttpServletRequest) servletRequest;
System.out.println("service");
String method = httpServlet.getMethod();
if("GET".equals(method)){
System.out.println("get执行了");
}
if("POST".equals(method)){
System.out.println("Post执行了");
}
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("destroy");
}
}
运行服务器
总结的来说,
Servlet生命周期分为三个阶段,初始化阶段 ,先检查服务器有没有Servlet对象,然后调用initi方法,进行初始化,并且生命周期内只调用一次;运行阶段,调用service方法,对Servlet的每一次请求做出响应,可以多次调用;销毁阶段,调用destroy方法,释放Servlet对象的内存,Servlet对象一旦创建,会等待访问。