How do I split Java code away from a jsp page in NetBeans?
我被分配了一个任务,让netbeans JSP页面在Tomcat上运行,以便代码接口和查询mysql表,以便检索数据并将其显示在IE页面上。我做到了,代码在执行时就开始工作了;我正在复制它(它是phonebooktabledataretrieval.jsp文件),如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <%@page import="java.sql.*"%> <% Class.forName("com.mysql.jdbc.Driver"); %> <%@page contentType="text/html" pageEncoding="UTF-8"%> //<!DOCTYPE html> // <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <%! public class Record { String pathToDB ="jdbc:mysql://localhost:3306/agenda"; String username ="root"; String password ="Digital1"; Connection sessionWithAgendaDB = null; PreparedStatement precompiledStatementToPhoneBookTable = null; ResultSet queriedTableData = null; public Record (){ try { sessionWithAgendaDB = DriverManager.getConnection(pathToDB, username, password); precompiledStatementToPhoneBookTable = sessionWithAgendaDB.prepareStatement("SELECT * FROM phone_book"); } catch (SQLException e){ e.printStackTrace(); } } public ResultSet fetchRecords(){ try { queriedTableData = precompiledStatementToPhoneBookTable.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return queriedTableData; } } %> <% Record record = new Record(); ResultSet records = record.fetchRecords(); %> <table border="1"> <tbody> <tr> <td>Phone Book Code</td> <td>First Name</td> <td>Last Name</td> <td>Phone Number</td> </tr> <% while (records.next()) { %> <tr> <td><%= records.getInt("p_B_CODE")%></td> <td><%= records.getString("p_B_NAME")%></td> <td><%= records.getString("p_B_SURNAME")%></td> <td><%= records.getString("p_B_PHONE")%></td> </tr> <% } %> </tbody> </table> </body> |
但我被告知,我的代码是混合在一起的Java代码和HTML代码的一部分,这是真的,这是不好的模块化和便携性的目的。因此,我被告知要把我在JSP页面中编写的类的Java代码拆分,并将这些类保存为NETBeaS项目的SRC/Java文件夹中的*.java文件,其分支我不能用屏幕截图来复制,所以我有这样的情节:
项目名称:PhoneBookTableDataRetrieval,其下是文件夹:
1 2 3 4 5 6 7 8 9 | build nbproject src conf java web WEB-INF PhoneBookTableDataRetrieval.jsp build.xml |
我的问题是,我不知道如何编写这些*.java文件,以便使它们成为可用的类(它们是‘公共静态空洞’的东西’还是什么?)我也不必从JSP页面的HTML代码中调用它们(顺便问一下,我应该从JSP页面中拆分HTML代码并将其保存到其他地方吗?如果是这样,我也不知道该怎么做)。你能帮我吗?如果您真的想这样做,请完整编写应该制作*.java文件的代码(当然使用我已经编写的类的Java代码),并且请完整地编写从JSP页面内调用这些*.java文件的语句。如果你不明确地写代码,我就不能自己写了;因此,像"是的,把类保存在一个公共的静态void主文件中,用一个"load"语句从JSP页面中调用它们,你会没事的"这样的指示对我来说是完全无用的。我提前为我的无知道歉,但是,正如我告诉你的,我真的是一个虚拟的程序员(但这件事对我很重要)。非常感谢您为我提供的详细(以完整的方式书写)帮助。
我认为在这个站点上获取代码是很困难的。
不过,我认为既然您能够编写所有这些代码,那么一旦您了解了以下内容,就可以轻松地将代码转换为模块形式:
小服务
从servlet转发到jsp
试试这个链接:https://danielniko.wordpress.com/2012/04/17/simple-crud-using-jsp-servlet-and-mysql/
那篇文章有一个到Github项目的链接,它包含了您所需要的所有源代码。