java-servlet
阿新 • • 發佈:2021-01-22
技術標籤:java
servlet簡單例子
// WebServlet註解表示這是一個Servlet,並對映到地址/: @WebServlet(urlPatterns = "/") public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 設定響應型別: resp.setContentType("text/html"); // 獲取輸出流: PrintWriter pw = resp.getWriter(); // 寫入響應: pw.write("<h1>Hello, world!</h1>"); // 最後不要忘記flush強制輸出: pw.flush(); } } // 重定向和轉發 resp.sendRedirect(“/hello”); req.getRequestDispatcher("/hello").forward(req, resp);
session and cookies
為了跟蹤使用者狀態,伺服器可以向瀏覽器分配一個唯一ID,並以Cookie的形式傳送到瀏覽器,瀏覽器在後續訪問時總是附帶此Cookie,這樣,伺服器就可以識別使用者身份。我們把這種基於唯一ID識別使用者身份的機制稱為Session。
HttpSession session = req.getSession();
session.setAttribute("user", name);
JSP
JSP是Java Server Pages的縮寫,它的檔案必須放到/src/main/webapp下,檔名必須以.jsp結尾,整個檔案與HTML並無太大區別,但需要插入變數,或者動態輸出的地方,使用特殊指令<% ... %>
可見JSP本質上就是一個Servlet,只不過無需配置對映路徑,Web Server會根據路徑查詢對應的.jsp檔案,如果找到了,就自動編譯成Servlet再執行。在伺服器執行過程中,如果修改了JSP的內容,那麼伺服器會自動重新編譯。
JSP的指令非常複雜,除了
<% ... %>
外,JSP頁面本身可以通過page指令引入Java類使用include指令可以引入另一個JSP檔案:
<html> <body> <%@ include file="header.jsp"%> <h1>Index Page</h1> <%@ include file="footer.jsp"%> </body> </html>