今天來(lái)介紹一下Web開發(fā)的基石,Servlet。 搞Web開發(fā)的都知道,從一個(gè)瀏覽器請(qǐng)求到輸出到頁(yè)面就是通過(guò)Servlet處理的,我們的Web開發(fā)框架Spring也是基于這個(gè)玩意升級(jí)的。不廢話了,開始介紹Servlet吧
Servlet API 概述

image.png
- javax.servlet 其中包含了Servlet和Servlet容器之間契約的類和接口
- javax.servlet.http 其中包含了HttpServlet和Servlet容器之間契約的類和接口
- javax.servlet.annotation 其中包含標(biāo)注Servlet、Filter、Listener的標(biāo)注。
-
javax.servlet.descriptor 其中包含了提供化登錄Web應(yīng)用程序的配置信息的類型
image.png
符合 Web應(yīng)用的目錄結(jié)構(gòu)

image.png
編寫一個(gè) Servlet
package com.minglangx.servlert;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class MyServlert implements Servlet{
private transient ServletConfig servletConfig;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
this.servletConfig = servletConfig;
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return servletConfig;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return "MyServlet";
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
String servletName = servletConfig.getServletName();
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.print("<html><head>"
+ " <body>"
+ " Hello from " +servletName + " </body</head></html>");
}
}
配置 web.xml 文件映射
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>MyServlert</servlet-name>
<servlet-class>com.minglangx.servlert.MyServlert</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServlert</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
總結(jié)
- Web應(yīng)用的每一個(gè)請(qǐng)求就是一個(gè)Servlet,Servlet的 service方法執(zhí)行請(qǐng)求業(yè)務(wù)處理
- ServletRequest ServletResponse 分別代表請(qǐng)求 和響應(yīng) 對(duì)象數(shù)據(jù)
- 注意打 war 包命令 jar -cvf xxx.war ./* 必須是在 WEB-INF 目錄下打包,將war包丟在 Tomcat的 webapps目錄即可,啟動(dòng)Tomcat后會(huì)幫你自動(dòng)解壓
