• 使用HttpServlet和@WebServlet注解


    使用HttpServlet

    `HttpServlet`,它是遵循HTTP协议的一种Servlet,继承自`GenericServlet`,它根据HTTP协议的规则,完善了service方法

    现在只需要继承HttpServlet来编写我们的Servlet就可以了

    1. @WebServlet("/test")
    2. public class TestServlet extends HttpServlet {
    3. @Override
    4. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    5. resp.setContentType("text/html;charset=UTF-8");
    6. resp.getWriter().write("

      恭喜你解锁了全新玩法

      "
      );
    7. }
    8. }

    @WebServlet注解详解

    1. @Target({ElementType.TYPE})
    2. @Retention(RetentionPolicy.RUNTIME)
    3. @Documented
    4. public @interface WebServlet {
    5. String name() default "";
    6. String[] value() default {};
    7. String[] urlPatterns() default {};
    8. int loadOnStartup() default -1;
    9. WebInitParam[] initParams() default {};
    10. boolean asyncSupported() default false;
    11. String smallIcon() default "";
    12. String largeIcon() default "";
    13. String description() default "";
    14. String displayName() default "";
    15. }

    首先可以看出该注解的作用范围是类,然后name属性就是Servlet名称,而urlPatterns和value实际上是同样功能,就是代表当前Servlet的访问路径,它不仅仅可以是一个固定值,还可以进行通配符匹配

    @WebServlet("/test/*")

    @WebServlet("*.js")

    使用@WebServlet("/")时,如果没有找到匹配当前访问路径的Servlet,那么久会使用此Servlet进行处理。

    还可以为一个Servlet配置多个访问路径:

    @WebServlet({"/test1", "/test2"})

    loadOnStartup属性,此属性决定了是否在Tomcat启动时就加载此Servlet,默认情况下,Servlet只有在被访问时才会加载,它的默认值为-1,表示不在启动时加载,我们可以将其修改为大于等于0的数,来开启启动时加载。并且数字的大小决定了此Servlet的启动优先级。

    测试例

    1. @WebServlet(value = "/test", loadOnStartup = 1)
    2. public class TestServlet extends HttpServlet {
    3. @Override
    4. public void init() throws ServletException {
    5. super.init();
    6. log.info("我被初始化了!");
    7. }
    8. @Override
    9. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    10. resp.setContentType("text/html;charset=UTF-8");
    11. resp.getWriter().write("

      恭喜你解锁了全新玩法

      "
      );
    12. }
    13. }

  • 相关阅读:
    Mybatis-plus自定义Sql语句进行操作 使用Select注解
    基于LSTM-Adaboost的电力负荷预测(Matlab代码实现)
    如何恢复被盗的加密货币?
    计算机的错误计算(一百四十)
    【Gitea】 Post “http://localhost:3000/api/internal/hook/pre-receive/aa/bbb“ 异常
    【编程题】【Scratch三级】2021.12 数星星
    pytorch中使用多GPU并行训练
    多表的查询
    2309xmake快速编译cpr
    在Ubuntu 20.04上安装和配置MySQL 8:详细指南和远程访问设置
  • 原文地址:https://blog.csdn.net/weixin_51992178/article/details/126676450