实验三 JSP内置对象

  • 格式:doc
  • 大小:154.00 KB
  • 文档页数:8

实验三 JSP内置对象

一.实验目的

(1) 了解JSP中9个内置对象request、reponse、 out、 session、 application、 config、

pagecontext、 page、 exception的基本概念。

(2) 理解JSP内置对象的常用方法的功能。

(3) 掌握JSP内置对象的应用。

二. 主要仪器设备及环境

(1)PC机

(2)操作系统:WINDOWS XP

(3)软件:记事本, JDK、TOMCAT,IE

三. 实验内容与步骤

1.用JSP的内置对象request在前后台页面间传递表单数据;

用内置对象前后台页面间的参数传递

(1)客户端主界面experiment3_1.jsp,表单封装了三个参数:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%@ page contentType="text/html;charset=GBK"%>

这是第一个JSP

大家好!恭喜你的第一个JSP

第一个数:

第二个数:

第三个数:

(2) 第一个后台响应experiment3_2.jsp,用request对象提取前台传过来的参数,验证输入的数据a、b、c分别是西文、数字、中文:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%!String s1,s2,s3;%>

<% s1=request.getParameter("a");

s2=request.getParameter("b"); s3=request.getParameter("c");

%>

This is experiment3_2.jsp page

前台传过来的a=<%=s1%>

前台传过来的b=<%=s2%>

前台传过来的c=<%=s3%>

a+b+c=<%=s1+s2+s3%>

返回

思考

 请检查结果都正确吗?尤其注意传输中文字符时是否为乱码?如果出现乱码,如何修改代码?

可用书上介绍的方法,也可request.setCharacterEncoding("GBK");

答:没有出现乱码,只是experiment3_2.jsp的计算为字符串

 s1+s2+s3是什么运算?

答:字符串运算

(3)第二个响应界面experiment3_3.jsp,用request对象提取前台传过来的参数,进行运算后将其结果显示给客户端:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%!int x,y,z;%>

<%x=Integer.valueOf(request.getParameter("a")).intValue();

y=Integer.valueOf(request.getParameter("b")).intValue();

z=Integer.valueOf(request.getParameter("c")).intValue();

%>

从Experiment3_1.jsp传过来的参数求得体积:

用request:<%=x*y*z%>

返回

思考

 修改Experiment3_1.jsp什么地方才能响应experiment3_3.jsp?

答:在action那里修改,如下图所示:

为什么三个数据都用Integer.valueOf(request.getParameter("a")).intValue();语句处理?

答:因为三个数据都要转换成整数

 请在前台输入含有非数字字符数据,你看到什么结果?为什么?

答:会出现一下图的结果,因为强制转换为数字类型,不能为字符型进行计算。

2.购物车

使用session对象模拟购物车

(1)写一个experiment3_4.jsp文件,用表单输入用户姓名。如下图:

代码:

<%@ page language="java" contentType="text/html; charset=GBK"

pageEncoding="GBK"%>

<%

String path = request.getContextPath();

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%session.invalidate();%> <%--销毁所有session对象--%>

"/TR/html4/loose.dtd">

用户登录

action="expriment3_5.jsp">

欢迎来到本页面,请输入你的姓名

(2)另写experiment3_5.jsp,用表单让用户选择书籍。如下图

代码:

<%@ page language="java" contentType="text/html; charset=GBK"

pageEncoding="GBK"%>

<%

String path = request.getContextPath();

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

"/TR/html4/loose.dtd">

购物车

<%

request.setCharacterEncoding("gb2312");

String name = request.getParameter("name");

if(name != null) {

session.setAttribute("sessionname",name);

out.println(name+",欢迎您的进入!");

}

%>

点击超链接,连接到main.jsp的页面,去修改姓名。

href="experiment3_4.jsp">欢迎去main.jsp!

请选择你要购买的书籍:

Java教程

数据库原理

操作系统

C语言教程

去结账: 欢迎去count.jsp!

(3)最后写experiment3_6.jsp显示用户名和选择的书籍。如下图

代码:

<%@ page language="java" contentType="text/html; charset=GBK"

pageEncoding="GBK"%>

"/TR/html4/loose.dtd">