【问题标题】:Load a jsp page with data from database使用数据库中的数据加载 jsp 页面
【发布时间】:2018-08-11 06:45:32
【问题描述】:

我想在我的项目中加载一个包含数据库中所有课程名称的课程页面。

这里我们可以看到一个例子edx courses page

所有课程的数据无需点击或提交即可加载。 那么我该怎么做呢?

这是我尝试通过从 Server1.java 向 client1.jsp 发送字符串的简单示例。但是当我打开 client1.jsp 时,它什么也没显示。

File-Servlet1.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import javax.websocket.Session;

import java.util.*;


@WebServlet("/Servlet1")
public class Servlet1 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse 
        response) throws ServletException, IOException {

        String name="Rahul";
        HttpSession s=request.getSession(true);

        s.setAttribute("myname", name);
        response.sendRedirect("client1.jsp");


    }

}

文件-client1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Insert title here</title>
        </head>
    <body>
        <div><h1>${myname}</h1></div>
        <h1><%session.getAttribute("myname");%></h1>

    </body>
</html>

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:
    1. 您调用 servlet
    2. servlet 的doGet() 方法从请求不是会话)
    3. servlet forwards重定向),使用 request dispatcher,到 JSP
    4. JSP 使用 JSTL (&lt;c:forEach&gt;)( 使用 scriptlet)循环访问存储在 names 属性中的名称。对于每个名称,它使用&lt;c:out&gt; 显示它。

    【讨论】:

    • 但是它如何像在 edx 网站上一样加载数据呢?你说的我昨天都试过了。
    • 通过查询您的数据库。我不知道您使用的是哪种数据库。如果是关系型数据库,请使用 [JDBC](h. If ttps://docs.oracle.com/javase/tutorial/jdbc/basics/index.html) 或 JPA。
    • 我可以通过 Servlet1.java 在控制台上检索并轻松打印它。但是当我单击“课程”选项卡(courses.jsp) 时,client1 如何从 Servlet1 请求数据
    • 阅读我的回答。已经解释过了。您单击选项卡。向您的 servlet 发送请求(第 1 步),servlet 从数据库中获取数据(第 2 步)等等。当然,“课程”选项卡的链接的 URL 必须是 servlet 的 URL(是你在问什么?)
    • 谢谢,但这是我一直在寻找的 -stackoverflow.com/questions/3590961/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    相关资源
    最近更新 更多