• 使用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. }

  • 相关阅读:
    linux常用命令
    部署Django报错-requires SQLite 3.8.3 or higher
    借助GPU算力编译Android
    常用工具类之Spring-boot-configuration-processor的学习使用
    20.2 OpenSSL 非对称RSA加解密算法
    22data 脚本语言基础——Python
    【关于Linux中权限管理】
    Integer超出-128——127范围的数值比较为什么要用equals
    设计模式之工厂模式
    Java利用Gzip对字符串进行压缩与解压
  • 原文地址:https://blog.csdn.net/weixin_51992178/article/details/126676450