• IDEA创建Servlet


    使用了MVC框架之后,就再没用过Servlet,导致很多基础的东西都忘得差不多了。
    但是MVC框架的底层实现是基于servlet,通过实现Servlet接口的DispatcherServlet来封装其核心功能实现,将请求分派给处理程序。

    今天就来回顾了一些Servlet,在IDEA中创建Servlet项目。

    1、创建项目

    image_1cd9k8ujc182315ig18jm10js9fqm.png-98.9kB

    2、创建Servlet

    image_1cd9kcn93157m1bt51if10251vb123.png-247.2kB

    image_1cd9kemlfrsa66abs14gq1osj2g.png-27.7kB

    勾选Create Java EE 6 annotated class这个选项就是在Servlet类中添加注解,就不用手动在web.xml配置<servlet><servlet-mapping>了,通过注解当然更方便。

    接下来,在创建好的Servlet类里的doGet()方法中添加如下代码,方便之后的测试:

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("Hello Servlet!");
    

    如下图:

    image_1cd9kndn3oum16s31fu0ldl1j7k2t.png-105.9kB

    3、配置Tomcat

    配置Tomcat就不用说了。

    Tomcat配置好之后,这个时候Servlet类还在报错:
    Httpservlet cannot be resolved to a type
    显然是因为找不到相应的包,即javax.servlet.

    jdk里不包括servlet-api.jar这个包,此包在Tomcat中存在。
    其实直接引入Tomcat依赖就可以了,如下图:

    image_1cd9l9e031v5hpfa30h1san1hp04n.png-90kB

    image_1cd9la8gvg8q129f949jksu8l54.png-27.3kB

    上图为修改Tomcat libs的过程,其实就是修改了servlet-api.

    4、启动,测试

    映射地址为:

    @WebServlet(name = "servletDemo")
    

    启动Tomcat,访问:http://localhost:8080/servletDemo

    image_1cd9mdcq01eb8gio1h6h43scre5h.png-30.7kB

    成功。

    5、不使用注解,在web.xml中定义映射

    <servlet>
        <servlet-name>servlet-demo</servlet-name>
        <servlet-class>com.vito.servlet.ServletDemo</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>servlet-demo</servlet-name>
        <url-pattern>/servletDemo</url-pattern>
    </servlet-mapping>
    

    <web-app>标签里有个属性:metadata-complete值为true表示容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持);
    如果不配置该属性,或者将其设置为false,则表示启用注解支持(和可插性支持)。

  • 相关阅读:
    11-3 多道批处理系统
    URAL 1108 简单的树形dp背包问题
    POJ 2486 树形dp
    HDU 2242 连通分量缩点+树形dp
    POJ 3140 Contestants Division
    POJ 2378 Tree Cutting
    ZOJ 3201 树形背包问题
    POJ 1655 Balancing Act && POJ 3107 Godfather
    COJ 1351 Tree Counting 动态规划
    codeforces 219D 树形dp
  • 原文地址:https://www.cnblogs.com/VitoYi/p/9029027.html
Copyright © 2020-2023  润新知