Sobes.tech
Middle

Brauzerdən JSP səhifəsinə birbaşa giriş necə qarşısını almaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

Bir neçə yanaşma istifadə oluna bilər:

  1. JSP-ləri WEB-INF qovluğunda saxlamaq: WEB-INF qovluğunun məzmunu brauzerdən birbaşa əlçatan deyil. Bu, standart və ən çox istifadə olunan üsuldur.

    // Layihənin strukturu
    WEB-INF/
        web.xml
        jsp/
            myPage.jsp
        classes/
        lib/
    

    Bu halda myPage.jsp-yə giriş servlet və ya başqa bir nəzarətçi vasitəsilə həyata keçirilir, o RequestDispatcher.forward()-u icra edir.

  2. web.xml-də giriş məhdudiyyətlərinin qurulması: <security-constraint> elementindən istifadə etməklə JSP səhifələrinə uyğun URL nümunələrinə giriş məhdudlaşdırıla bilər.

    <!-- web.xml -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>JSP səhifələrini qoruyun</web-resource-name>
            <url-pattern>*.jsp</url-pattern>
        </web-resource-collection>
        <auth-constraint/> <!-- Boş auth-constraint heç kəsin girişinə icazə vermir -->
    </security-constraint>
    

    Bu üsul hər hansı JSP faylına edilən sorğuları ələ alır və birbaşa girişin qarşısını alır.

  3. Servletlərdən nəzarətçi kimi istifadə etmək: JSP-ə birbaşa giriş yerinə, sorğular servlet-ə yönəldilir, o, məntiqi işləyir və sonra uyğun JSP səhifəsinə WEB-INF-də yerləşən fayla forward edir.

    // Nümunə servlet
    @WebServlet("/myController")
    public class MyController extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // Sorğu işləmə məntiqi
            request.getRequestDispatcher("/WEB-INF/jsp/myPage.jsp").forward(request, response);
        }
    }
    

Ən effektiv və etibarlı üsul, JSP-ləri WEB-INF qovluğunda saxlamaqservletlər (və ya digər nəzarətçilər) istifadə edərək onlara giriş təmin etməkdir. Bu, məntiq və təqdimatın ayrılmasını təmin edir və səhifələrə nəzarətli giriş imkanı verir.