發表文章

目前顯示的是有「Servlet」標籤的文章

[Java] 網頁前端傳資料給後端,透過Ajax

筆記一下前端傳值給後端的寫法 前端.html <body> <script type="text/javascript"> $.ajax({ url:"./autocomplete", dataType: "json", type: "POST", async: false, timeout: 5000, data: { standardQ: "ABC" //傳給API的參數 }, success: function(data){ //成功的話,執行此區塊                    alert("success"); }, }) </script> </body> 後端.java import java.io.IOException; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/AutoCompleteServlet") public class AutoCompleteServlet extends HttpServlet { private static final long serialVersionUID = 1L; public AutoCompleteServlet() { super(); } ...

[Java][Servlet] @Resource annotation 註解用法

圖片
在 java檔使用 @Resource,可以在 Servlet 執行的時候動態注入(injection) web.xml 裡的參數 也就是不需要將數字、字串等值寫在 java檔內,而是寫在 web.xml 當中 一、 程式結果 二、 程式碼 一、 程式結果 二、 程式碼 Project 類型: Dynamic Web Project Project 名稱: servlet Package 名稱: idv.ycc.servlet Class 類型: Servlet Class 名稱: InjectionServlet.java InjectionServlet.java package idv.ycc.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.annotation.Resource; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /**  * Servlet implementation class InjectionServlet  */ @WebServlet("/InjectionServlet") public class InjectionServlet extends HttpServlet { private static final long serialVersionUID = 1L;         private @Resource(name="hello") String hello; //注入字串。一行寫法 private @Resource(name="i") int i; //注入整數 @Resource(name="persons") ...

[Java] context-param、ServletContext.getInitParameter()

圖片
這邊簡單介紹「全域初始化變數」、「取用方式」、「全域、區域、取用差別」 全域初始化變數: web.xml <context-param>      <param-name>allowed file type</param-name>      <param-value>.gif,.jpg,.bmp</param-value> </context-param> 區域初始化變數: web.xml <servlet>      <init-param>           <param-name>admin</param-name>           <param-value>admin</param-value>      </init-param> </servlet> (參考: https://yijay131724.blogspot.com/2020/06/javaservlet.html ) 取用方式 全域初始化變數: xxx.java //取得所有參數的名稱、值(型別為 ServletContext): ServletContext servletContext = getServletConfig().getServletContext();  //取得所有參數的名稱(型別為 Enumeration): Enumeration<String> params = servletContext.getInitParameterNames(); //取參數值: String allowedFileType = servletContext.getInitParameter("allowed file type"); 區域初始化變數: xxx.java //取所有參數的名稱、值(型別為 Enumeration): Enumeration<...

[Java][Servlet] 帳號密碼登入 login 製作

圖片
使用 Servlet 製作帳號密碼的登入驗證機制,可以在 web.xml 快速新增、刪除使用者~ 程式碼上都有寫註解,可以參考看看 主要程式碼  getInitParameterNames() :取得 web.xml <init-param><param-name>,並返回 Enumeration<E> 型態 getInitParameter() :取得 web.xml <init-param><param-value> request.getRequestDispatcher("/WEB-INF/notice.html").forward(request, response) : forward 為內部轉址用的方法,可以轉到 WEB-INF 資料夾底下的 HTML 檔 一、程式結果 二、程式碼 一、程式結果 登入前,輸入 web.xml 上設定的初始化參數 登入後,可以查看 notice.html 檔案,且 notice.html 因為是存放於 WEN-INF 資料夾底下,該資料夾有保護機制,如果知道檔案位置、名稱等也無法隨變進入查看 二、程式碼 Project 類型: Dynamic Web Project Project 名稱: servlet Package 名稱: idv.ycc.servlet Class 類型: Servlet Class 名稱: InitParamServlet.java Html 路徑: servlet/WebContent/WEB-INF Html 名稱: notice.html 如果有直接 copy 程式碼,請盡量用以上的名稱,避免出現小錯誤! InitParamServlet.java package idv.ycc.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; im...