Servlet API定义了若干接口和类。他的体系结构主要有:
(1)Servlet接口。
主要有5个方法:int()、getServletConfig()、service()、getServletInfo()、destroy()
package com.zhengshanming;
import javax.servlet.*;
import java.io.IOException;
public class aa extends Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
/* Servlet初始化的调用,有容器调用*/
}
@Override
public ServletConfig getServletConfig() {
/*获取容器对象的参数信息,传递给init()*/
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
/*用户每访问一次就调用一次这个方法*/
}
@Override
public String getServletInfo() {
/*返回Servlet的信息。*/
return null;
}
@Override
public void destroy() {
/*Servlet销毁时调用的方法*/
}
}
(2)GenericServlet类:
实现了了Servlet接口,和ServletConfig接口。
package com.zhengshanming;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name="China",urlPatterns = {"/Generic"})
public class GenericDemoServlet extends GenericServlet {
// private static final long serialVersionUID = 1L;
private transient ServletConfig servletConfig;
@Override
public void service(ServletRequest servletRequest, ServletResponse response) throws ServletException, IOException {
servletConfig = getServletConfig();
String servletName= servletConfig.getServletName(); //获取Servlet的名字
response.setContentType("" +
"" +
"" +
"" +
"text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<DOCTYPE html> "+"<html>"
+"<body>Hello from "+ servletName+"<br>"
+ "世界那么大我想去看看。"
+"</body></html>");
}
}
(3)HttpServlet类
对Http协议封装的类,根据不同的方式,有不同的请求方法
package com.zhengshanming;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDate;
import java.time.LocalTime;
@WebServlet(urlPatterns = {"/hello"})
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out= resp.getWriter();
out.println("<html>");
out.println("<body><title>Hello Servlet</title>");
out.println("<h3 style='color:blue'>Hello,Word!</h3>");
out.println("今天的日期是:"+ LocalDate.now()+"<br>");
out.println("现在的时间是:"+ LocalTime.now());
out.println("</body>");
out.print("</html>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("post");
}
}