【问题标题】:JSP pass hidden input value to servlet when the page loadJSP在页面加载时将隐藏的输入值传递给servlet
【发布时间】:2014-07-18 14:08:43
【问题描述】:

我应该使用 getRemoteUser 功能来获取登录用户。在创建身份验证部分之前,我试图在 jsp 页面中对用户进行硬编码并将其传递到我的 servlet 中。但是当我尝试打印出它的空值时:

<input type="hidden" name="userId" id="userId" value="123456789" />

这是我尝试获取用户的方式:

    String fakeUser = request.getParameter("userId");
    PrintWriter out = response.getWriter();
    out.println(fakeUser);
    System.out.println(fakeUser)

我还尝试了 Stackoverflow 帖子后面提到的解决方案,但也没有用。 passing value from jsp to servlet

【问题讨论】:

  • 输入必须是提交的表单(通过按钮或JavaScript)。
  • @JoopEggen 有没有其他方法可以通过 JSP 将变量传递给 servlet?
  • 我不明白,我提出了合理的问题,但它被否决了。非常恶劣的环境:)
  • (我没有投反对票。)当问题对其他人不是很有趣/没有用时,也会发生投反对票。 令人反感的问题用“标记”处理。所以你们相处得很好。
  • 一般从 servlet 使用 request.setAttribute("msg", "Hello"); 传递到 jsp,然后在 JSP 中使用 ${msg}。也适用于列表等。

标签: java jsp servlets


【解决方案1】:

当您尝试使用 hidden-form field 时,我假设您正在尝试使用某种 state management

试试这样的

<form action="urlOfYourServlet" method="post">
    Enter your name : <input type ="text" name = "name"> 
    <input type="hidden" name="hidden" value="Welcome">
    <input type="submit" value="submit">
</form> 

在小服务程序中

 String getHiddenValue=request.getParameter("hidden");
 String name=request.getParameter("name");
 System.out.println(name+" Hidden field Value is :"+getHiddenValue);

缺点:

  1. 请求之间只能保留文本信息。
  2. 此方法仅在通过输入表单提交请求时有效

试试url-redirectingHttpSession

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    相关资源
    最近更新 更多