使用了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
,則表示啟用注解支持(和可插性支持)。