jsp实验指导书.docx

上传人:b****5 文档编号:30727344 上传时间:2023-08-19 格式:DOCX 页数:33 大小:284.90KB
下载 相关 举报
jsp实验指导书.docx_第1页
第1页 / 共33页
jsp实验指导书.docx_第2页
第2页 / 共33页
jsp实验指导书.docx_第3页
第3页 / 共33页
jsp实验指导书.docx_第4页
第4页 / 共33页
jsp实验指导书.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

jsp实验指导书.docx

《jsp实验指导书.docx》由会员分享,可在线阅读,更多相关《jsp实验指导书.docx(33页珍藏版)》请在冰豆网上搜索。

jsp实验指导书.docx

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">

MyJSP'index.jsp'startingpage

您好,这是我的第一个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-->

LoginServlet

sunyang.LoginServlet

--配置Servlet映射路径-->

LoginServlet

/login

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(SQLExceptione){

e.printStackTrace();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1