【发布时间】:2015-08-03 08:45:45
【问题描述】:
我被分配了一项任务,即制作一个在 Tomcat 上运行的 NetBeans jsp 页面,以便代码接口和查询 MySql 表,以便检索其数据并将它们显示在 IE 页面上。我这样做了,代码在执行时工作;我在下面复制它(它是 PhoneBookTableDataRetrieval.jsp 文件):
<%@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">
<title></title>
</head>
<body>
<h1></h1>
<%!
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 代码,并将这些类保存为 NetBeans 项目的 src/java 文件夹中的 *.java 文件,我无法通过屏幕截图在下面重现其分支,所以我有点情节:
项目名称:PhoneBookTableDataRetrieval,其下为文件夹:
build
nbproject
src
conf
java
web
WEB-INF
PhoneBookTableDataRetrieval.jsp
build.xml
我的问题是,我既不知道如何编写这些 *.java 文件以使它们成为可用的类(它们是“公共静态 void main”的东西还是什么?),也不知道我如何拥有从 jsp 页面的 HTML 代码中调用它们(顺便说一下,我是否也应该从 jsp 页面中拆分 HTML 代码并将其也保存在其他地方?如果是这样,我也不知道该怎么做)。你能帮我解决这个问题吗?如果你真的想这样做,请完整编写应该生成 *.java 文件的代码(当然使用我已经编写的类的 Java 代码),并且请完整编写调用这些 *.java 文件的语句。来自 jsp 页面内的 java 文件。如果您不明确编写代码,我将无法自己编写;因此,诸如“是的,将类保存在公共静态 void 主文件中并使用“加载”语句从 jsp 页面中调用它们,你会没事的”这样的指示对我来说完全没用。我提前为我的无知道歉,但是,正如我告诉你的,我真的是一个愚蠢的程序员(但这件事对我来说很重要)。非常感谢您为我提供的详细(以完整的方式编写)帮助。
【问题讨论】:
-
不幸的是,alexandersaiz,你的回答正是我指定的,对我来说毫无用处。我真的需要按照我要求的方式完成这些事情,然后才在一些视频教程的帮助下,我将尝试理解从我的代码到我所要求的“模块化”代码的原因。跨度>
-
好的,非常感谢 alexandersaiz 和 Pshemo,如果没有任何进展,我会尝试。