Những tham số khởi tạo được truyền vào servlet từ file web.xml. Chúng chỉ được sử dụng duy nhất bởi chính servlet đó. Sau đây là cách chúng ta config web.xml để khởi tạo tham số:
<servlet>
<servlet-name>NewServlet</servlet-name>
<servlet-class>NewServlet</servlet-class>
<init-param>
<param-name>myParam</param-name>
<param-value>paramValue</param-value>
</init-param>
</servlet>
Sau đây là cách chúng ta lấy các tham số khởi tạo ra từ trong servlet - cụ thể là trong phương thức init():
public class NewServlet extends HttpServlet {
protected String myParam = null;
@Override
public void init(ServletConfig servletConfig) throws ServletException{
this.myParam = servletConfig.getInitParameter("myParam");
}
protected String myParam = null;
@Override
public void init(ServletConfig servletConfig) throws ServletException{
this.myParam = servletConfig.getInitParameter("myParam");
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet NewServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Initial Value Is " + myParam + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
}
Phương thức init(ServletConfig servletConfig) được gọi khi servlet container tải servlet lần đầu tiên. Không ai có thể truy cập vào servlet cho đến khi nó hoàn toàn được tải lên servlet container. Sau khi init() ở trên được gọi thành công, thì các tham số khởi tạo đã được lấy ra từ file web.xml thông qua servletConfig.getInitParameter("myParam") và sau đó output ra màn hình dưới dạng HTML( out.println("<h1>Initial Value Is " + myParam + "</h1>");)
Không có nhận xét nào:
Đăng nhận xét