0

我最近被扔进了用 Java 编程网站的美妙世界。我对 Java 有一点经验,但仍然认为自己是初学者。

我创建了一个 Java 类,其中包含一个简单的 SQL 查询。我正在尝试在 JSP 页面上显示,但不确定如何实现这一点。

这是我的名为 Main.java 的 Java 类:

public static void main(String[] args) throws Exception { 
    //Accessing driver from JAR
    Class.forName("com.mysql.jdbc.Driver");

    //Creating a variable for the connection called "con"
    //jdbc:mysql://host_name:port/dbname
    //Driver name = com.mysql.jdbc.Driver
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/wae","root","");

    PreparedStatement statement = con.prepareStatement("select name from user");
    ResultSet result = statement.executeQuery();
    while(result.next()) {
        System.out.println(result.getString(1));
    }
}

我将如何进入system.out.printlnJSP 页面?

4

6 回答 6

1

如果需要保存结果并显示到 JSP 中。

将结果保存在请求中,并在视图层中使用 JSTL 进行迭代以显示结果。这意味着,在 servlet 中获取请求并将其转发给新的 jsp

我建议使用 JSF 而不是 JSP ,

于 2012-09-28T23:17:32.420 回答
0

对于您发布的示例,您需要做的是编写一个 servlet,在该 servlet 中您将进行业务逻辑调用(在本例中为数据库查询),在获取数据后,您必须将其传递给 JSP 页面. 使用 servlet 不需要 main 方法,但它们必须部署在 servlet 容器(如 Tomcat)中。

这是代码:

公共类 UserListServlet 扩展 HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
                                    throws ServletException, IOException {  
    //Accessing driver from JAR
    Class.forName("com.mysql.jdbc.Driver");

    //Creating a variable for the connection called "con"
    //jdbc:mysql://host_name:port/dbname
    //Driver name = com.mysql.jdbc.Driver
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/wae","root","");

    PreparedStatement statement = con.prepareStatement("select name from user");
    ResultSet result = statement.executeQuery();
    //creates a list with the user names
    List<String> userList = new ArrayList<String>();
    while(result.next()) {
        userList.add(result.getString(1));
    }
    //passing the data to the JSP
    request.setAttribute("users", userList);
    getServletContext().getRequestDispatcher("/user_list.jsp").forward(request, response);  
}  

protected void doGet(HttpServletRequest request, HttpServletResponse response)                           throws ServletException, IOException {  
    processRequest(request, response); 
}  

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
                                throws ServletException, IOException {
    processRequest(request, response);
}

}

现在在 JSP 中你可以有这样的东西:

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>User List</title>
    </head>
    <body>
        <%
        if (request.getAttribute("userList") != null) {
            List<String> users = request.getAttribute("userList");
        %>

        <h1>Users: </h1>
        <table>
            <tr>
                    <td>Name<</td>
            </tr>

            <% for (String name : users) {%>

            <tr>
                <td><%= name%></td>
            </tr>
            <% }
          }%>

        </table>
    </body>
</html>

您可以通过使用JSTL而不是 Scriptlet (<% ... %>) 来改进此示例。

于 2012-09-29T05:24:26.940 回答
0

JSP 还允许您在 JSP 中编写 Java 代码块。为此,您可以将 Java 代码放在 <% 和 %> 字符之间。scriptlet 包含每次调用 JSP 时都会执行的 Java 代码。
这是一个简单的 jsp Web 应用程序的链接,它应该可以帮助您入门。

http://j2ee.masslight.com/Chapter1.html#mygreeting

于 2012-09-28T22:21:46.457 回答
0

您可以使用下面的示例代码作为参考。

JSP page
       <form action="servlet1" method="get">
        <%   ModelClass class = new ModelClass();
        class.connectDb();
        class.performDBoperations();
          %>
       <table><tr><td>
      <%   
              class.id;     
       %> 
       </form>

Model Class:
        class ModelClass {
          int id;
            public static void connectDb() {
               dbConnection code
               }
             public void performDBoperations() {
                  get info from table with SQL thru JDBC.
                    id=update it;  
               }
于 2012-09-28T22:33:57.587 回答
0

Web 编程中的一个基本概念是您不会从方法(main或任何其他方法)开始操作。有人请求 JSP 或 servlet 和相应的类答案。您可以在 JSP 中完成这两件事,并将连接到数据库的工作留给辅助类,如 @chaitanya10 答案所示。

JSP 的Nebeans教程是一个不错的起点。网络上有几个 JSP/Servlets 教程,但我建议远离 Java EE 教程。

于 2012-09-28T22:47:05.473 回答
-2

您确定这是创建 Java 网站的好方法吗?

向谷歌询问 Java EE、Servlet 并进入它。

于 2012-09-28T22:16:30.810 回答