我有一個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