java - Servlet 和 JSP : Adding parameters to a href that routes to a servlet

标签 java jsp servlets

大家。

我正在寻找一种将参数添加到直接链接到 servlet 的 url 的方法。也就是说,我正在创建的应用程序使用一个 Servlet 来通过应用程序本身来路由人们。它会查找一个名为“action”的参数,并据此决定用户将前往何处。

问题是我用来链接到仪表板页面的链接调用了一个 servlet,我在 href 本身中将其称为 Router。我想我可以使用以下代码添加操作参数并将其设置到仪表板:

<a href="Router?action=dashboard">Dashboard</a>

但是,这不起作用。我需要一种将参数添加到链接本身的方法,这样我就可以处理用户尝试访问的页面。

这是我正在使用的 JSP 和用于路由用户的 Servlet 的代码。

<div class="collapse navbar-collapse" id="app-navbar-collapse">
            <!-- Left Side Of Navbar -->
            <ul class="nav navbar-nav">
                <li><a href="index.jsp">Home</a></li>
                 <li><a href="Router?action=dashboard">Dashboard</a></li>
            </ul>

这里是 Servlet 代码:

String action = (String)request.getAttribute("action");

    User user = (User) request.getAttribute("user");

    String url = "home.jsp";

    boolean user_auth = user.getUserAuth();



    switch(action) {
        case "home":
         request.setAttribute("user", user);
         request.getRequestDispatcher(url).forward(request, response);
         break;
        case "dashboard":
            if(user.getUserAuth()) {
                url = "dashboard.jsp";

                out.println("You've been authed");
                //request.getRequestDispatcher(url).forward(request, response);
            } else {
                out.println("You're NOT authed.");
                //request.getRequestDispatcher(url).forward(request, response);
            }
            break;
        default: 
            request.getRequestDispatcher("404Error.jsp").forward(request, response);
    }

这是一个非常简单和直接的应用程序,自从我刚刚开始学习以来它就这样。但我只是想知道如何将参数直接添加到 href 中的 url 中。

如果没有办法,您能提供更好的解决方案吗?我应该使用单独的 Servlet 来处理此请求吗?

提前致谢。

最佳答案

如果您在链接中设置参数,则无法在 Servlet 中使用 getAttribute()。您可能会遇到 NullPointerException

您必须使用 getParameter("action") 来代替。

关于java - Servlet 和 JSP : Adding parameters to a href that routes to a servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207573/

相关文章:

java - ThrowableCaptor 可在 Eclipse 中运行,但不能在 Netbeans 中运行

Java 版本的 MVVM?

Java Servlet Web XML URL 映射

java - 从 xml 文件生成 html 文件

javascript - 如何使用ajax将js数组发送到servlet?

java - 已签名的 jar 文件在 java 1.7.0_76 中可识别,但在 java 1.7.0_75 中无法识别

java - 如何使用嵌套 for 循环来创建向 Java 中的每一行添加附加列的行?

java - 带指数的 BigDecimal 格式

forms - Spring MVC : Difference between spring:bind and form:form

每次追加都会更新 Javascript、JSP 输入值