如何从NetBeans中的jsp页面拆分Java代码?

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项目的链接,它包含了您所需要的所有源代码。