大家。
我正在寻找一种将参数添加到直接链接到 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/