JavaWeb学习笔记(四)—— JSP内置对象、JSP程序示例

一、JSP内置对象

 感觉以后用不太到,就粗略地了解一下,内置对象主要有:

1.request对象:用户在页面提交的信息,在提交的那一刻封装成request对象的成员变量。通过request的成员函数getParameter( )去接收。(看下面的例子

2.response对象

3.session对象:记录客户端之前的连接信息

4.application对象尽量不用

二、JSP程序示例

给出一个例子,页面是这样的

这个页面的功能由一个HTML文件和一个jsp文件组成,HTML文件如下,而跳转到的ex3.jsp文件稍后会贴出。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
        <style type="text/css">
			#container{
				margin-top: 50px;
				margin-left: auto;
				margin-right: auto;
				width: 1500px;
				text-align: center;
			}
		</style>
		<title>homework_3</title>
	</head>
	<body >
		<div id="container">
			<!-- ---------------------第1个表单------------------------- -->
		<form action="ex3.jsp" method="get" name="form"  >
			<fieldset >
				<legend>三角形</legend>
			<label>请输入第一条边边长(单位:米):
				<input type="text" name="sideA" />
			</label><br />
			<label>
				请输入第二条边边长(单位:米):
				<input type="text" name="sideB" />
			</label><br />
			<label>
				请输入第三条边边长(单位:米):
				<input type="text" name="sideC" />
			</label><br /><br />
			<input type="submit" value="计算三角形周长" name="submit"/>&emsp;&emsp;&emsp;
			<input type="submit" value="计算三角形面积" name="submit"/>
			</fieldset>
		</form><br><br>
		
		<!-- ------------------------第2个表单----------------------- -->
		<form action="ex3.jsp" method="get" name="form" >
			<fieldset>
				<legend>圆形</legend>
			<label>请输入圆形的半径(单位:米):
				<input type="text" name="r" />
			</label><br /><br/>
			<input type="submit" value="计算圆形周长" name="submit"/>&emsp;&emsp;&emsp;
			<input type="submit" value="计算圆形面积" name="submit"/>
			</fieldset>
		</form><br><br>
		
		<!----------------------------第3个表单---------------------- -->
		<form action="ex3.jsp" method="get" name="form">
			<fieldset>
				<legend>长方形</legend>
			<label>请输入长方形的长(单位:米):
				<input type="text" name="length" />
			</label><br/>
			<label>请输入长方形的宽(单位:米):
				<input type="text" name="width" />
			</label><br/><br/>

			<input type="submit" value="计算长方形周长" name="submit"/>&emsp;&emsp;&emsp;
			<input type="submit" value="计算长方形面积" name="submit"/>
			</fieldset>
		</form>

         </div>
	</body>
</html>

ex3.jsp文件如下。写的比较简单,除了利用jsp内置对象外,就是纯纯的Java代码。先看实现的效果吧(注意要开Tomcat)。

(1)输入了三角形的三个边以后,点击“计算三角形面积”

 (2)跳转到jsp页面,返回给客户端结果

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>

	<head>
		<title> 计算结果</title>
        <style type="text/css">
				
			body{
				text-align: center;
			}
		</style>
	</head>


	<body >
		<%        
              class Triangle{
		     public double sideA;
			 public double sideB;
			 public double sideC;
			 public double area;
			 public double length;
			 public double getLength(){
			 return sideA+sideB+sideC;
			 }
		 
			 public double getArea(){
				 double tem;
				 tem=(sideA+sideB+sideC)/2;
				 return Math.sqrt(tem*(tem-sideA)*(tem-sideB)*(tem-sideC));		 
			 }
		 }
         class Circle{
    	 public double r;
    	 public void setR(double rr){
    		 r=rr;
    	 }
    	 public double getLength(){
			 return 2*3.14*r;
			 }
			 public double getArea(){
				 return 3.14*r*r;
            }
     }
	 class Rectangle{
		 public double length;
		 public double width;
		 public double getLength(){
			 return 2*(length+width);
		 }
		 public double getArea(){
			 return length*width;
		 }
	 }
		 %>
		<%
         String submit=request.getParameter("submit");
	     //byte b[]=submit.getBytes("ISO-8859-1");
		 //submit=new String(b);
		
        %>
		<%
		   if("计算三角形周长".equals(submit)||"计算三角形面积".equals(submit)){
			Triangle tri=new Triangle();
			String sideA=request.getParameter("sideA");
			String sideB=request.getParameter("sideB");
			String sideC=request.getParameter("sideC");  	
			//从前一个页面接收字符串
		     if(sideA==null)
		        { sideA="";   }
		     if(sideB==null)
		        { sideB="";   }
		     if(sideC==null)
		        { sideC="";   }
		     //防止接收到null
		     try{ tri.sideA=Double.parseDouble(sideA);
		          tri.sideB=Double.parseDouble(sideB);
		          tri.sideC=Double.parseDouble(sideC);
	            if(tri.sideA>=0 && tri.sideB>=0 && tri.sideC>=0)
	             {  if("计算三角形周长".equals(submit)){
	           
					out.print("sideA:"+tri.sideA+"米"+"<BR>");
					out.print("sideB:"+tri.sideB+"米"+"<BR>");
					out.print("sideC:"+tri.sideC+"米"+"<BR>");
	                out.print("<BR>"+"三角形的周长为"+ tri.getLength()+"米");
	                }
	             else if("计算三角形面积".equals(submit)){
					 out.print("sideA:"+tri.sideA+"米"+"<BR>");
					 out.print("sideB:"+tri.sideB+"米"+"<BR>");
					 out.print("sideC:"+tri.sideC+"米"+"<BR>");
	                out.print("<BR>"+"三角形的面积为"+tri.getArea()+"平方米");	      
	                 } 
	             }
	            else
	             {  out.print("<BR>"+"请输入正数");   }
	           }
	     catch(NumberFormatException e)
	        {  out.print("<BR>"+"请输入数字字符");    }
		   }
		 
		 %>
		<%
		 if("计算圆形周长".equals(submit)||"计算圆形面积".equals(submit)){
			   //如果点击了第2个表单的按钮
		    Circle circle=new Circle();
		    String r=request.getParameter("r");
		    if(r==null)
		    {r="";}
		    try{
		    	circle.r=Double.parseDouble(r);
		    	if(circle.r>=0)
	             {  if("计算圆形周长".equals(submit)){
					 out.print("圆形的半径:"+circle.r+"<BR>");
	                out.print("<BR>"+"圆形的周长为"+circle.getLength()+"米");
	                }
	             else{	    
					 out.print("圆形的半径:"+circle.r+"<BR>");
	                out.print("<BR>"+"圆形的面积为"+circle.getArea()+"平方米");	      
	                 } 
	             }
	            else
	             {  out.print("<BR>"+"请输入正数");   }	           
		    }
		    catch(NumberFormatException e)
		    {out.print("<BR>"+"请输入数字字符");}
		 }
		 %>
		 
		 <%
		 		 if("计算长方形周长".equals(submit)||"计算长方形面积".equals(submit)){
		 			   //如果点击了第3个表单的按钮
		 		    Rectangle rec=new Rectangle();
		 		    String length=request.getParameter("length");
		 		    String width=request.getParameter("width");
		 		    if(length==null)
		 		    {length="";}
		 		    if(width==null)
		 		    {width="";}
		 		    try{
		 		    	rec.length=Double.parseDouble(length);
		 		    	rec.width=Double.parseDouble(width);
		 		    	if(rec.length>=0 && rec.width>=0)
		 	             {  if("计算长方形周长".equals(submit)){	
		 	                out.print("<BR>"+"长方形的周长为"+rec.getLength()+"米");
		 	                }
		 	             else{	                
		 	                out.print("<BR>"+"长方形的面积为"+rec.getArea()+"平方米");	      
		 	                 } 
		 	             }
		 	            else
		 	             {  out.print("<BR>"+"请输入正数");   }	           
		 		    }
		 		    catch(NumberFormatException e)
		 		    {out.print("<BR>"+"请输入数字字符");}
		 		 }
		 		 %>
	</body>
</html>

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值