Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将属性从Servlet传递到jsp时值不匹配_Java_Jsp_Servlets - Fatal编程技术网

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

Java 将属性从Servlet传递到jsp时值不匹配,java,jsp,servlets,Java,Jsp,Servlets,在Servlet中设置值并使用RequestDispatcher在jsp中检索 在test1Servlet中: setAttribute(“Alpha”,Alpha) RequestDispatcher rd=request.getRequestDispatcher(“Test.jsp”) 转发(请求、响应) Test.jsp中的: 单击按钮,我使用请求属性值对另一个servlet进行ajax调用 $(document).ready(function(){ $(".button1").cl

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

在test1Servlet中:

setAttribute(“Alpha”,Alpha)

RequestDispatcher rd=request.getRequestDispatcher(“Test.jsp”)

转发(请求、响应)

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",
$(文档).ready(函数(){
$(“.button1”)。单击(函数(){
$.ajax({
类型:“POST”,
url:“/test2Servlet”,
数据:{“alpha”:“ins”:10},
数据类型:“文本”,
在本例中,如果我在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>

var x=0017;
变量y=0x17;
警报(“x:+x”);
警报(“y:+y”);

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

这是不可能的。您必须在两者之间进行更改。您可以发布servlet和JSP的完整代码吗?post a以及输入和预期及意外输出的准确描述。也就是说,您放弃了t显示您是如何声明和读取这些变量的。您使用的值是八进制表示法而不是十进制表示法,因此您犯错误的可能性很大。我的答案有用吗?然后您可以通过单击复选标记和左侧向上的箭头来接受并向上投票。如果您仍然有问题,请提供更多信息。是的您是对的,但不确定它在哪里更改为八进制,因为我从会话中获取值并将其存储为字符串,并在request.setAttribute(alpha)中使用相同的值。使用下面的代码从会话中获取值,我不能忽略前面零的HttpSession session=request.getSession();string alpha=request.getParameter(“alpha”);session.setAttribute(“alpha”,alpha);如何在test1Servlet中设置
alpha
?它是什么类型?显示定义。将值放在引号中表示jsp ajax调用:
数据:{“alpha”:“”,“ins”:10}
。在
周围加上单引号。