实验二 JSP应用开发基础---掌握JSP基本语法
实验二 JSP应用开发基础
掌握JSP基本语法。
脚本元素()
(1)隐藏注释( )
(2)声明()
(3)脚本段()
(4)表达式()
指令元素()
(1)
(2)
动作元素()
(1)jsp:
(2)jsp:
(3)jsp:param
(4)jsp:
(5)jsp:
(6)jsp:
掌握JSP常用的9种内置对象中的、、out、、
对象的基本使用方法。
2实验内容:(代码只粘贴核心代码,每个程序不超过1页,运行结果请截图)
1、编写一个JSP程序,计算1!+2!+3!+4!+5!,并显示出结果。要求先声明计算阶乘的方法,再调用该方法,最后在页面上输出结果。
进阶要求,通过表单提交一个正整数,然后计算它的阶乘和。例如:输入3,就计算1!+2!+3!。
代码:
<%@ page contentType="text/html; charset=GBK"%>
<!DOCTYPE html>
<html>
<head>
<title>求阶乘和!</title>
</head>
<body bgcolor=grey>
<h3>请输入1至100之间的整数:</h3>
<form action="index.jsp" method="get" name="form">
<input type="text" name="number">
<input type="submit" name="submit" value="提交">
</form>
<%!int sss(int i)
{if(i==1){return 1;}return i*sss(i-1);
}int ss(int i)
{if(i==1){return 1;}return sss(i)+ss(i-1);
}
int s(int i)
{return i;
}
%>
<%
String str=request.getParameter("number");
if(str !=null){try{int num;num= Integer.parseInt(str);
%>
<h2><p>你输入n的数值:<cite><%=s(num)%></cite></p></h2>
<h1><p>阶乘之和的结果:<cite><%=ss(num)%></cite></p></h1>
<% }catch(NumberFormatException e){e.printStackTrace();}
}
%>
</body>
</html>
运行结果:
2、在JSP页面中静态包含文件。要求程序包含两个文件,主文件静态包含一个能够计算1到1000内的完数的页面。(如果一个正整数刚好等于它的真因子之和,这样的正整数为完数, 例如,6=1+2+3,因此6就是一个完数。)
代码:
1.html文件
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>这个是静态的!</title>
</head>
<body bgcolor=salmon>
<a href="1.jsp"%></a>
<br><cite>请输入1至1000之间的整数:</cite><br><br>
<form action="1.jsp" method="get" name="form"><input type="text" name="number"><input type="submit" name="submit" value="提交">
</form>
</body>
</html>
1.jsp文件
<%@ page contentType="text/html; charset=GBK"%>
<!DOCTYPE html>
<html>
<head><title>求完数!!!</title>
</head>
<body bgcolor=peru>
<p>请输入1至1000之间的整数:
<form action="1.jsp" method="get" name="form"><input type="text" name="number"><input type="submit" name="submit" value="提交">
</form>
<%!int sss(int i)
{int s=0;for(int j=1;j<i;j++)if(i%j==0)s=s+j;if(s==i)return 1;if(s!=i)return 0;return 2;
}int s(int i){if(i>0&&i<1000)return 1;elsereturn 0;}
%>
<%String str=request.getParameter("number");if(str !=null){try{int num;int ww;ww=0;num= Integer.parseInt(str);if(s(num)==1){ %>
<h3>你输入的数:<cite><%out.println(num);%></cite>在[1,1000]的范围里面!</h3>
<% }
else{ %>
<h2>你输入的数:<%out.println(num);%>不在[1,1000]的范围里面!</h2>
<% }
%>
<p> </p>
<%if(sss(num)==1){
%>
<h1>很幸运!!!这个数是完数!</h1>
<%
}
else{
%>
<h1>十分抱歉,这个数不是完数!</h1>
<%}
}
catch(NumberFormatException e){e.printStackTrace();out.println("12345");
}
}
%>
</body>
</html>
运行结果:
3、动态包含页面并传递数据。要求程序包含两个文件,主文件加载次文件,并将随机产生的50~100之间的数据传递给它,并且在页面上显示两个信息:该数据和这个数据的平方根。
进阶要求,把动态包含改为动态重定向,比较两者之间的区别。
代码:
3-1.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<html>
<head><title>随机数以及平方根</title>
</head>
<body >
<%@ page import="java.util.Random"%>
<%Random rand = new Random();double type = rand.nextInt(50)+50;
%>
<p>
<h3>主页面生成的随机数是:<%out.println(type);
%></h3><jsp:include page="3-2.jsp" flush="true"><jsp:param name="type" value="<%=type%>"/>
</jsp:include>
<%double num;String str=request.getParameter("type");if(str !=null)try{
%>
<%}catch(NumberFormatException e){e.printStackTrace();}
%>
<p>
</body>
</html>
3-2.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>here</title>
</head>
<p><%
double num;num=0;
String s=request.getParameter("type");
num=Double.parseDouble(s);
if(s !=null)try{%>
<p>
<h2>传过来的随机数是:<%out.println(""+s+"");%></h2>
<%}catch(NumberFormatException e){e.printStackTrace();}
%>
<body>
<h1><p><%=num%>的平方根是:<%=Math.sqrt(num) %><br>上面这个是被调用的界面</p></h1>
</body>
</html>
运行结果:
4、本题包括4个JSP程序,one.jsp、two.jsp、three.jsp、error.jsp。
one.jsp具体要求如下:
要求one.jsp页面有一个表单,用户使用该表单可以输入一个1至100之间的整数,并提交给下一个页面;如果输入的整数在50至100之间(不包括50)就转向three.jsp,如果在1至50之间就转向two.jsp;如果输入不符合要求就转向error.jsp。要求标记在实现页面转向时,使用param子标记将整数传递到转向的two.jsp或three.jsp页面,将有关输入错误传递到转向的error.jsp页面
two.jsp、three.jsp和error.jsp的具体要求如下:
要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示一幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。error页面能显示有关抛出的错误信息。(程序中使用的图片,可自行准备)。
代码:
One.jsp
<%@ page contentType="text/html; charset=GBK"%>
<!DOCTYPE html>
<html>
<head><title>4个网页</title>
</head>
<body>
<p>请输入1至100之间的整数:
<form action="one.jsp" method="get" name="form"><input type="text" name="number"><input type="submit" name="submit" value="提交">
</form>
<%String str=request.getParameter("number");if(str !=null){try{int num;num = Integer.parseInt(str);if(num>=1&&num<=50){
%>
<jsp:forward page="two.jsp"><jsp:param name="str" value="<%=num %>"/>
</jsp:forward>
<%}
else if(num>50&&num<=100)
{
%><jsp:forward page="three.jsp"><jsp:param name="str" value="<%=num %>"/>
</jsp:forward>
<% }
else if(num>100||num<=0)
{
%><jsp:forward page="error.jsp"><jsp:param name="str" value="<%=num %>"/>
</jsp:forward>
<% }
}
catch(Exception e)
{
%><jsp:forward page="error.jsp"><jsp:param name="mess" value="<%=e.toString()%>"/>
</jsp:forward>
<% }
}
%>
</body>
</html>
Two…jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title>
</head>
<body >
<%String s=request.getParameter("number");
%>
<h1>传递过来的数值:<cite><%out.println(s);%></cite></h1>
<h3>图片大小就是:<cite><%out.println(s);%></cite></h3>
<div><img src="./images/裴秀智1.jpg" width="<%=s%>" height="<%=s%>"></div></body>
</html>
Three.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title>
</head>
<body >
<%String s=request.getParameter("number");
%>
<h1>传递过来的数值:<cite><%out.println(s);%></cite></h1>
<h3>图片大小就是:<cite><%out.println(s);%></cite></h3><img src="./images/gir3.jpg" width="<%=s%>" height="<%=s%>"></body>
</html>
Error.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body bgcolor=red>
<%
String s=request.getParameter("number");
%>
<h3>您的输入: <cite><%out.println(s);%></cite></h3>
<br>
<h1>该输入不符合要求!请输入1~1000之间的数值</h1>
<br><img src="C:\Users\HWP\Desktop\2\err.jpg" width="<%=s%>" height="<%=s%>"</img></body>
</html>
运行结果:
3小结
通过该次实验,有助于我(有几项填几项,不要空白),在编写程序中遇到的主要问题及解决方法是什么?
1、img的src地址要用相对地址,不要用绝对地址,不然会显示不出来图片
2、在idea下编辑代码ctrl s保存后,在浏览器ctrl r可以实时刷新