首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在jsp中调用java方法。

在jsp中调用java方法。
EN

Stack Overflow用户
提问于 2010-03-01 15:00:48
回答 4查看 99.1K关注 0票数 20

我有一个java类,它对文件执行一些操作。因为java代码很大,所以我不想用jsp编写这段代码。我想在需要的时候调用jsp中的方法。

请告诉我需要保存此文件的路径。另外,一些如何使用它的示例代码也会很有帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-01 16:35:43

我认为问题是,如何使Java代码对JSP可用?您可以让它像任何其他Java代码一样可用,这意味着需要将它编译成.class文件并放在类路径中。

在web应用程序中,这意味着类文件必须存在于应用程序的.war文件或目录中的WEB-INF/classes下,其目录结构与其软件包相匹配。因此,将这段代码与所有其他应用程序Java代码一起编译和部署,它应该放在正确的位置。

注您将需要在JSP中导入您的类,或者使用完全限定的类名,否则您可以使用<% %>语法编写您喜欢的任何Java代码。

您还可以使用<%!%>语法(请注意!)在其他实用程序JSP中声明方法,导入JSP,然后调用在这样的块中声明的方法。不过这是一种糟糕的风格。

票数 10
EN

Stack Overflow用户

发布于 2010-03-01 15:05:46

在servlet (在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() --%>
票数 24
EN

Stack Overflow用户

发布于 2010-03-01 19:46:44

根据您想要调用的操作类型,您通常会使用标记库、EL函数或servlet。Java代码真的,真的不属于JSP文件,而是属于Java类。

如果要预处理请求,请使用Servlet 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或create custom tags之类的标记库。

如果您想要执行静态/帮助函数,请使用EL函数,如JSTL fn taglib或create custom functions

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2354293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档