将Java结果传递给JSP
我最近被扔进了用Java编程网站的奇妙世界。我有一点java的经验,但我还是认为自己是初学者。 我创建了一个Java类,其中包含一个简单的SQL查询。我试图在JSP页面上显示,但不确定如何实现这一点 下面是我的Java类Main.Java:将Java结果传递给JSP,java,jsp,Java,Jsp,我最近被扔进了用Java编程网站的奇妙世界。我有一点java的经验,但我还是认为自己是初学者。 我创建了一个Java类,其中包含一个简单的SQL查询。我试图在JSP页面上显示,但不确定如何实现这一点 下面是我的Java类Main.Java: public static void main(String[] args) throws Exception { //Accessing driver from JAR Class.forName("com.mysql.jdbc.Driv
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?您确定这是创建java网站的好方法吗
向谷歌索要JavaEE和servlet,然后进入其中。JSP还允许您在JSP中编写Java代码块。您可以通过在字符之间放置Java代码来实现这一点。 scriptlet包含每次调用JSP时执行的Java代码。 下面是一个指向简单jsp web应用程序的链接,该应用程序将帮助您入门
您可以使用下面的示例代码作为参考
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;
}
web编程中的一个基本概念是,不从主方法或任何其他方法启动操作。有人请求一个JSP或servlet以及相应的类答案。您可以在JSP中完成这两项工作,并将连接数据库的工作留给辅助类,如@chaitanya10 answer所示
内比亚人是一个不错的起点。web上有几个JSP/servlet教程,但我建议不要使用Java EE教程。如果需要将结果保存并显示到JSP 将结果保存在请求和视图层中,并使用JSTL迭代显示结果。 这意味着,在servlet中,获取请求并将其转发给新的jsp
我建议使用JSF代替JSP,对于您发布的示例,您需要做的是编写一个servlet,在该servlet中,您将有您的业务逻辑调用,在本例中是数据库查询,在获取数据后,您必须将其传递到JSP页面。对于servlet,不需要main方法,但它们必须部署在像Tomcat这样的servlet容器中 代码如下: 公共类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>
您可以通过使用而不是Scriptlet来改进此示例。如果您做得不对,google around more并没有真正的帮助。如果您想不出好的答案,请将问题传递给我们。这个答案不是我认为好的,即使它是你在短时间内想到的最好的。我被告知有一个MVC结构,但实际上没有发现很多,我对MVC非常熟悉,但我不确定它是如何应用的。java@user1393064也许他们指的是Spring MVC:如果是的话,我还建议搜索一些教程,官方文档有点吓人。@user1393064到mvc的链接现在实际使用原始JSP是很少见的。您应该了解您的工作实际使用的框架,并查找该特定框架的教程。我不担心先详细学习底层内容——到目前为止,servlet是用来编写web框架的东西,而不是应用程序,JSP或多或少是一种遗留技术。您已经在这里介绍了Java EE教程:它是针对uni作业的,所教授的文本/信息已经过时。Java EE 5教程是最后一个似乎详细介绍Servlets+JSP的教程:。不过,它并没有真正处理如何让应用程序在容器中运行的问题。如果你被允许使用IDE,我会随便看看你用哪一个来帮助你。我承认我有点不知道如何从头到尾解释这一点。Java EE在让一个新手从0岁到60岁这一点上是非常糟糕的——在回答一个看似琐碎的问题时,假设之前的基本知识只涉及到讨论许多运动部件。我所知道的大部分都是通过潜移默化的实践逐渐渗透进来的,而不是连贯地向我解释。如果我在编程课上教这个,我可能会提供某种类型的学生测试服务器,他们可以简单地将代码复制到-也许可以检查您是否有可用的代码?基本上,我们需要创建一个网站,允许用户向数据库提交一些基本信息,然后还可以检索这些信息。对不起,您能给我指一下教程吗或者其他可以告诉我如何做的事情?请参阅本教程:感谢您的回复,但是我在运行jsp文件时遇到了这个错误:类型不匹配:无法从对象转换为列表