使用了MVC框架之后,就再没用过Servlet,导致很多基础的东西都忘得差不多了。
但是MVC框架的底层实现是基于servlet,通过实现Servlet接口的DispatcherServlet来封装其核心功能实现,将请求分派给处理程序。
今天就来回顾了一些Servlet,在IDEA中创建Servlet项目。
1、创建项目
2、创建Servlet
勾选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!");
如下图:
3、配置Tomcat
配置Tomcat就不用说了。
Tomcat配置好之后,这个时候Servlet类还在报错:
Httpservlet cannot be resolved to a type
显然是因为找不到相应的包,即javax.servlet.
jdk里不包括servlet-api.jar
这个包,此包在Tomcat中存在。
其实直接引入Tomcat依赖就可以了,如下图:
上图为修改Tomcat libs的过程,其实就是修改了servlet-api.
4、启动,测试
映射地址为:
@WebServlet(name = "servletDemo")
启动Tomcat,访问:http://localhost:8080/servletDemo
成功。
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
,则表示启用注解支持(和可插性支持)。