jsp实验指导书.docx
- 文档编号:11640019
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:28
- 大小:284.68KB
jsp实验指导书.docx
《jsp实验指导书.docx》由会员分享,可在线阅读,更多相关《jsp实验指导书.docx(28页珍藏版)》请在冰豆网上搜索。
jsp实验指导书
JSP实验指导书
授课教师:
王琳琳
信息科学与工程学院
实验一JSP实验环境组建与简单JSP应用
实验目的:
熟悉JSP开发环境,使用开发环境进行JSP程序开发。
实验要求:
安装JDK,Tomcat,MyEclipse/Eclipse,并建立一个简单Web应用且发布测试。
实验步骤:
1.安装JDK;
2.安装Tomcat;
3.安装MyEclipse或Eclipse;
4.建立一个Web应用,在index.jsp中显示“您好,这是我的第一个JSP站点。
”;
发布测试。
index.jsp页面代码:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
您好,这是我的第一个JSP站点。
实验二JSP语法的应用
实验目的:
掌握jsp基本语法。
掌握JSP中page标签的使用。
掌握JSP中forward动作标签的使用。
掌握jsp中include动作标签的使用。
实验要求:
编写三个JSP页面:
main.jsp、circle.jsp和ladder.jsp,将三个JSP页面保存在同一Web服务目录中。
main.jsp使用include动作标记加载circle.jsp和ladder.jsp页面。
circle.jsp页面可以计算并显示圆的面积,ladder.jsp可以计算并显示梯形的面积。
当circle.jsp和ladder.jsp被加载时获取main.jsp页面include动作标记的param子标记提供的圆的半径以及梯形的上底、下底和高的值。
实验步骤:
1.编写main.jsp
加载circle.jsp页面代码如下:
请同学们编写加载梯形的代码,并传递参数。
2.编写circle.jsp
核心代码如下:
3.编写ladder.jsp
请同学们根据题目要求编写该页面
4.测试页面
结果如图所示:
5.思考
如何能够将圆的半径和梯形的个边实现动态输入?
实验三request内置对象的应用
实验目的:
1.掌握form表单提交信息;
2.掌握request对象的方法;
3.掌握在jsp页面声明、使用方法;
实验要求:
编写三个jsp页面:
login.jsp、dologin.jsp和success.jsp,将三个jsp页面保存在同一目录下。
login.jsp页面结构如下:
dologin.jsp校验login.jsp页面的输入内容并进行页面跳转,内容如下:
1)当用户不输入用户名和密码,直接点击“登录”时,跳回login.jsp页面。
2)当用户只输入用户名或者只输入密码,就点击“登录”时,跳回login.jsp页面,并且将用户刚才输入的用户名或密码显示在对应的位置。
3)当用户完整输入用户名和密码,点击“登录”时,跳转到success.jsp,并在该页面显示用户名,以及该用户是第几个用户。
实验步骤:
1.设计login.jsp
2.编写dologin.jsp
3.编写success.jsp
4.测试页面
5.思考
用户访问次数的记录特点,何时重新计数?
实验四猜数字游戏
实验目的:
1.掌握session对象的使用
实验要求:
实现猜数字的小游戏。
当客户访问服务器上的getNumber.jsp时,随机分配给客户一个1~100之间的整数,然后将这个整数存在客户的session对象中。
客户在表单里输入一个整数,来猜测分配给自己的那个整数。
客户输入一个整数后,提交给result.jsp,该页面负责判断这个整数是否和客户session对象中存在的那个整数相同,如果相同就连接到success.jsp;如果不相同就连接到large.jsp或small.jsp,然后,客户在这些页面再重新提交整数result.jsp,效果如下图所示:
实验步骤:
1.getNumber.jsp
2.Result.jsp
3.large.jsp
4.small.jsp
success.jsp
实验五Javabean的应用
实验目的:
掌握利用Javabean组件实现JSP的基本应用;掌握jspSmartUpload提供的API。
实验要求:
(编写一个JSP页面,该页面提供一个表单,用户通过表单输入正方形的边长后提交给本页面,JSP页面将计算正方形面积和周长的任务交给一个JavaBean去完成,并将计算结果在另外一个JSP页面中显示出来。
实验步骤:
1.创建名称为Square.java的JavaBean文件,代码如下:
packagesquare;
publicclassSquare{
privateintside=1;//定义私有变量side表示正方形的边长
publicSquare(){//无参的构造函数
}
publicintgetSide(){
returnside;//返回变量side的值
}
publicvoidsetRadius(intnewSide){
side=newSide;//给变量side赋值
}
publicdoublesquareLength(){
returnside*4.0;//计算正方形的周长
}
publicdoublesquareArea(){
returnside*side;//计算正方形的面积
}
}
2.创建名称为sideInput.jsp的页面文件,该页面文件的代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"%>
请输入圆的半径:
3.创建名称为square.jsp的页面文件,该页面文件的代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"%>
useBeanid="squareBean"scope="session"class="square.Square"/> <% intside=Integer.parseInt(request.getParameter("side")); squareBean.setSide(side); out.println("正方形的边长为: "+squareBean.getSide()); out.println(" out.println("正方形的周长为: "+squareBean.squareLength()); out.println(" out.println("正方形的面积为: "+squareBean.squareArea()); %> 4.程序执行过程如图所示: 实验六Servlet的应用 实验目的: 熟悉Servlet接口及其中规定的方法和意义;掌握Servlet编写、部署和运行。 实验要求: 当请求Servlet时,出现一个包含文本框、密码框和提交按钮的界面,当输入用户名和密码,单击【登录】按钮后,将用户的信息放入HttpSession中,并输出欢迎当前用户登录的信息。 实验步骤: 1.创建一个Web工程,名称为login。 2.在工程的sunyang包下创建一个Servlet类LoginServlet.java,该类用来输出登录页面和欢迎用户登录的信息。 类LoginServlet的代码如下: importjava.io.IOException; importjava.io.PrintWriter; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjavax.servlet.http.HttpSession; publicclassLoginServletextendsHttpServlet{ protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ this.doPost(req,resp); } protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ resp.setCharacterEncoding("GBK");//设置响应的编码类型为GBK PrintWriterout=resp.getWriter();//获取输出对象 out.println(""); out.println("
");
");
out.println("
out.println("");
out.println("
");HttpSessionsession=req.getSession();//获取HttpSession实例
BooleanisLogin=(Boolean)session.getAttribute("isLogin");
if(isLogin==null){
isLogin=false;
}
Stringname=req.getParameter("username");//获取表单上的用户名
Stringpassword=req.getParameter("password");//获取表单上的密码
if(isLogin==true){
name=(String)session.getAttribute("name");
out.println("
欢迎"+name+"登录
}elseif(name!
=null&&password!
=null){
session.setAttribute("name",name);//把用户名保存在HttpSession中
session.setAttribute("password",password);//把密码保存在HttpSession中
//把判断用户是否登录的字段保存在HttpSession中
session.setAttribute("isLogin",true);
out.println("
欢迎"+name+"登录
}else{
out.println("
用户登录
");out.println("
out.println("用户名:
out.println("
");
out.println("密码:
out.println("
");
out.println("
out.println("
out.println("");
}
out.println("");
out.println("");
}
}
3.在web.xml中配置LoginServlet,配置的代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
xmlns=" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" --配置Servlet--> --配置Servlet映射路径--> 4.发布并运行程序,如下图所示: 输入用户名和密码,单击【登录】按钮,出现如下图所示的界面: 实验七JSP访问数据库的应用 实验目的: 掌握JSP+Servlet+JavaBean架构连接、查询、删除数据库的方法; 实验要求: 采用JSP+Servlet+JavaBean架构,设计通过下列JSP页面访问数据库(如表5-1),具体要求如下: 1.添加用户页面(AddUser.jsp),如图7-1所示; 2.删除用户页面(Delete.jsp),如图7-1所示; 3.查找和修改用户页面(SearchAndModify.jsp),如图7-3所示。 图7-1添加用户页面 图7-2删除用户页面 图7-3查询和修改用户页面 实验步骤: 1.准备需要访问的数据库 下载并安装MySQL5.0 CopyMySQL5.0驱动mysql-connector-java-5.0.8-bin.jar到%TOMCAT%\lib文件夹下创建数据库及表: 数据库的设计如下表: 数据库采用MySQL5.0,数据库名: db,表名: user(用户表) 表5-1数据库的用户表 序号 列名 数据类型 长度 主键 允许空 默认值 说明 1 username varchar 40 是 否 用户名 2 password varchar 40 是 口令 创建过程如下: (可选择使用MySQL的数据库管理和开发工具Navicat和MySQL-Front等) Step1: 进入MySQL程序的MySQLCommandLineClient界面,如下图所示 Step2: 分别执行下列命令: //支持中文 ①创建数据库: CREATEDATABASE`db` CHARACTERSET'utf8' COLLATE'utf8_general_ci'; USEDB; ②建表: CREATETABLE`user`( `username`varchar(20)NOTNULLPRIMARYKEY, `password`varchar(20) )ENGINE=InnoDBDEFAULTCHARSET=utf8; 开发过程如下: Step1: 创建值JavaBean: User.java,内容如下: packagevalueBean; publicclassUser{ privateStringusername;//用户名 privateStringpassword;//口令 publicUser() { this.username=""; this.password=""; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetUsername(){ returnusername; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicStringgetPassword(){ returnpassword; } } Step2: 创建访问数据库的类—AccessUserFromDB.java,内容如下: packagetoolBean.db; importjava.sql.*; importvalueBean.User; publicclassAccessUserFromDB{ privatestaticConnectionconn=null; privatestaticStatementstmt=null; //构造函数中完成对数据库进行初始化 publicAccessUserFromDB(){ //创建连接 conn=this.getConnection(); try{ //创建Statement stmt=conn.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } } //将对象user添加到表中 publicvoidAdd(Useruser)throwsSQLException { Stringsql="INSERTINTOuser(username,password)VALUES('" +user.getUsername()+"','"+user.getPassword()+"')"; stmt.executeUpdate(sql); } //根据用户名(关键字)从数据库删除相应的记录 publicvoidDelete(Stringusername)throwsSQLException { Stringsql="DeleteFromuserWhereusername='"+username+"'"; stmt.executeUpdate(sql); } //修改数据库中的user publicvoidUpdate(Useruser)throwsSQLException { Stringsql="UPDATEusersetpassword='" +user.getPassword()+"'whereusername='"+user.getUsername()+"'"; stmt.executeUpdate(sql); } //根据用户名称(关键字)从数据库中查找记录,并将找到的记录写入对象user中返回 publicUsersearchByUsername(Stringusername)throwsSQLException { Useruser=newUser(); Stringsql="select*fromuserwhereusername='"+username+"'"; ResultSetrs=stmt.executeQuery(sql); while(rs.next()) { Stringname=rs.getString("username"); if(name.equals(username)) { //将从数据库查找得到的记录存入对象user中 user.setUsername(name); user.setPassword(rs.getString("password")); if(rs! =null) rs.close(); returnuser; } } returnnull;//查找不到返回null } //根据用户判断该记录是否存在 publicbooleanexists(Stringusername) { booleanrtn=false; try{ if(searchByUsername(username)! =null) rtn=true; }catch(SQ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 实验 指导书