JSP动作标记的简单应用

目录

一、计算梯形面积

二、计算累加和


一、计算梯形面积

1.内容:

编写两个JSP页面:main.jsp和lader.jsp,将两个JSP页面保存在同一Web服务目录中。main.jsp使用include动作标记动态加载lader.jsp页面。lader.jsp页面可以计算并显示梯形的面积。当lader.jsp被加载时获取main.jsp页面中include动作标记的param子标记提供的梯形的上底、下底和高的值。

2.实现:(前提:配置好tomcat虚拟路径)

2.1 main.jsp

<%@ page contentType = "text/html;charset=utf-8" %>
<HTML>
    <BODY>
        <jsp:include page="lader.jsp">
            <jsp:param name="topLine" value="30"/>
            <jsp:param name="baseLine" value="60"/>
            <jsp:param name="height" value="40"/>
        </jsp:include>
    </BODY>
</HTML>

(因为使用GB2312编码会出现乱码,所以统一改成utf-8)

2.2 lader.jsp

<%@ page contentType = "text/html; charset=utf-8" %>
<HTML>
<BODY>
<%
	String topLine = request.getParameter("topLine");
	String baseLine = request.getParameter("baseLine");
	String height = request.getParameter("height");
	double a = Double.parseDouble(topLine);
	double b = Double.parseDouble(baseLine);
	double h = Double.parseDouble(height);
	double area = (a+b)*h/2;
%>
<p> 梯形的上底为:<%=a %>
	<br>
<p> 梯形的下底为:<%=b %>
	<br>
<p> 梯形的高为:<%=h %>
	<br>
<p> 梯形面积为:<br>
<%=area %>
</BODY>
</HTML>

2.3 打开浏览器,通过Tomcat配置的虚拟路径,打开main.jsp即可。效果如下:

JSP动作标记的简单应用


二、计算累加和

1.内容:通过表单写入一个正整数n,然后通过动作include插入一个计算1~n累加和的程序。

2实现:

2.1 inputNum.jsp

<%@ page contentType = "text/html;charset=utf-8" %>
<HTML>
	<BODY>
		<p>请输入一个整数:<br>
	<form action="" method=get name=form>
		<input type="text" name="number">
		<input type="submit" name="submit" value="计算"><br>
	</form>
	<% String num=request.getParameter("number");
	   if(null != num && !num.equals("")){
	%>      <jsp:include page="recall.jsp">
				<jsp:param name="num" value="<%=num%>"/>
			</jsp:include>
	<% } %>
	</BODY>
</HTML>

2.2 recall.jsp

<%@ page contentType = "text/html;charset=utf-8" %>
<HTML>
<body>
	<% String num = request.getParameter("num");
		int n = Integer.parseInt(num);
		int sum = 0;
		for(int i = 1;i <= n;i++) {
			sum += i;
		} 
		out.println("从1至"+ n +"的累加和是:"+sum);
	%>
</body>
</HTML>

3.效果:

JSP动作标记的简单应用   JSP动作标记的简单应用

4.总结

        在基本完成代码的情况下,运行一直报错:java.lang.NumberFormatException: For input string: "null",我想也许是因为在inputNum.js页面里,表单标签里的number还未输入,所以为空,于是手动将其设置了一个数,可以运行。但是通过查阅资料,才知道原来“并不是指传入的值为空,而是指传入的字符串为“null”,而“null”并不能被StringUtils.split()切割,进而不能被Integer.parseInt()调用,所以会报错。”。解决方法如下:只需要在上面的判断语句后面再加一个判断传入的参数是否不为“null”的条件即可

<% String num=request.getParameter("number");
	   if(null != num && !num.equals("")){
	%>      <jsp:include page="recall.jsp">
				<jsp:param name="num" value="<%=num%>"/>
			</jsp:include>
	<% } %>