Đối tượng ngầm định của JSP: Hướng dẫn hoàn chỉnh

Mục lục:

Anonim

Đối tượng ngầm định của JSP là gì?

  • Các đối tượng ngầm định của JSP được tạo ra trong giai đoạn dịch của JSP sang servlet.
  • Các đối tượng này có thể được sử dụng trực tiếp trong các tập lệnh đi trong phương thức dịch vụ.
  • Chúng được tạo bởi vùng chứa tự động và chúng có thể được truy cập bằng cách sử dụng các đối tượng.

Có bao nhiêu đối tượng ngầm trong JSP?

Có 9 loại đối tượng tiềm ẩn có sẵn trong vùng chứa:

  1. ngoài
  2. yêu cầu
  3. phản ứng
  4. cấu hình
  5. ứng dụng
  6. phiên họp
  7. pageContext
  8. trang
  9. ngoại lệ

Hãy học từng người một

ngoài

  • Out là một trong những đối tượng ngầm để ghi dữ liệu vào bộ đệm và gửi đầu ra cho máy khách để phản hồi
  • Đối tượng Out cho phép chúng ta truy cập vào luồng đầu ra của servlet
  • Out là đối tượng của lớp javax.servlet.jsp.jspWriter
  • Trong khi làm việc với servlet, chúng ta cần đối tượng printwriter

Thí dụ:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP1 ngầm hiểu <% int num1 = 10; int num2 = 20;out.println ("num1 là" + num1);out.println ("num2 là" + num2);%>

Giải thích mã:

Dòng mã 11-12 - out được sử dụng để in thành dòng đầu ra

Khi chúng tôi thực thi đoạn mã trên, chúng tôi nhận được kết quả sau:

Đầu ra:

  • Trong đầu ra, chúng tôi nhận được các giá trị của num1 và num2

Yêu cầu

  • Đối tượng yêu cầu là một thể hiện của java.servlet.http.HttpServletRequest và nó là một trong những đối số của phương thức dịch vụ
  • Nó sẽ được tạo bởi vùng chứa cho mọi yêu cầu.
  • Nó sẽ được sử dụng để yêu cầu các thông tin như tham số, thông tin tiêu đề, tên máy chủ, v.v.
  • Nó sử dụng getParameter () để truy cập tham số yêu cầu.

Thí dụ:

Implicit_jsp2.jsp (biểu mẫu mà từ đó yêu cầu được gửi đến guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Biểu mẫu Guru ngầm định JSP2 

Guru.jsp (nơi hành động được thực hiện)

Giải thích mã:

Dòng mã 10-13: Trong yêu cầu implicit_jsp2.jsp (biểu mẫu) được gửi, do đó tên người dùng biến được xử lý và gửi đến guru.jsp, đây là hành động của JSP.

Guru.jsp

Dòng mã 10-11: Đây là hành động jsp nơi yêu cầu được xử lý và tên người dùng được lấy từ biểu mẫu jsp.

Khi bạn thực thi đoạn mã trên, bạn nhận được kết quả sau

Đầu ra:

Khi bạn viết bài kiểm tra và nhấp vào nút gửi, sau đó bạn nhận được kết quả sau "Bài kiểm tra chào mừng".

Phản ứng

  • "Phản hồi" là một thể hiện của lớp triển khai giao diện HttpServletResponse
  • Vùng chứa tạo đối tượng này và chuyển đến phương thức _jspservice () dưới dạng tham số
  • "Đối tượng phản hồi" sẽ được tạo bởi vùng chứa cho mỗi yêu cầu.
  • Nó đại diện cho phản hồi có thể được cung cấp cho khách hàng
  • Đối tượng ngầm phản hồi được sử dụng để nhập nội dung, thêm cookie và chuyển hướng đến trang phản hồi

Thí dụ:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP4 ngầm hiểu <% response.setContentType ("text / html"); %>

Giải thích mã:

Dòng mã 11: Trong đối tượng phản hồi, chúng ta có thể đặt loại nội dung

Ở đây chúng tôi chỉ thiết lập loại nội dung trong đối tượng phản hồi. Do đó, không có đầu ra cho việc này.

Cấu hình

  • "Cấu hình" thuộc loại java.servlet.servletConfig
  • Nó được tạo bởi vùng chứa cho mỗi trang jsp
  • Nó được sử dụng để lấy tham số khởi tạo trong web.xml

Thí dụ:

Web.xml (chỉ định tên và ánh xạ của servlet)

Implicit_jsp5.jsp (nhận giá trị của tên servlet)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP5 ngầm hiểu <% String servletName = config.getServletName ();out.println ("Tên Servlet là" + servletName);%>

Giải thích mã:

Trong web.xml

Dòng mã 14-17: Trong web.xml, chúng tôi có ánh xạ các servlet tới các lớp.

Implicit_jsp5.jsp

Dòng mã 10-11: Để lấy tên của servlet trong JSP, chúng ta có thể sử dụng config.getServletName, điều này sẽ giúp chúng ta lấy tên của servlet.

Khi bạn thực thi đoạn mã trên, bạn nhận được kết quả sau:

Đầu ra:

  • Tên Servlet là "GuruServlet" vì tên này có trong web.xml

Ứng dụng

  • Đối tượng ứng dụng (dòng mã 10) là một thể hiện của javax.servlet.ServletContext và nó được sử dụng để lấy thông tin ngữ cảnh và các thuộc tính trong JSP.
  • Đối tượng ứng dụng được tạo bởi vùng chứa mỗi ứng dụng, khi ứng dụng được triển khai.
  • Đối tượng Servletcontext chứa một tập hợp các phương thức được sử dụng để tương tác với vùng chứa servlet. Chúng ta có thể tìm thông tin về vùng chứa servlet.

Thí dụ:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru ngầm JSP6 <% application.getContextPath (); %>

Giải thích mã:

  • Trong đoạn mã trên, thuộc tính ứng dụng giúp lấy đường dẫn ngữ cảnh của trang JSP.

Phiên họp

  • Phiên đang giữ đối tượng "httpsession" (dòng mã 10).
  • Đối tượng phiên được sử dụng để lấy, đặt và loại bỏ các thuộc tính cho phạm vi phiên và cũng được sử dụng để lấy thông tin phiên

Thí dụ:

Implicit_jsp7 (thuộc tính đã được đặt)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> JSP ngầm định <% session.setAttribute ("người dùng", "GuruJSP"); %> Nhấp vào đây để lấy tên người dùng 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP8 ngầm hiểu <% String name = (String) session.getAttribute ("người dùng");out.println ("Tên người dùng là" + tên);%>

Giải thích mã:

Implicit_jsp7.jsp

Dòng mã 11: chúng tôi đang thiết lập người dùng thuộc tính trong biến phiên và giá trị đó có thể được tìm nạp từ phiên trong bất kỳ jsp nào được gọi từ đó (_jsp8.jsp).

Dòng mã 12: Chúng tôi đang gọi một jsp khác trên href trong đó chúng tôi sẽ nhận giá trị cho người dùng thuộc tính được đặt.

Implicit_jsp8.jsp

Dòng mã 11: Chúng tôi đang nhận giá trị của thuộc tính người dùng từ đối tượng phiên và hiển thị giá trị đó

Khi bạn thực thi đoạn mã trên, bạn nhận được kết quả sau:

Khi bạn nhấp vào liên kết cho tên người dùng. Bạn sẽ nhận được kết quả sau.

Đầu ra:

  • Khi chúng tôi nhấp vào liên kết được cung cấp trong implicit_jsp7.jsp thì chúng tôi được chuyển hướng đến trang jsp thứ hai, tức là trang (_jsp8.jsp) và chúng tôi nhận giá trị từ đối tượng phiên của thuộc tính người dùng (_jsp7.jsp).

pageContext:

  • Đối tượng này thuộc loại pagecontext.
  • Nó được sử dụng để lấy, đặt và xóa các thuộc tính khỏi một phạm vi cụ thể

Phạm vi có 4 loại:

  • Trang
  • Yêu cầu
  • Phiên họp
  • Ứng dụng

Thí dụ:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP9 ngầm hiểu <% pageContext.setAttribute ("sinh viên", "gurustudent", pageContext.PAGE_SCOPE);String name = (String) pageContext.getAttribute ("sinh viên");out.println ("tên sinh viên là" + tên);%>

Giải thích mã:

Dòng mã 11: chúng tôi đang thiết lập thuộc tính bằng cách sử dụng đối tượng pageContext và nó có ba tham số:

  • Chìa khóa
  • Giá trị
  • Phạm vi

Trong đoạn mã trên, khóa là học sinh và giá trị là "gurustudent" trong khi phạm vi là phạm vi trang. Ở đây phạm vi là "trang" và nó chỉ có thể sử dụng phạm vi trang.

Dòng mã 12: Chúng tôi đang nhận giá trị của thuộc tính bằng cách sử dụng pageContext

Khi bạn thực thi đoạn mã trên, bạn nhận được kết quả sau:

Đầu ra:

  • Kết quả đầu ra sẽ in "tên sinh viên là gurustudent".

Trang

  • Biến ngầm định của trang giữ đối tượng servlet hiện đang được thực thi cho jsp tương ứng.
  • Hoạt động như đối tượng này cho trang jsp hiện tại.

Thí dụ:

Trong ví dụ này, chúng tôi đang sử dụng đối tượng trang để lấy tên trang bằng phương thức toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP10 ngầm hiểu <% String pageName = page.toString ();out.println ("Tên trang là" + tên trang);%>

Giải thích mã:

Dòng mã 10-11: Trong ví dụ này, chúng tôi đang cố gắng sử dụng phương thức toString () của đối tượng trang và cố gắng lấy tên chuỗi của TrangJSP.

Khi bạn thực thi mã, bạn nhận được kết quả sau:

Đầu ra:

  • Đầu ra là tên chuỗi của trang jsp trên

ngoại lệ

  • Ngoại lệ là đối tượng ngầm định của lớp có thể ném.
  • Nó được sử dụng để xử lý ngoại lệ trong JSP.
  • Đối tượng ngoại lệ chỉ có thể được sử dụng trong các trang lỗi.

    Thí dụ:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Guru JSP 11 ngầm hiểu <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = ngoại lệ%>

Giải thích mã:

Dòng mã 10-12 - Nó có một mảng số, tức là num1 với bốn phần tử. Trong đầu ra, chúng tôi đang cố gắng in phần tử thứ năm của mảng từ num1, phần tử này không được khai báo trong danh sách mảng. Vì vậy, nó được sử dụng để lấy đối tượng ngoại lệ của jsp.

Đầu ra:

Chúng tôi đang nhận được ArrayIndexOfBoundsException trong mảng mà chúng tôi đang nhận được một mảng num1 của phần tử thứ năm.