Chúng ta đã biết rằng ở cuối cùng một trang JSP được trở thành Servlet. Vì vậy, khi chúng ta khai báo một biến hay phương thức Declaration Tag trong JSP, nó là việc kê khai được thực hiện bên trong lớp Servlet. Bạn có thể khai báo các biến và các phương thức bên trong Declaration Tag. Cú pháp của Declaration Tag như sau:
<%! declaration %>
Ví dụ về Declaration Tag trong JSP
<html> <head> <title>My First JSP Page</title> </head> <%! int count = 0; %> <body> Page Count is: <% out.println(++count); %> </body> </html>
Trong đoạn mã trên, chúng tôi đã sử dụng thẻ Declaration Tag để khai báo biến count
. Các trang JSP trên trở thành Servlet này:
public class hello_jsp extends HttpServlet { int count=0; public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { PrintWriter out = response.getWriter(); response.setContenType("text/html"); out.write("<html><body>"); out.write("Page count is:"); out.print(++count); out.write("</body></html>"); } }
Trong servlet trên, chúng ta có thể thấy biến count
được khai báo bên ngoài phương thức _jspservice()
. Nếu chúng ta khai báo các biến tương tự sử dụng thẻ scriptlet, nó sẽ đến bên trong phương thức đó.
Sử dụng thẻ Declaration Tag để khai báo phương thức
Nếu bạn muốn khai báo bao gồm bất kỳ phương thức trong file JSP, thì bạn phải sử dụng Declaration Tag.
Ví dụ :
<html> <head> <title>My First JSP Page</title> </head> <%! int count = 0; int getCount() { System.out.println( "In getCount() method" ); return count; } %> <body> Page Count is: <% out.println(getCount()); %> </body> </html>
Mã ở trên sẽ được dịch sang servlet sau đây:
public class hello_jsp extends HttpServlet { int count = 0; int getCount() { System.out.println( "In getCount() method" ); return count; } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { PrintWriter out = response.getWriter(); response.setContenType("text/html"); out.write("<html><body>"); out.write("Page count is:"); out.print(getCount()); out.write("</body></html>"); } }
Kết Luận :
Qua các ví dụ trên,với Scriptlet Declaration trong JSP bạn đọc thấy rằng với scriplet giúp chúng ta làm được rất nhiều thứ tùy theo mỗi ứng dụng web,tuy nhiên khi khai báo một phương thức trong jsp cần chú ý phải bắt đầu bằng ký tự <%! %>.Cũng lưu ý rằng chúng ta nên hạn chế thao tác code java vào trong trang jsp.