servlet中的get/post两种分发处理的方式
继承servlet接口:
package servlet_practice;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import org.w3c.dom.ls.LSOutput;
import java.io.IOException;
public class sevlt_interface implements Servlet {
//servlet生命周期
//1.执行servlet的构造器方法
//2.执行init初始化方法
//前两步是第一次访问时创建servlet会被调用
//3.执行service方法
//第三步每次访问都会被调用
//4.执行destory方法
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2.执行init初始化方法");
}
public sevlt_interface(){
System.out.println("1.执行servlet的构造器方法");
}
@Override
public ServletConfig getServletConfig(
) {
return null;
}
@Override
//service方法是专门用来处理请求和相应的
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("3.执行service方法");
System.out.println("被访问了");
//servletRequest中的方法可以得到请求方式 需强制转型
HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
String s = httpServletRequest.getMethod();
if (s.equals("GET")){
System.out.println("执行get方法");
}
if (s.equals("POST")){
System.out.println("执行post方法");
}
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("4.执行destory方法");
}
}
继承父类:
package servlet_practice;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
public class sevlt_extends extends HttpServlet{
@Override
//在get请求时调用
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);需要对父类中的方法进行重写否则出现405
System.out.println("调用了get方法");
}
@Override
//在post请求时调用
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("调用了post方法");
}
}
表单中设置提交方式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>get与post</title>
</head>
<body>
<form action="http://localhost:8080/Dynamic_Web_war_exploded/hello" method="get">
<input type="submit" value="get接口提交">
</form>
<form action="http://localhost:8080/Dynamic_Web_war_exploded/hello" method="post">
<input type="submit" value="post接口提交">
</form>
<form action="http://localhost:8080/Dynamic_Web_war_exploded/hello1" method="get">
<input type="submit" value="get继承提交">
</form>
<form action="http://localhost:8080/Dynamic_Web_war_exploded/hello1" method="post">
<input type="submit" value="post继承提交">
</form>
</body>
</html>
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标签给Tomcat配置Servlet程序-->
<servlet>
<!--servlet-name标签给Servlet程序起别名一般是类名-->
<servlet-name>sevlt_interface</servlet-name>
<!--servlet-class是Servlet程序的全类名-->
<servlet-class>servlet_practice.sevlt_interface</servlet-class>
</servlet>
<!--servlet-mapping标签给给Servlet程序配置访问地址-->
<servlet-mapping>
<!--servlet-name标签作用是告诉服务器 当前配置的地址给哪个Servlet程序使用-->
<servlet-name>sevlt_interface</servlet-name>
<!--url-pattern配置访问地址-->
<!--通常以/打头后面跟访问路径-->
<!--/ 斜杠在服务器解析时表示地址为 http://ip:port/工程路径
/hello 表示地址为http://ip:port/工程路径/hello
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>sevlt_extends</servlet-name>
<servlet-class>servlet_practice.sevlt_extends</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sevlt_extends</servlet-name>
<url-pattern>/hello1</url-pattern>
</servlet-mapping>
</web-app>