Java Servlet 是一種基于Java語言的Web應(yīng)用程序組件,它可以接收 HTTP 請(qǐng)求并響應(yīng) HTTP 響應(yīng)結(jié)果。Servlet 技術(shù)主要是為了解決 CGI(Common Gateway Interface)的性能問題。
而 Web (World Wide Web) 則是一種基于互聯(lián)網(wǎng)的系統(tǒng),它的核心技術(shù)是 HTTP(Hypertext Transfer Protocol)協(xié)議。Web 的應(yīng)用程序是使用一種稱為 Web 應(yīng)用程序的軟件組件來開發(fā)的,Web 應(yīng)用程序通常是由至少一個(gè) Servlet 組件和至少一個(gè) JSP(JavaServer Pages)組件組成。
// servlet的實(shí)現(xiàn) public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("Hello Servlet"); out.println(" Hello Servlet
"); out.close(); } } // web.xml 的配置HelloServlet com.example.HelloServlet HelloServlet /hello
Servlet 組件的執(zhí)行流程大致如下:
- 當(dāng)客戶端訪問某個(gè) URL 時(shí),Web 服務(wù)器(如 Tomcat)會(huì)查找對(duì)應(yīng)的 Servlet 組件,檢查是否已經(jīng)初始化,如果未初始化則會(huì)進(jìn)行初始化。
- Servlet 組件被初始化后,Web 服務(wù)器會(huì)創(chuàng)建一個(gè) HttpServletRequest 對(duì)象,通過該對(duì)象傳遞給 Servlet 組件相關(guān)信息(如請(qǐng)求的 URL、參數(shù)等)。
- Servlet 組件接收到 HttpServletRequest 對(duì)象后,通過 HttpServletResponse 對(duì)象生成響應(yīng)結(jié)果。
- Web 服務(wù)器將響應(yīng)結(jié)果封裝成 HttpServletResponse 對(duì)象,然后向客戶端返回響應(yīng)結(jié)果。