jsp实验指导书

更新时间:2023-11-21 23:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 JSP实验环境组建与简单JSP应用

实验目的:

熟悉JSP开发环境,使用开发环境进行JSP程序开发。 实验要求:

安装JDK,Tomcat,MyEclipse/Eclipse,并建立一个简单Web应用且发布测试。 实验步骤: 1.安装JDK; 2.安装Tomcat;

3.安装MyEclipse或Eclipse;

4.建立一个Web应用,在index.jsp中显示“您好,这是我的第一个JSP站点。”; 发布测试。

index.jsp页面代码:

<%@ page language=\

My JSP 'index.jsp' starting page

您好,这是我的第一个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文件,代码如下: package square;

public class Square { private int side = 1; // 定义私有变量side表示正方形的边长 public Square() { // 无参的构造函数 } public int getSide() { return side; // 返回变量side的值 } public void setRadius(int newSide) { side = newSide; // 给变量side赋值 } public double squareLength() { return side * 4.0; // 计算正方形的周长 } public double squareArea() { return side * side; // 计算正方形的面积 } }

2.创建名称为sideInput.jsp的页面文件,该页面文件的代码如下: <%@ page contentType=\ 计算正方形的周长与面积

3.创建名称为square.jsp的页面文件,该页面文件的代码如下: <%@ page contentType=\ 计算正方形的周长与面积

4.程序执行过程如图所示:

实验六 Servlet的应用

实验目的:

熟悉Servlet接口及其中规定的方法和意义;掌握Servlet编写、部署和运行。 实验要求:

当请求Servlet时,出现一个包含文本框、密码框和提交按钮的界面,当输入用户名和密码,单击【登录】按钮后,将用户的信息放入HttpSession中,并输出欢迎当前用户登录的信息。 实验步骤:

1.创建一个Web工程,名称为login。 2.在工程的sunyang包下创建一个Servlet类LoginServlet.java,该类用来输出登录页面和欢迎用户登录的信息。类LoginServlet的代码如下: import java.io.IOException; import java.io.PrintWriter;

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;

public class LoginServlet extends HttpServlet{ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setCharacterEncoding(\ //设置响应的编码类型为GBK PrintWriter out=resp.getWriter(); //获取输出对象 out.println(\ out.println(\ out.println(\用户登录\ out.println(\ out.println(\ HttpSession session=req.getSession();//获取HttpSession实例 Boolean isLogin=(Boolean)session.getAttribute(\ if(isLogin==null){ isLogin=false; } String name=req.getParameter(\获取表单上的用户名 String password=req.getParameter(\获取表单上的密码 if(isLogin==true){ name=(String)session.getAttribute(\ out.println(\欢迎\登录\

}else if(name!=null&&password!=null){ session.setAttribute(\把用户名保存在HttpSession中 session.setAttribute(\把密码保存在HttpSession中

//把判断用户是否登录的字段保存在HttpSession中 session.setAttribute(\ out.println(\欢迎\登录\ }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,配置的代码如下: LoginServlet sunyang.LoginServlet 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

Copy MySQL5.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程序的MySQL Command Line Client界面,如下图所示

Step2:分别执行下列命令://支持中文 ① 创建数据库:

CREATE DATABASE `db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

USE DB; ② 建表:

CREATE TABLE `user` (

`username` varchar(20) NOT NULL PRIMARY KEY, `password` varchar(20)

) ENGINE=InnoDB DEFAULT CHARSET=utf8; 开发过程如下:

Step1: 创建值JavaBean: User.java,内容如下: package valueBean;

public class User { private String username;//用户名 private String password;//口令 public User() { this.username=\ this.password=\ } public void setUsername(String username) { this.username = username; } public String getUsername() { return username; } public void setPassword(String password) { this.password = password;

} public String getPassword() { return password; } }

Step2: 创建访问数据库的类—AccessUserFromDB.java,内容如下: package toolBean.db; import java.sql.*;

import valueBean.User;

public class AccessUserFromDB { private static Connection conn=null; private static Statement stmt=null; //构造函数中完成对数据库进行初始化 public AccessUserFromDB() { //创建连接 conn=this.getConnection(); try { //创建Statement stmt=conn.createStatement(); } catch (SQLException e) { e.printStackTrace(); } } //将对象user添加到表中 public void Add(User user) throws SQLException { String sql=\ +user.getUsername()+\ stmt.executeUpdate(sql); }

//根据用户名(关键字)从数据库删除相应的记录 public void Delete(String username) throws SQLException { String sql=\ stmt.executeUpdate(sql); } //修改数据库中的user public void Update(User user) throws SQLException { String sql=\ +user.getPassword()+\ stmt.executeUpdate(sql);

}

//根据用户名称(关键字)从数据库中查找记录,并将找到的记录写入对象user中返回 public User searchByUsername(String username) throws SQLException { User user=new User(); String sql=\ ResultSet rs=stmt.executeQuery(sql); while(rs.next()) { String name=rs.getString(\ if(name.equals(username)) { //将从数据库查找得到的记录存入对象user中 user.setUsername(name); user.setPassword(rs.getString(\ if(rs!=null) rs.close(); return user; } } return null;//查找不到返回null } //根据用户判断该记录是否存在 public boolean exists(String username) { boolean rtn=false; try { if(searchByUsername(username)!=null) rtn=true; } catch (SQLException e) { e.printStackTrace(); } return rtn; } ///建立与数据的连接 private Connection getConnection() { String driverClass=\ String url=//与创建数据库的代码结合,保证访问数据库时不出现乱码 \ String username = \ String password = \

try { Class.forName(driverClass);// 加载数据库驱动 } catch (ClassNotFoundException e) { e.printStackTrace(); } try { conn = DriverManager.getConnection(url, username, password);//建立连接 } catch (SQLException e) { e.printStackTrace(); System.out.print(\数据库连接失败!\ } return conn; } //关闭与访问数据库有关连接 protected void finalize() { try { if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }

Step3: 创建JSP文件以及相应的JavaBean 创建 添加用户页面—AddUser.jsp,代码如下: <%@ page contentType=\charset=gb2312\language=\import=\

添加用户

相应的添加用户Servlet(AddUser.java),代码如下: package servlet.user;

import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException;

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import toolBean.db.AccessUserFromDB; import valueBean.User;

public class AddUser extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //返回上页

String goBack=\href='javascript:window.history.go(-1);'>返回上页\ response.setContentType(\ PrintWriter out = response.getWriter(); String username=request.getParameter(\ if(username==null||username.equals(\ { out.print(\用户名不能为空!\ out.print(goBack); } String password=request.getParameter(\ User user=new User(); user.setUsername(username); user.setPassword(password);

本文来源:https://www.bwwdw.com/article/7qrv.html

Top