我有一个java类,它对文件执行一些操作。由于java代码很大,我不想用jsp编写这段代码。我想在需要时在jsp中调用方法。在jsp中调用java方法
请告诉我需要保留这个文件的路径。还有一些示例代码如何使用它会有所帮助。
我有一个java类,它对文件执行一些操作。由于java代码很大,我不想用jsp编写这段代码。我想在需要时在jsp中调用方法。在jsp中调用java方法
请告诉我需要保留这个文件的路径。还有一些示例代码如何使用它会有所帮助。
我想问的是,您如何让Java代码可用于JSP?你可以像其他任何Java代码一样使用它,这意味着它需要被编译到一个.class文件中并放到类路径中。
在Web应用程序中,这意味着类文件必须存在于应用程序的.war文件或目录中的WEB-INF/classes下,与通常的目录结构匹配其包。因此,编译和部署此代码以及所有其他应用程序Java代码,并且它应该位于正确的位置。
请注意,您需要在JSP中导入您的类,或者使用完全限定的类名称,否则您可以使用< %%>语法来编写您喜欢的任何Java代码。
您还可以在其他实用JSP中声明一个方法,使用<%! %>语法(注意!),导入JSP,然后调用在此块中声明的方法。尽管这是不好的风格。
在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() --%>
虽然我不建议你做任何Java调用JSP,你可以这样做你的JSP中:
<%
//Your java code here (like you do in normal java class file.
%>
<!-- HTML/JSP tags here -->
如果你想知道,在<% ... %>
部分称为scriptlet :-)
根据你想要调用的动作类型,你通常使用taglibs,EL函数或servlets。 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或创建custom tags。
如果要执行静态/辅助函数,请使用EL功能,如JSTL fn taglib或创建custom functions。
感谢您的回答,我已经完成了,因为您已经说过导入java类并使用它....再次感谢所有回答... – 2010-03-17 04:32:55