我最近被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));
}
}
如何在JSP页面上获得system.out.println
?
答案 0 :(得分:1)
如果您需要保存结果并显示给JSP。
将结果保存在请求中,并在视图层迭代中使用JSTL显示结果。 这意味着,在servlet中获取请求并转发它新的jsp
我建议使用JSF代替JSP,
答案 1 :(得分:0)
JSP还允许您在JSP中编写Java代码块。您可以通过将Java代码置于<%和%>之间来实现此目的。字符。 scriptlet包含每次调用JSP时执行的Java代码 这是一个简单的jsp Web应用程序链接,可以帮助您入门。
答案 2 :(得分: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;
}
答案 3 :(得分:0)
Web编程的一个基本概念是您不从方法(main
或任何其他方法)开始操作。有人请求JSP或servlet以及相应的类答案。您可以在JSP中执行这两项操作,并将连接到数据库的工作留给辅助类,如@ chaitanya10 answer所示。
Nebeans tutorial for JSP's并不是一个糟糕的起点。网上有几个JSP / Servlets教程,但我建议远离Java EE教程。
答案 4 :(得分: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代替Scriptlets(&lt;%...%&gt;)来改进此示例。
答案 5 :(得分:-2)
您确定这是创建Java网站的好方法吗?
向谷歌询问Java EE,Servlets并加入其中。