【发布时间】:2017-01-05 13:30:30
【问题描述】:
每个人。
我正在寻找一种将参数添加到直接链接到 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 来处理这个请求吗?
提前致谢。
【问题讨论】:
-
你遇到了什么异常?
-
getAttribute 或 getParameter ?
-
使用 request.getParemeter("action");