设计求任意两个整数和的web程序,用户通过提交页面(input.jsp)输入两个整数,并提交给一个(sum.jsp)程序

张继军 董卫 《java web 应用开发技术与实案列教程》课后习题之第三章第4题

题解

题目内容

4.设计求任意两个整数和的web程序,要求,用户通过提交页面(input.jsp)输入两个整数,并提交给一个sum.jsp程序,在sum.jsp中计算这两个数的代数和,如果代数和为非负数,则跳转positive.jsp页面,给出“结果为正!”信息提示并显示计算结果,否则跳转到negative.jsp页面,给出“结
果为负!”信息提示并显示计算结果。

源代码

input.jsp

<body/>中代码如下:
<body>
 <form action="sum.jsp" method="post"> 
 数据1<input type="text" name="shuju1"><br>
 数据2<input type="text" name="shuju2"><br>
 <input type="submit" value="提交"><br>
    </form>
</body>

sum.jsp

使用JSP内置对象request的 getParameter(String name) 方法获得参数值:
 <%
  String str1 = request.getParameter("shuju1");
  String str2 = request.getParameter("shuju2");
  double s1 = Double.parseDouble(str1);
  double s2 = Double.parseDouble(str2);
  double s3 = s1 + s2;
  request.setAttribute("st1", s1);
  request.setAttribute("st2", s2);
  request.setAttribute("st3", s3);
  if(s3>=0){%>
   <jsp:forward page="positive.jsp"/>
  <%}else{%>
   <jsp:forward page="negative.jsp"/>
   <%}%>
  

positive.jsp

<p>结果为正!</p>
 <%
  Double a1 = (Double) request.getAttribute("st1"); //获取的是对象类型,必须强制转换类型
  Double a2 = (Double) request.getAttribute("st2");
  Double a3 = (Double) request.getAttribute("st3");
 %>
 <%=a1%>+<%=a2 %>=<%=a3 %><br>

negetive.jsp

<p>结果为负!</p> <%
  Double a1 = (Double) request.getAttribute("st1"); //获取的是对象类型,必须强制转换类型
  Double a2 = (Double) request.getAttribute("st2");
  Double a3 = (Double) request.getAttribute("st3");
 %>
 <%=a1%>+<%=a2%>=<%=a3%><br>

遇到的问题:Syntax error on token “else”, delete this token

哎,写题的时候是对仿照课本例题写的,可没想到在if else语句处出了问题。一开始在sum.jsp中是这么写的

if(s3>=0)%>
   <jsp:forward page="positive.jsp"/>
<%else%>
   <jsp:forward page="negative.jsp"/>

结果运行出错:Syntax error on token “else”, delete this token在这里插入图片描述
把if语句块用花括号{ }括起来之后就解决了!

if(s3>=0){%>
   <jsp:forward page="positive.jsp"/>
  <%}else{%>
   <jsp:forward page="negative.jsp"/>
  <%} %>

其实一开始仿课本例题写这段代码我就觉得别扭,<jsp:forward>动作元素不包含在JSP代码块中,也就是不能包含在 <% %>里面,然后if(s3>=0)%> 直接使用“%>”结束一段JSP代码块,让我感觉后面的<jsp:forward page="positive.jsp"/>不是if语句控制的,有点别扭。

运行结果

在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值