什麼是Servlet
Servlet簡介
- Servlet( Server Applet)是 Java servlet的簡稱,稱爲小服務程序或服務連接器
- 用Java編寫的服務器端程序
- 主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。
第一個Servlet
創建LoginServlet
package cn.java.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 獲取表單提交過來的數據
// getParameter()方法可以獲取請求的參數信息
String username = request.getParameter("username");
String password = request.getParameter("password");
// 打印獲取到的參數信息
System.out.println("username=" + username);
System.out.println("password=" + password);
// 如果usename=admin,password=123則跳轉到success.jsp,否則跳轉到fail.jsp
// 1、通過轉發實現跳轉
if ("admin".equals(username) && "123".equals(password)) {
request.getRequestDispatcher("/success.jsp").forward(request, response);
} else {
// request.getRequestDispatcher("/fail.jsp").forward(request,
// response);
response.sendRedirect("/imooc_servlet1/fail.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
給LoginServlet配置一個對外訪問的虛擬路徑
index.jsp
success.jsp
fail.jsp
登錄成功:
Serverlt的生命週期
Servlet生命週期分爲三個階段:
- 1,初始化階段調用init()方法
- 2,響應客戶請求階段調用 service()方法
- 3,終止階段調用 destroy()方法
多次調用:
從tomcat移除會被銷燬
HttpServeltRequest(請求)與HttpServeltResponse(響應)
請求與響應
- 瀏覽器對服務器的一次訪問稱之爲一次請求,請求用 HttpServletRequest對象來表示
- 服務器給瀏覽器的一次反饋稱之爲一次響應,響應用 HttpServletResponse對象來表示
ServeltContext與ServletConfig
- Java是一門面對對象的語言,萬事萬物皆是對象。整個JavaWeb工程也可以用一個對象來表示,這個對象就是ServletContext類型
- 我們可以在web.xml文件中給某一個Servlet配置一些配置信息,當服務器被啓動的時候,這些配置信息就會被封裝到一個ServletConfig對象中去。因此ServletConfig表示的是某一個Servlet的配置文件
然後在Demo2Servlet獲取username
獲取配置信息
重定向與轉發
- 實現轉發調用的是 HttpServletRequest對象中的方法,實現重定向調用的是 HttpServletReSponse對象中的方法
- 轉發時瀏覽器中的ur地址欄不會發生改變,重定向時瀏覽器中的ur地址會發生改變
- 轉發時瀏覽器只請求一次服務器,重定向時瀏覽器請求兩次服務器