Страницы JSP могут включать некоторый код на Java. Таким образом, мы можем определять прямо в JSP переменные, методы, вообщем, некоторую логику. Однако если программной логики на Java довольно много, то лучше выносить ее в отдельные классы. Однако в данном случае может возникнуть вопрос, как организовать взаимодействие классов на Java и JSP. Рассмотрим этот вопрос.
В данном случае используем Eclipse. Создадим новый проект по типу Dynamic Web Project (как описано в прошлой теме) или возьмем уже имеющийся.
Допустим, в моем случае проект называется hellojsp. Перейдем в структуре проекта к узлу Java Resources и его под узлу src. Это тот узел, который хранит в проекте все классы на языке Java, которые мы хотим использовать в своем приложении.
Вначале добавим в папку src новый пакет, где будут располагаться классы. Поэтому нажмем на узел src правой кнопкой мыши и в контекстном меню выберем пункт New -> Package.
В появившемся окне укажем название пакета, например, com.metanit.hellojsp
:
Далее добавим в этот пакет новый класс. Для этого в структуре проекта нажмем на пакет правой кнопкой мыши и в контекстном меню выберем пункт New -> Class:
В окне добавления нового класса дадим ему имя Calculator (имя может быть произвольным). Остальные опции оставим по умолчанию.
Далее определим в файле Calculator.java следующий код:
package com.metanit.hellojsp; public class Calculator { public int square (int n) { return n * n; } }
В данном случае для простоты примера класс содержит один метод, который возводит число в квадрат.
Теперь определим в проекте в папке WebContent файл jsp, например, hello.jsp. Используем на странице hello.jsp класс Calculator. Для этого определим в hello.jsp следующий код:
<%@page import="com.metanit.hellojsp.Calculator"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>JSP Application</title> </head> <body> <h2>Square of 3 = <%= new Calculator().square(3) %></h2> </body> </html>
Вначале с помощью директивы @page подключается класс com.metanit.hellojsp.Calculator. Затем его метод square используется на странице.