java - 将属性从 Servlet 传递到 jsp 时值不匹配

标签 java jsp servlets

在 Servlet 中设置值并使用 RequestDispatcher 在 jsp 中检索它

在 test1Servlet 中:

request.setAttribute("Alpha",alpha);

RequestDispatcher rd = request.getRequestDispatcher("Test.jsp");

rd.forward(请求,响应);

在 Test.jsp 中: 单击按钮时,我使用请求属性值对另一个 servlet 进行 ajax 调用

$(document).ready(function(){

  $(".button1").click(function(){
            $.ajax({

  type: "POST",

  url: "<%=request.getContextPath()%>/test2Servlet", 

 data: {"alpha":<%=request.getAttribute("alpha")%>,"ins":10},

 dataType:"text",

在这种情况下,如果我在 test1Servlet 中将 alpha 值设置为 0017,则在 jsp 中得到 0015。

这个值是如何改变的?

请大家帮我解决这个问题。

最佳答案

那里没有错误。您获得了正确的值。
在许多语言中,前面带有零的数字被解释为八进制或十六进制:

  • 八进制:017 = 15
    (因为 1 的计算结果是 8 和 7。所以 1×8+7=15)。
  • 十六进制:0x17 = 1×16 + 7 = 23

尝试一下:

<script>
    var x = 0017;
    var y = 0x17;
    alert("x:" + x);
    alert("y:" + y);
</script>

由于 post 参数已转换为字符串,因此您可以将值放在引号中。或者避免数字中出现前导零。

关于java - 将属性从 Servlet 传递到 jsp 时值不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41506203/

相关文章:

java - 如何使用 Java 和 PostgreSQL 在 Web 应用程序中保存、检索和绘制图像?

javascript - 需要从数据库中删除记录并使用jsp中的复选框提醒已删除的id

android - Java Servlet、Cookie 和 Android

Java:仅表示主机、方案、可能来自 servlet 请求的端口的字符串表示

java - 为什么一些 Android 代码在以前的 API 级别上工作而不是应该的?

java - MultipleOutputs 与 SideEffectFile

java - MockMVC - 如何在没有 mockMvc 进行实际发布的情况下测试到端点的发布?

java - 将连续的字符串数据拆分为所需的垂直输出

java - 为什么 session 不为空

java - 由 : java. lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonMappingException$Reference 引起