2022-10-29
Servlet
1、 Servlet的作用:
例如:查詢資料
(1)瀏覽器端點擊某個查詢功能,向服務器端發出請求;服務器端決議請求,創建Servlet物件,并呼叫特定方法;Servlet物件呼叫“DAO”方法獲取資料;DAO方法查詢資料庫,
(2)之后將后端的處理資料傳遞給“前端頁面”,進行重繪,資料庫回傳查詢結果;DAO方法回傳集合資料;Servlet將資料回應給瀏覽器;瀏覽器接收到回應,顯示頁面,
2、Servlet的含義:
Servlet:Server Applet(就是指服務器端的小程式,主要用于和客戶端互動,接收和處理請求),
3、創建Servlet的“HelloServlet”:
步驟:
(1)新建一個普通類,如在創建的“Java Enterprise”專案的“Web Application”模塊中的“src”檔案夾下創建一個“HelloServlet”類,
(2)實作介面Servlet,(實作介面使用的是“implements Servlet”)
(3)實作介面的抽象方法(主要實作“service”方法)
package com.haha.servlet; import javax.servlet.*; import java.io.IOException; public class HelloServlet implements Servlet { /** * 主要功能:處理客戶端的請求和回應 * @param servletRequest 來自客戶端的請求 * @param servletResponse 來自客戶端的回應 * @throws ServletException * @throws IOException */ @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("訪問到HelloServlet的service方法..."); } @Override public String getServletInfo() { return null; } @Override public void destroy() { } @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } }
(4)給剛剛創建的類(HelloServlet)設定訪問路徑,設定的訪問路徑在“web.xml”,組態檔的設定:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <!--為servlet起名--> <servlet-name>HelloServlet</servlet-name> <!--servlet的全類名(就是包名.類名)--> <servlet-class>com.haha.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <!--和上面起的名字一樣--> <servlet-name>HelloServlet</servlet-name> <!--訪問servlet的路徑,注意前面一定要加/,要不然訪問不到--> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
之后,在該模塊下的“src”檔案夾下,創建一個“index.html”,設定一個超鏈接進行訪問,如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="https://www.cnblogs.com/isDaHua/archive/2022/10/29/hello">訪問HelloServlet</a>
</body>
</html>
運行結果:
在彈出的瀏覽器中點擊“超鏈接”,頁面出現的空白的,在idea中的控制臺上出現了運行結果,

4、servlet的生命周期
在servlet中的介面中,有“init/service/destory”,默認情況下,在進行請求時,執行init與service方法,如果要執行“destory”方法,那么需要停止“tomcat”服務器,
5、另一種實作servlet的方式
(1)創建一個普通類(MysecondServlet)
(2)繼承“HttpServlet”
(3)重寫“doget”和“dopost”方法,如下:
package com.haha.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class MySecondServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("訪問到了MySecondServlet的doGet方法..."); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("訪問到了MySecondServlet的doPost方法..."); } }
(4)在web.xml中設定MysecondServlet的組態檔
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>mySencondServlet</servlet-name> <servlet-class>com.haha.servlet.MySecondServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>mySencondServlet</servlet-name> <url-pattern>/second</url-pattern> </servlet-mapping> </web-app>
測驗:
在剛剛創建的“index.html”中創建一個超鏈接,進行訪問
<a href="https://www.cnblogs.com/isDaHua/archive/2022/10/29/second">訪問MySencondServlet</a>
6、創建servlet的簡易方式:
在“src”檔案夾下的“包名”下,點擊右鍵,如下:

可命名為“LoginServlet”,之后,在組態檔中會自動創建"<servlet>",但需要手動創建“<servlet-mapping>”

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/523096.html
標籤:其他
下一篇:CORS跨域資源共享問題
