2.1 जेएसपी निर्देश

चूंकि हमें पता चला है कि JSP फ़ाइल एक नियमित सर्वलेट में परिवर्तित हो जाती है, तो आप इसमें सामान्य जावा कोड लिख सकते हैं। और इस जावा कोड में, आप विभिन्न वर्गों (उदाहरण से गणित) का उपयोग कर सकते हैं। यह और भी अच्छा है! लेकिन हम देख सकते हैं कि सभी कोड को doGet()सर्वलेट विधि में स्थानांतरित कर दिया गया है। और यह तुरंत कई सवाल उठाता है:

  • इसे कैसे बनाया जाए ताकि कोड विधि में स्थानांतरित हो जाए doPost()?
  • विधि में अपना कोड कैसे जोड़ें init()?
  • कैसे अंत में वर्ग आयात रजिस्टर करने के लिए?

महान प्रश्न, और निश्चित रूप से, उनके पास एक उत्तर है - JSP निर्देश। जेएसपी के भीतर सभी गैर-एचटीएमएल कोड विशेष कोष्ठकों में संलग्न होने चाहिए <%और %>. सभी जेएसपी निर्देश टेम्पलेट द्वारा दिए गए हैं:

<%@ directive %>

यहां सबसे लोकप्रिय पेज डायरेक्टिव एट्रिब्यूट की सूची दी गई है:

उदाहरण विवरण
1 आयात <%@ page import="java.util.Date" %> एक वर्ग आयात करता है
2 सामग्री प्रकार <%@ page contentType=text/html %> सामग्री प्रकार सेट करता है
3 का विस्तार <%@ page extends="Object" %> आप बेस क्लास सेट कर सकते हैं
4 जानकारी <%@ page info="Author: Peter Ivanovich; version:1.0" %> getServletInfo() के लिए डेटा सेट करता है
5 बफर <%@ page buffer="16kb" %> प्रतिक्रिया बफ़र का आकार सेट करता है
6 भाषा <%@ page language="java" %> भाषा निर्दिष्ट करता है, डिफ़ॉल्ट जावा है
7 इग्नोर किया गया <%@ page isELIgnored="true" %> आपको ईएल स्क्रिप्ट को अक्षम करने की अनुमति देता है
8 isThreadSafe <%@ page isThreadSafe="false" %> थ्रेडसेफ की ओर इशारा करता है
9 autoflush <%@ page autoFlush="false" %> बफ़र लिखता है
10 सत्र <%@ page session="false" %> आप पृष्ठ के लिए सत्र अक्षम कर सकते हैं
ग्यारह पेजएन्कोडिंग <%@ page pageEncoding="UTF-8"%> आप पेज एन्कोडिंग सेट कर सकते हैं
12 त्रुटि पृष्ठ <%@ page errorPage="errorpage.jsp" %> आप एक त्रुटि पृष्ठ सेट कर सकते हैं

2.2 आयात

आइए मज़े के लिए अपनी JSP फ़ाइल में कुछ आयात जोड़ें और एक बेस क्लास परिभाषित करें।

जेएसपी फ़ाइल उदाहरण:

<%@ page import="java.util.Date" %>
  <%@ page import="java.lang.Math" %>
  <%@ page extends="com.codegym.MyHttpServlet" %>

  <html>
  <body>
  <%
      double num = Math.random();
      if (num > 0.95) {
   %>
       <h2>You are lucky, user!</h2><p>(<%= num %>)</p>
  <%
  }
  %>
</body>
 </html>

और इसका परिणाम यह होगा:

import java.util.Date;
import java.lang.Math;

public class HelloServlet extends com.codegym.MyHttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws Exception {
    PrintWriter out = response.getWriter();
    out.print("<html>  ");
    out.print("<body> ");
        double num = Math.random();
        if (num >  0.95) {
             out.print("<h2> You're lucky, user! </h2> <p> (" + num + ")</p> ");
        }
    out.print("</body> ");
    out.print("</html> ");
    }
}

काम करता है। महान!