大三上学期jsp实验

实验二

实验任务
1 编写JSP页面rect.jsp实现如下表单。输入数字显示长方形面积,输入非数字有提示。如下图所示。

2编写JSP页面实现如下用户登录页面。输入用户名”admin”密码”123”显示登录成功。否则显示用户名和密码不正确。没有输入用户名或者密码提示,不能为空。
提示:判断字符串s1和s2是否相等。 s1.equals(s2)==true

rect
login

答案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页面,显示表单输入图书信息, 提交后显示图书信息,要求提交的书名,出版社实现中文乱码处理。

book

答案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 等动作标记实现打印图书信息。