Servlet体系结构和Servlet相关配置

Servlet体系结构

Servlet -- 接口

 | 

GenericServlet -- 抽象类

 |

HttpServlet -- 抽象类 

  •  GenericServlet :将Servlet接口中其他的方法做了默认空实现 只将Service()方法作为抽象
    • 将来定义Servlet类时 可以继承GenericeServlet 实现Service()方法即可

java代码

package com.bai.Servlet;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/demo1")
public class ServletDemo01 extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("demo01");
    }
}

运行结果

 

 

  •  HttpServlet:对http协议的一种封装
    • 定义类继承HttpServlet
    • 复写doGet/doPost方法

java代码

package com.bai.Servlet;

import com.sun.net.httpserver.HttpServer;

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;

@WebServlet("/demo2")
public class ServletDemo02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost...");
    }
}

HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>明文提交</h3>
    <form action="/demo2" method="get">
        <input name="username">
        <input type="submit" name="提交">
    </form>
    <hr>
    <h3>密文提交</h3>
    <form action="/demo2" method="post">
        <input name="password">
        <input type="submit" name="提交">
    </form>
</body>
</html>

运行结果

 

 Servlet相关配置

 1.urlpartten:Servlet访问路径

  • 一个Servlet可以定义多个访问路径:@WebServlet({"/d4","/dd4","/ddd4"})
  • 路径定义规则
    • /xxx
    • /xxx/xxx:多层路径 目录结构
    • *.do

java代码

@WebServlet({"/d4","/d4/d4","/hh/*"})
public class ServletDemo03 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet...");
    }
}

运行结果

posted @ 2022-08-09 10:32  baimingze  阅读(29)  评论(0)    收藏  举报