1、环境:
idea 2020.1
window 10
java se 1.8.0_271
2、目录结构
3、示例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>
<servlet-name>helloServletAlisa</servlet-name>
<servlet-class>com.serverlet.HelloServlet</servlet-class>
<!--配置servlet的初始化参数-->
<init-param>
<param-name>username</param-name>
<param-value>admin</param-value>
</init-param>
<!--一个servlet可以配置多个初始化参数-->
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>helloServletAlisa</servlet-name>
<url-pattern>/hello2</url-pattern>
</servlet-mapping>
</servlet-mapping>
</web-app>
4、HelloServlet.java文件
package com.serverlet;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class HelloServlet implements Servlet {
public HelloServlet(){
System.out.println("1、构造方法");
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2、init初始化方法");
// ServletConfig的三个作用:
// 1、可以获取Servlet程序的别名servlet-nmae的值
System.out.println("HelloServlet程序的别名:"+servletConfig.getServletName());
// 2、获取初始化参数init-param
System.out.println("HelloServlet程序的初始化参数-username:"+servletConfig.getInitParameter("username"));
System.out.println("HelloServlet程序的初始化参数-password:"+servletConfig.getInitParameter("password"));
// 3、获取ServletContext对象
System.out.println("HelloServlet程序的上下文对象::"+servletConfig.getServletContext());
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
HttpServletRequest httpServletRequest=(HttpServletRequest) servletRequest;
String type=httpServletRequest.getMethod();
switch (type.toUpperCase()){
case "GET":
doGet();
break;
case "POST":
doPost();
break;
}
System.out.println("3、service方法");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("4、结束");
}
private void doGet(){
System.out.println("get请求");
}
private void doPost(){
System.out.println("post请求");
}
}
5、启动后,访问/hello2路径,控制台打印如下: