大三上学期jsp实验
实验二 实验任务 1 编写JSP页面rect.jsp实现如下表单。输入数字显示长方形面积,输入非数字有提示。如下图所示。
2编写JSP页面实现如下用户登录页面。输入用户名”admin”密码”123”显示登录成功。否则显示用户名和密码不正确。没有输入用户名或者密码提示,不能为空。 提示:判断字符串s1和s2是否相等。 s1.equals(s2)==true
答案1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY> <P> 请输入矩形的长和宽: <FORM action="" method=post name=form> <P>请输入长方形的长:<INPUT type="text" name="a"> <P>请输入长方形的宽:<INPUT type="text" name="b"> <INPUT TYPE="submit" value="送出" name=submit> </FORM> <% String string_a=request.getParameter("a"), string_b=request.getParameter("b"); double a=0,b=0; %> <% if(string_a==null){ string_a="0"; tring_b="0"; } %> <% try { a=Double.valueOf(string_a).doubleValue();//把string_a转换给double b=Double.valueOf(string_b).doubleValue(); double mianji=a*b; out.print("<BR>"+"长方形面积:"+mianji); } catch(NumberFormatException e){ out.print("<BR>"+"请输入数字字符"); } %> </BODY></HTML>
答案2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY bgcolor="yellow"> <FONT size=4> <h1> 欢迎来到登录界面!</h1> <FORM action="" method=post name=form> <P>用户名:<INPUT type="text" name="a"> <P>密码:<INPUT type="password" name="b"> <p> <INPUT TYPE="submit" value="提交" name=submit> </FORM> <% String user=request.getParameter("a"); String password=request.getParameter("b"); %> <% if((user==null)||(password==null)) { user=""; password=""; } %> <% if(user.equals("")||password.equals("")||user.equals(" ")||password.equals(" ")) { out.println("用户名或密码不能为空 !"); } else { if(user.equals("admin")&&password.equals("123")) { out.print("登录成功!"); } else { out.print("用户名或者密码不正确,登录不成功! "); } } %> </FONT> </BODY></HTML>
实验四 实验内容: 1.编写一个Tag文件,Rect.tag文件负责计算和显示矩形面积,要求编写一个JSP页面one.jsp,要使用Tag标记加载Rect.tag传递矩形的长和宽,打印出结果。
2.编写一个Tag文件,Tixing.tag文件负责计算和显示梯形面积。要求编写一个JSP页面two.jsp,调用Tixing.tag传递梯形的上底、下底、高。
3.编写一个Tag文件,Sum.tag文件负责计算和显示1!,2!到 n!的和。要求编写一个JSP页面three.jsp, 加载Sum.tag时传递参数n的值。
答案1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Rect.tag: <%@ tag pageEncoding="gb2312" %> <%@ attribute name="length" required="true" %> <%@ attribute name="width" required="true" %> <P> 这是一个求矩形的面积tag文件 <% double l = Double.parseDouble(length); double w = Double.parseDouble(width); out.println("矩形面积为:"+l*w); %> </P> One.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib tagdir="/WEB-INF/tags" prefix="beijing" %> <HTML> <BODY BGCOLOR=yellow> <font size=8> <beijing:Rect length="10" width="5" /> </font> </BODY> </HTML>
答案2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Tixing.tag: <%@ tag pageEncoding="gb2312" %> <%@ attribute name="upper" required="true" %> <%@ attribute name="lower" required="true" %> <%@ attribute name="height" required="true" %> <P> 这是一个求梯形的面积tag文件 <% double u = Double.parseDouble(upper); double l = Double.parseDouble(lower); double h = Double.parseDouble(height); out.println("梯形面积为:"+(u+l)*h/2); %> </P> Two.jsp: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib tagdir="/WEB-INF/tags" prefix="beijing" %> <HTML> <BODY BGCOLOR=yellow> <font size=8> <beijing:Tixing upper="4" lower="5" height="2"/> </font> </BODY> </HTML>
答案3:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Sum.tag: <%@ tag pageEncoding="gb2312" %> <%@ attribute name="number" required="true" %> <P> 这是一个求1! - n!的和 <% int n = Integer.parseInt(number); int sum = 0; int val = 1; for(int i=1; i<n+1; i++) { val *= i; sum += val; } out.print("1! - n! 的和为:"+sum); %> </P> Three.jsp: <%@ tag pageEncoding="gb2312" %> <%@ attribute name="number" required="true" %> <P> 这是一个求1! - n!的和 <% int n = Integer.parseInt(number); int sum = 0; int val = 1; for(int i=1; i<n+1; i++) { val *= i; sum += val; } out.print("1! - n! 的和为:"+sum); %> </P>
实验五 实验内容:
1.编写一个Tag文件,Lader.tag文件负责计算梯形面积,返回Double型的结果result。要求编写一个JSP页面shiyan5.jsp,调用Lader.tag传递梯形的上底、下底、高。shiyan5.jsp显示返回的梯形面积。
2.编写book.jsp页面,显示表单输入图书信息, 提交后显示图书信息,要求提交的书名,出版社实现中文乱码处理。
答案1:
1 2 3 4 5 6 7 8 9 10 shiyan5.jsp: <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ taglib tagdir="/WEB-INF/tags" prefix="Mark" %> <html> <body BGCOLOR=yellow> <font size="8"></font> <Mark:leader height="5" lower="10" upper="8"></Mark:leader> leader的面积是:<%=result %> </body> </html>
1 2 3 4 5 6 7 8 9 10 11 leader.tag: <%@ tag pageEncoding="gb2312" %> <%@ attribute name="upper" required="true" type="java.lang.Double" %> <%@ attribute name="lower" required="true" type="java.lang.Double" %> <%@ attribute name="height" required="true" type="java.lang.Double" %> <%@ variable name-given="result" variable-class="java.lang.Double" scope="AT_END"%> <% double area = (upper+lower)*height/2; jspContext.setAttribute("result",new Double(area)); %>
答案2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <%@ page contentType="text/html;charset=GB2312" %> <html> <body> <form action="" method="post" name="form"> 输入书名:<INPUT type="text" name="bookname"><br/> 输入书号:<INPUT type="text" name="booknumber"><br/> 输入出版社:<INPUT type="text" name="bookplace"><br/> 输入价格:<INPUT type="text" name="bookprice"><br/> <INPUT TYPE="submit" value="提交" name="submit"> </form> <br/> 书名是: <% String name=request.getParameter("bookname"); if(name == null) name = "null"; byte b1[]=name.getBytes("ISO-8859-1"); name=new String(b1); %> <%=name%> <BR>书号是: <% String number=request.getParameter("booknumber"); if(number == null) number = "0"; byte b2[]=number.getBytes("ISO-8859-1"); number=new String(b2); %> <%=number%> <br/> 出版社是: <% String place=request.getParameter("bookplace"); if(place == null) place = "0.0"; byte b3[]=place.getBytes("ISO-8859-1"); place=new String(b3); %> <%=place%> <br/> 价格是: <% String price=request.getParameter("bookprice"); if(price == null) price = "0.0"; byte b4[]=price.getBytes("ISO-8859-1"); price=new String(b4); %> <%=price%> </body> </html>
实验九 1.编写Cubic长方体类,建立JSP页面cubic.jsp使用java bean 三个动作标记,实现输入长方体的三条边,点击提交显示结果如下图所示。参考书上的例题P212(三角形)Cubic.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Cubic.java package tom.jiafei; public class Cubic { private double length; private double width; private double height; private double area; //面积 private double cubic; //周长 public void setLength(double length) { this.length=length; } public double getLength() { return this.length; } public void setWidth(double width) { this.width=width; } public double getWidth() { return this.width; } public double getArea()//面积 { return 2*(length*width+length*height+width*height); } public double getCubic()//周长 { return height*length*width; } public void setHeight(double height) { this.height = height; } public double getHeight() { return height; } }
Cubic.jsp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="tom.jiafei.Cubic" %> <jsp:useBean id="r" class="tom.jiafei.Cubic" scope="page" /> <HTML><font size="6"><BODY > <FORM action="" Method="post"> <P>输入长方体的长:<Input type=text name="length" value=0></p> <P>输入长方体的宽:<Input type=text name="width" value=0></p> <P>输入长方体的高:<Input type=text name="height" value=0></p> <Input type=submit value="提交"></FORM> <jsp:setProperty name="r" property="*" /> 你输入的长是: <jsp:getProperty name="r" property="length" /><br/> 你输入的宽是: <jsp:getProperty name="r" property="width" /><br/> 你输入的高是: <jsp:getProperty name="r" property="height" /><br/> 长方体的面积是: <jsp:getProperty property="area" name="r"/><br/> 长方体的体积是: <jsp:getProperty property="cubic" name="r"/><br/> </FONT></BODY></HTML>
2.编写Book类,建立JSP页面book.jsp使用java bean 三个动作标记,实现输入图书信息,点击提交显示结果如下图所示。参考书上的例题P209页7-6。
Book.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 package tom.jiafei; public class Book { private String name; private String number; private double publish; private double price; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setNumber(String number) { this.number = number; } public String getNumber() { return number; } public void setPublish(double publish) { this.publish = publish; } public double getPublish() { return publish; } public void setPrice(double price) { this.price = price; } public double getPrice() { return price; } }
Book.jsp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="tom.jiafei.Book" %> <jsp:useBean id="r" class="tom.jiafei.Book" scope="page" /> <HTML><BODY > <FORM action="" Method="post"> <P>输入书名:<Input type=text name="name" ></p> <P>输入书号:<Input type=text name="number" ></p> <P>输入出版社:<Input type=text name="publish" ></p> <P>输入价格:<Input type=text name="price" ></p> <Input type=submit value="提交"></FORM> <jsp:setProperty name="r" property="*" /> 你输入的书名: <jsp:getProperty name="r" property="name" /><br/> 你输入的书号: <jsp:getProperty name="r" property="number" /><br/> 你输入的出版社: <jsp:getProperty name="r" property="publish" /><br/> 长方体的价格是: <jsp:getProperty property="price" name="r"/><br/> </BODY></HTML>
实验十 1.在mysql中建立数据库books,其中有表:bookinfo(图书表) 2.创建页面showbook.jsp,加载数据库驱动,在页面以表格形式,显示图书信息。(参考第6章例题-example6_1)代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.sql.*" %> <HTML><BODY bgcolor=cyan> <% Connection con;//连接 Statement sql; //sql ResultSet rs; //结果 try{ Class.forName("com.mysql.jdbc.Driver"); //加载驱动 } catch(Exception e){} try { String uri= "jdbc:mysql://127.0.0.1/warehouse"; String user="root"; String password="root"; con=DriverManager.getConnection(uri,user,password); //也可以写成con=DriverManager.getConnection(uri+"?user=root&password="); sql=con.createStatement();//创建sql对象 rs=sql.executeQuery("SELECT * FROM product "); out.print("<table border=2>"); out.print("<tr>"); out.print("<th width=100>"+"图书名"); out.print("<th width=100>"+"isbn"); out.print("<th width=50>"+"出版社"); out.print("<th width=50>"+"价格"); out.print("<th width=50>"+"版本号"); out.print("</TR>"); while(rs.next()){ out.print("<tr>"); out.print("<td >"+rs.getString(1)+"</td>"); out.print("<td >"+rs.getString(2)+"</td>"); out.print("<td >"+rs.getString("出版社")+"</td>"); out.print("<td >"+rs.getFloat("价格")+"</td>"); out.print("<td >"+rs.getInt("版本号")+"</td>"); out.print("</tr>") ; } out.print("</table>"); con.close();//关闭连接 } catch(SQLException e){ out.print(e); } %> </BODY></HTML>
实验三 实验任务: 1.编写两个JSP页面:main1.jsp和lader.jsp,将两个JSP页面保存在同一Web服务目录中,main1.jsp使用include动作标记动态加载lader.jsp。lader.jsp页面可以计算并显示梯形面积。当lader.jsp被加载时获取main1.jsp页面中include动作标记的param子标记提供的梯形的上底、下底和高。
2.编写两个JSP页面:main2.jsp和rect.jsp,将两个JSP页面保存在同一Web服务目录中,main2.jsp使用forward动作标记转向rect.jsp。rect.jsp页面可以计算并显示矩形面积。main2.jsp使用param子标记向rect.jsp页面提供矩形的长、宽。
代码call me (下同)
实验六 实验目的:
了解jsp中的内置对象request对象,掌握request对象的常用方法,掌握HTML表单的常用元素,了解response对象的作用,以及方法。能够编写表单处理不同元素的JSP页面。
实验任务:
1编写页面 Myrect.jsp 页面中有表单如图1所示。提交表单到get.jsp用表格形式显示结果。使用Rect.tag文件计算矩形面积,get.jsp传递长、宽参数给Rect.tag,之后Rect.tag返回面积结果给get.jsp,get.jsp在表格中显示面积如上图所示。(参考书上例example4_5.jsp)
2、编写页面zhuce.jsp 显示如下表单。其中专业:计算机系统结构,计算机应用,计算机网络。填写的密码由*号显示。(参考课堂练习2) 。结果页面是result.jsp 显示用户的注册信息。
实验七 1.使用session实现购物(输入用户名为yin,密码123 登录到shop.jsp页面)
shop.jsp:
account.jsp:
实验八 一、实验目的 掌握JavaBean的编写规范,掌握useBean,setProperty, getProperty等动作标记的使用。 二、实验任务 1.建立JavaBean Cubic长方体类。建立shiyan8_1.jsp页面使用useBean 等动作标记实现打印长方体的体积和面积。
2.建立JavaBean Book类,(属性:书名,书号,出版社,价格) 。建立shiyan8_2.jsp页面使用useBean 等动作标记实现打印图书信息。