Servlet长啥样
package javax.servlet;
import java.io.IOException;
public interface Servlet {
//init Servlet初始化方法
void init(ServletConfig var1) throws ServletException;
//获取Servlet的配置信息 作用不大
ServletConfig getServletConfig();
//service 接收拦截到的请求后调用的方法,会被调用多次
//抛出 ServletException 和 IOException
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
//获取Servlet详细信息
String getServletInfo();
//Servlet走完生命周期后调用一次
void destroy();
}
怎么使用Servlet
一,Servlet是一个接口我们需要实现这个接口
首先 实现 Servlet 接口
public class DaxianServlet implements Servlet {
public DaxianServlet(){
System.out.println("初始化Servlertv");
}
@Override
public void init() throws ServletException {
System.out.println("InIt Servlertv");
// super.init();
}
//看见没 你都有了requst (请求) 和 response (响应) 了 还怕啥
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// super.service(req, res);
HttpServletRequest request = (HttpServletRequest) req;
BufferedWriter bufferedWriter = new BufferedWriter(res.getWriter());
bufferedWriter.write("滚,不接受请求");
}
@Override
public void destroy() {
// super.destroy();
System.out.println("servlet任务结束");
}
}
二,如果我懒 就继承HttpServlet
public class DaxianServlet extends HttpServlet{
//重写doGet()
//重写doPost()
//我真的很懒
}
好了,废话不多说,配置了怎么用呢?
服务器配置Servlet WEB.XML
/* 注意不完全是这一些,只是方便理解 */
1,tomcat会读取我们web.xml文件 或者 java提供的web接口文件(感兴趣可以去了解)
2,new XXXServlet ,就是用你的无参构造创建Servlet对象
3,调用 init 方法
4,拦截到你的配置拦截的请求,调用service()方法
5,你关闭tomcat时 调用你的Servlet 的 destroy() 方法·
Web.xml放这里
为啥?
Tomcat说的
<?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类 可以配置多个吗? 那必须可以
name能重复吗? 抱歉,滚 */
<servlet>
<servlet-name>test1</servlet-name>
<servlet-class>com.daxian.httpservlet.DaxianServlet</servlet-class>
</servlet>
/* 配置对应的Servlet 的请求拦截 */
<servlet-mapping>
<servlet-name>test1</servlet-name>
/* 这玩意可以配置多个 */
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>