sevlet是用于開發(fā)動態(tài)網(wǎng)站的一個技術(shù)
servlet 是運(yùn)行在 Web 服務(wù)器(tomcat上)中的小型 Java 程序。servlet 通常通過 HTTP(超文本傳輸協(xié)議)接收和響應(yīng)來自 Web 客戶端的請求。servlet可以接收請求,接收請求后會給客戶端一個響應(yīng).
由于servlet是一個接口 所以我們通過查看文檔 找到他的實現(xiàn)子類 httpservlet 定義一個類繼承httpservlet .需要重寫2個方法一個是doget方法和dopost方法 doget方法用來處理get請求 dopost方法處理post請求
servlet創(chuàng)建后需要在web.xml文件配置 類似于Android中mainActivity—可以創(chuàng)建n個servlet,到底用哪個來解決請求,需要在web.xml中配置一下
因為一個應(yīng)用可以有多個servlet,如果不配置不知道用哪個servlet來處理請求
代碼實現(xiàn)
1-創(chuàng)建一個類,使用這個類繼承HttpServle類
@MultipartConfig
public class HelloWorldServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//doGet處理客戶端get的請求
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//拿到一個字符輸出流
PrintWriter writer = resp.getWriter();
//向客戶端輸出一個數(shù)據(jù)
writer.write("aabc");
}
/**
* doPost處理客戶端post請求
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
2-servlet創(chuàng)建后需要在web.xml文件配置
servlet-name代表當(dāng)前的名字(可可隨意起名(最好見名知意))
servlet-class:具體指定哪個servlet,(完整的包名+類名)
url-pattern:瀏覽器訪問的具體路徑,先寫個/,再寫(隨意些)映射地址
<!-- 配置hellowordServlet -->
<servlet>
<servlet-name>hellworld</servlet-name>
<servlet-class>com.itheima.day08.HelloWorldServlet</servlet-class>
</servlet>
<!--配置瀏覽器訪問的路徑(映射的地址) -->
<servlet-mapping>
<servlet-name>hellworld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
**urlpattern的寫法 **
1)完全路徑匹配 /life
2)目錄匹配 /*
3)擴(kuò)展名匹配 *.do *.action
優(yōu)先級:1)完全路徑匹配 > 2)目錄匹配>3)擴(kuò)展名匹配
<servlet-mapping>
<servlet-name>lifeservlet</servlet-name>
<url-pattern>/life</url-pattern>
<url-pattern>/*</url-pattern>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3-運(yùn)行到服務(wù)器上
把工程跑到服務(wù)器上,工程就集成到了tomcat里,tomcat啟動,默認(rèn)訪問(在web.xml中的配置中的歡迎頁面)
servlet執(zhí)行流程
回車—向服務(wù)器發(fā)請求—先把后面的映射解析出來—去找web.xml配置文件匹配—找url-pattern--找到后—對應(yīng)的名字servlet-name—再通過名字找到具體的servlet