Servlet概念-原理-操作[Java-web]
Javaweb三大组件相关博客
文章目录
WHAT IS SERVLET
Servlet是JavaWeb三大组件之一,它是我们学习JavaWeb最为基本的组件,也就是说一定要掌握它
Servlet,用来处理用户请求,当客户端发出请求后,由Tomcat去找到可以处理这一请求的Servlet来处理
也就是说,用户的请求是由Servlet来处理的!
例如用户发出登录请求,那么就应该由处理登录的Servlet来处理;
用户发出登录请求,那么就应该有登录Servlet来处理
Servlet实现
servlet 是运行在 Web 服务器中的小型 Java 程序。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
也就是说,Servlet是由我们自己来完成的!但Servlet一定要实现javax.servlet.Servlet接口,并且还要在web.xml配置文件中部署!不然Tomcat是找不到我们写的Servlet的
javax.servlet.Servlet接口中方法如下:
-
void init(ServletConfig servletConfig)
:当Tomcat创建Servlet实例后,马上调用init()方法。这个方法只在创建后调用一次!用来做Servlet初始化工作!一个Servlet实例只被创建一次,所以init()方法也只被调用一次!
-
`void service(ServletRequest request, ServletResponse response):
Servlet实例在每次处理请求时都调用service()方法。
-
void destroy()
:当Tomcat要销毁Servlet实例时,会先调用destroy()方法,再销毁它。所谓销毁Servlet,其实就是在Servlet缓存池中把Servlet移除!一般只有Tomcat关闭时,才会销毁Servlet实例!
-
ServletConfig getServletConfig():
这个方法返回ServletConfig对象,但我们不能自己去创建ServletConfig对象,所以一般我们会在init()方法中把init()方法的参数保存起来,然后再在本方法中返回它。ServletConfig对象对应web.xml中当前Servlet实例的配置信息。
-
String getServletInfo():
这个方法只是返回一个字符串,用来说明当前Servlet。基本没用!
编写一个Servlet,实现Javax提供的servlet接口:
import javax.servlet.*;
import java.io.IOException;
public class testServlet implements Servlet {
//实现 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 {
/*servlet里的逻辑*/
//以字节流的形式写入页面
servletResponse.getOutputStream().write(" i am login..".getBytes());
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
配置web.xml文件:
<?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>