jsp页面基本结构、动作标记、指令标记

一、实验目的

2_1本实验的目的是掌握怎样在JSP页面中使用成员变量,怎样使用Java程序片和Java表达式。
2_2 本实验的目的是掌握怎样在JSP页面中使用include指令在JSP页面中静态插人一个文件的内容。
2_3本实验的目的是掌握怎样在JSP页面中使用include标记动态加载文件;使用forward动作标记实现页面的转向。

二、实验步骤

实验2_1:编写两个JSP页面,名字分别为input.jsp和people.jsp.
input.jsp的具体要求:该页面有一一个表单,用户通过该表单输人自己的姓名并提交给people.jsp页面。
people.jsp的具体要求:
(1)JSP页面有名字为personList,类型是StringBuffer以及名字是count,类型为int的成员变量。
(2)JSP页面有publicvoidjudge()方法,该方法负责创建personList对象,当count的值是0时,judge ()方法创建personList对象。
(3) JSP页面有public void addPerson(String p)的方法,该方法将参数p指定的字符串尾加到成员变量personList,同时将count作自增运算。
(4)JSP页面在程序片中获取input.jsp页面提交的姓名,然后调用judge()创建personList对象,调用addPerson方法将用户的姓名尾加到成员变量personList。
(5)如果input.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用jsp:forwardpages"要转向的页面"/标记将用户转到input.jsp页面。
(6)通过Java表达式输出personList和count的值。

**实验2_2:**编写一个JSP页面includeHello.jsp,使用include指令在JSP页面中静态插入hello.txt的内容。要求用“记事本”编写一个txt文件hello. txt。 hello. txt的每行有若千个英文单词,这些单词之间用空格分隔,每行之间用“<
”分隔,如下:
hello. txt
bird apple boy red moon


shop throw ball book welcome
includeHello.jsp使用page指令设置contentType属性的值为" text/plain",使用include指令静态插人hello.txt文件。
**实验2_3:**编写4个JSP页面: one.jsp. two.jsp、three.jsp和error.jsp。 one.jsp、two.jsp和three.jsp页面都含有一个导航条,以便让用户方便地单击超链接访问这三个页面。要求这三个页面通过使用include动作标记动态加载导航条文件head.txt。导航条文件head.txt的内容如下:
head. txt
<%@ page contentType = “text/html;charset = gb2312” %>






one.jsp页面two.jsp页面three.jsp页面

one.jsp的具体要求: 要求one.jsp页面有一个表单,用户使用该表单可以输人一个1~100之间的整数,并提交给本页面;如果输人的整数在50~100之间(不包括50)就转向three.jsp;如果在1~50之间(包括50)就转向two.jsp;如果输人不符合要求的整数,比如120,就转向error,jsp。要求forward标记在实现页面转向时,使用param子标记将整数传递到转向的two.jsp或three.jsp页面,将有关输人错误的信息传递到转向的error.jsp页面。 two.jsp、three.jsp和error.jsp的具体要求: 要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示--幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。error页面能显示有关错误信息和一.幅警告出错的图像。 # 三、参考代码

实验2_1参考代码:
Input.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>
  <body bgcolor = cyan><FONT size = 3>
    <form action="people.jsp" method=get name =form>
    	请输入姓名:<input type="text" name="name">
    	<br><input type="submit" value="送出" name = submit>
    </form>
  </body>
</html>

People.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>
  
    <body bdcolor = yellow><font Size = 3>
    我的 JSP page <br>
    <%! int count;
    	StringBuffer personList;    	
    	public void judge(){
    		if(count==0){
    			personList=new StringBuffer();
    		}
    	}
    	public void addPerson(String p){
    		if(count==0){
    			personList.append(p);
    		}else{
    			personList.append(","+p);
    		}
    		count++;
    	}
    %>
    <% 	
    	String name=request.getParameter("name");
    	
    	if(name==null||name.length()==0||name.length()>10){
    		%><jsp:forward page="input.jsp"/><%
    	}
    	judge();
    	addPerson(name);
    	
     %>
     <br> 目前共有<%= count %>人浏览量该页面,他们的名字是:
     <br> <%= personList %>
     </font>
  </body>
</html>

实验2_2参考代码:
includehello.jsp

<%@ page language="java"  contentType="text/plain; 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><body><font size=4 color=blue>
	<%@include file="hello.txt" %>
</font></body></html>

实验2_3参考代码:
one.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">
<head>
	<jsp:include page = "head.txt"/>
</head>
<html>

<body bgcolor = yellow>
	<form action = "" method = get name = form>
	请输入1-100之间的整数:<input type = "text" name ="number">
	<br> <input type = "submit" value ="送出" name ="submit" >
	</form>
<%String num = request.getParameter("number");
	if(num == null)
		num= "0" ;
	try{ int n= Integer.parseInt(num);
	if(n>=1&&n<=50){
%>		<jsp:forward page= "two.jsp">
			<jsp:param name = "number" value= "<%= n %>"/>
		</jsp:forward>

<% }

	else if(n>50&n<=100){

%>		<jsp:forward page = "three.jsp" >
			<jsp:param name = "number" value= "<%= n %>"/>
		</jsp:forward >
<% }

	else if(n> 100){
%>		<jsp:forward page = "error.jsp" >
			<jsp:param name = "number" value= "<%= n %>"/>
		</jsp:forward >
<% 		}
	}
	catch(Exception e){
	%>	<jsp:forward page = "error.jsp" >
			<jsp:param value="<%= e.toString()%>" name="mess"/>
		</jsp:forward >
		
<% }
%>
</body>
</html>

two.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">

<head>
	<jsp:include page = "head.txt"/>
</head>
<html>
<body bgcolor = yellow>
	<p><font size = 2 color = blue>This is two.jsp</font>
	<font size=3>
	 <% String s = request.getParameter("number");
	 	out.println("<BR> 纯递过来的值是"+ s);
	 %>
	 <BR><img src = "a.jpg" with = "<%= s %>" height = "<%= s%>"></img>
	</font>

</body>
</html>

three.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">

<head>
	<jsp:include page = "head.txt"/>
</head>
<html>
<body bgcolor = yellow>
	<p><font size = 2 color=red>This is three.jsp</font>
	 <font size = 3>
	 <% String s =request.getParameter("number");
	 	out.println("<BR> 传递过来的值是"+s);
	 %>
	<BR><img src = "a.jpg" width = "<%= s %>" height = "<%= s%>"></img>
	</font>
	

</body>
</html>

error.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">

<head>
	<jsp:include page = "head.txt"/>
</head>
<html>
<body bgcolor = yellow>
 <p><font size =5 color = red>This is error.jsp</font>
  <font size=2>
  <% String s = request.getParameter("mess");
  	out.println("<BR>传递过来的错误信息"+s);
  %>
 <BR><img src = "back.jpg" width = "120" height = "120"></img>
	</font>

</body>
</html>

四、实验结果
实验2_1结果截图:
在这里插入图片描述
在这里插入图片描述
(汉字乱码问题还不知怎么解决,有知道的欢迎告知,不胜感激)

实验2_2结果截图:
在这里插入图片描述

实验2_3结果截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、讨论

1.一个JSP页面可由普通的HTML标记、JSP标记、成员变量和方法的声明、Java程序片和Java表达式组成。JSP引擎把JSP页面中的HTML标记交给用户的浏览器执行显示,负责处理JSP标记、变量和方法,同时负责运行Java程序片、计算Java表达式,并将需要显示的结果发送给用户的浏览器。
2.JSP页面中的成员变量是被所有用户共享的变量。Java程序片可以操作成员变量,任何–个用户对JSP页面成员变量操作的结果,都会影响其他用户。
3.如果多个用户访问一个JSP页面,那么该页面中的Java程序片就会被执行多次,分别运行在不同的线程中,即运行在不同的时间片内。运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其.他用户的Java程序片中的局部变量。
4.page指令用来定义整个JSP页面的一些属性和这些属性的值。比较常用的两个属性是contentType和import。page 指令只能为contentType指定一个值,但可以为import属性指定多个值。
5.include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,其优点是页面的执行速度快;而include动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面,其优点是可以使用param子标记更灵活地处理所需要的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰履踏青云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值