У меня есть класс Java, который выполняет некоторые операции на файлах. Так как код Java огромен, я не хочу писать этот код в jsp. Я хочу назвать методы в jsp каждый раз, когда требуется.
Скажите мне путь, где я должен сохранить этот файл. Также некоторый пример кода, как использовать его, был бы полезен.
Я думаю, вопрос в том, как сделать Java-код доступным в JSP? Вы должны сделать его доступным, как любой другой код Java, а это значит, что его нужно скомпилировать в файл .class и поместить в путь к классам.
В веб-приложениях это означает, что файл класса должен существовать в WEB-INF / classes в файле или каталоге приложения .war в обычной структуре каталогов, соответствующей его пакету. Итак, скомпилируйте и разверните этот код вместе со всем остальным Java-кодом вашего приложения, и он должен оказаться в нужном месте.
Обратите внимание, что вам нужно будет импортировать свой класс в JSP или использовать полное имя класса, но в противном случае вы можете написать любой код Java, который вам нравится, используя синтаксис <%%>.
Вы также можете объявить метод в какой-нибудь другой служебной программе JSP, используя <%! %> (обратите внимание на!), импортируйте JSP, а затем вызовите метод, объявленный в таком блоке. Но это плохой стиль.
В сервлете (который выполняется до JSP):
Person p = new Person(); // instantiate business object
p.init(...); // init it or something
request.setAttribute("person", p); // make it available to the template as 'person'
В шаблоне вы можете использовать следующее:
your age is: ${person.age} <%-- calls person.getAge() --%>
В зависимости от того, какое действие вы хотите вызвать, для этого обычно используются taglibs, EL-функции или сервлеты. Java-коду действительно, действительно не место в JSP-файлах, а в Java-классах.
Если вы хотите предварительно обработать запрос, используйте метод сервлета doGet()
. Например,
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Preprocess request here.
doYourThingHere();
// And forward to JSP to display data.
request.getRequestDispatcher("page.jsp").forward(request, response);
}
Если вы хотите постпроцессировать запрос после отправки формы, используйте метод Servlet doPost()
вместо этого.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Postprocess request here.
doYourThingHere();
// And forward to JSP to display results.
request.getRequestDispatcher("page.jsp").forward(request, response);
}
Если вы хотите контролировать поток страницы и/или вывод HTML, используйте библиотеку тегов, например JSTL core taglib или создайте пользовательские теги.
Если вы хотите выполнять статические/помогающие функции, используйте EL-функции, например JSTL fn taglib или создайте пользовательские функции.
Хотя я не буду советовать вам выполнять какие-либо вызовы Java в JSP, вы можете сделать это внутри JSP:
<%
//Your java code here (like you do in normal java class file.
%>
<!-- HTML/JSP tags here -->
Если вам интересно, <% ...%>
раздел называется скриптлетом : -)
На самом деле, jsp не подходит для «выполнения некоторых операций с файлами». Вы слышали о шаблоне MVC ?
Если вас все еще интересует вызов java-метода из jsp, вы можете сделать это, например:
1. <% MyUtils.performOperation ("delete")%>
( скриптлет )
2.
(настраиваемый тег)
В любом случае я рекомендую вам Google по поводу скриптлетов, настраиваемых тегов jsp и шаблона MVC. {{1 }}
С уважением, Гедеван