首页 > 解决方案 > 如何重定向按钮或链接到数据库中的每个数据?- Java网络应用程序

问题描述

我在下面有这个会话 servlet,或者至少是它的一个开始。我还没有弄清楚如何编写 html 文本以便重定向到相应的请求。

这个想法是在第一页上应该向用户显示数据库中的数据条目(资源)列表。每个条目旁边都有一个按钮,该按钮重定向到第二页,例如显示此特定条目的详细信息,仅此而已。我一直在试图弄清楚要使用什么,我尝试过使用 Http 事件处理接口和过滤器。但是,要么根本不需要它们,要么我使用不正确。

第二页还应包含一个按钮,该按钮将重定向回第一页,列出所有数据库条目。这可能是显而易见的,但我想我可以从请求中获取会话(),然后使用它返回到第一页。但是,一旦我从请求中获取会话(),接下来我该怎么做?我不能完全转发会话以返回第一页。

抱歉,如果我错误地使用了术语数据库条目。数据库条目是指数据库表中的数据。

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

@WebServlet("/session")
public class SessionServlet extends HttpServlet{


    private ResourceLogic _logic;
    private ResourceModel rm;
    @javax.annotation.Resource(name = "jdbc/web-jdbc")
    private DataSource _dataSource;
    public void init() {
        _logic = new ResourceLogic(_dataSource);
        rm = null;
    }
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        User us = (User) req.getAttribute("user_acc");

        try {
            rm = new ResourceModel(_logic.getDbResource(us));
            for(Resource r:rm.getResources()){
                String str = "<body>" //
                        + "<form method=\"get\" action=\"/session\">" //
                        + "<table>"
                        + "<b>"+r.get_id()+" "+r.get_name() +"</b>"
                        + "<button type=\"button\" onclick=\"alert("+r.toString()+")\">Click Me!</button>"
                        + "</form> <br>"
                        + "</body>" ;//
                writer.printf(str);
            }
        } catch (SQLException exception) {
            exception.printStackTrace();
        }

    }

}

标签: javahtmlsql

解决方案


推荐阅读