1. 程式人生 > 其它 >java-servlet

java-servlet

技術標籤: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>