(2) 编写 servlet 代码查看 servlet 生命周期。
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/11a06bd9dfcea2a1282c3c939069d65d.png)
package firstapp;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloWorldServlet() {
super();
}
public void init(ServletConfig config) throws ServletException {
System.out.println("init method is called");
}
public void destroy() {
System.out.println("destroy method is called");
}
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Hello World!");
}
}
(4) 在 eclipse 上完成 servlet 的多重映射和通配符映射。
private static javax.servlet.ServletConfig config;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out =response.getWriter();
ServletConfig.config=this.getServletConfig();
String param=config.getInitParameter("encoding");
out.println("encoding="+param);
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/969d45bdcb7df1801e88ccd4c1c26de3.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/416d430cf1611520c13f362f80cc592e.png)
(5) 使用 ServletConfig 接口获取 Servlet 参数配置。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out =response.getWriter();
ServletContext context=this.getServletContext();
Enumeration<String> paramNames=context.getInitParameterNames();
out.println("balabala:");
while (paramNames.hasMoreElements()) {
String name=paramNames.nextElement();
String value=context.getInitParameter(name);
out.println(name+": "+value);
out.println();
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e4ea337fc9774ecd5c81dc2c35a765d0.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ef34bf7beb5b004669df829bc49b25ad.png)
(6) 使用 ServletContext 接口获取 Web 应用的初始化参数及实现 Servlet 间数据的共享。
package firstapp;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/setAttribute")
public class setAttribute extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context=this.getServletContext();
context.setAttribute("data", "my data will be sent to getAttribute");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
package firstapp;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/getAttribute")
public class getAttribute extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out=response.getWriter();
ServletContext context=this.getServletContext();
String data=(String)context.getAttribute("data");
out.println(data);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5ea989d27d07757b83c833c33614b4d2.png)
(7) 使用 ServletContext 接口读取 Web 应用下的资源文件。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
ServletContext context= this.getServletContext();
InputStream in=context.getResourceAsStream("/WEB-INF/classes/xyj.propertise");
Properties pros=new Properties();
pros.load(in);
PrintWriter out=response.getWriter();
out.println("Company="+pros.getProperty("Company"));
out.println("Address="+pros.getProperty("Address"));
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9e2977ec5fee6a64fe524f0cf0547045.png)