JAVA Web技术-实验2

  • 格式:doc
  • 大小:248.50 KB
  • 文档页数:13

实 验 报 告

课程名称 JavaWeb技术

实验项目 实验2 JSP model 1开发

实验仪器 PC机

系 别 计算机学院

专 业 软件工程

班级/学号

学生姓名

实验日期 2016-9-26

成 绩

指导教师

1

实验2 JSP Model 1开发

一、实验目的

1. 正确理解和使用JavaBean技术

2. 正确理解和使用JDBC技术

3. 正确理解和使用JSP和JavaBean的相互调用

4. 正确理解和使用JSP Modle1进行开发

二、实验要求

使用JSP Model 1模式开发一个商品管理系统,具有登录功能,用户登录后能进行商品的增删改查。具体要求:

1. 数据库的名字设为自己名字的英文,在其中设计用户表和商品表用于数据存储;

2. 登录验证时要求有错误提示;

3. 进入系统后每个页面要求有session验证(即判断是否已正常登录);

4. 能够对商品信息进行正常的浏览、增加、删除、修改和条件查询。

三、实验步骤

1. 数据准备(MySQL)

(1)

创建数据库,库名为自己名字的拼音缩写。

数据库名为: zhangxinjie

(2) 创建用户表user,其结构如下:

字段名称 数据类型 说明

username Char(10) 用户名

userpassword Char(20) 密码

(3) 创建商品表product,其结构如下:

字段名称 数据类型 说明

pid int 产品编号

pname Varchar(20) 产品名称

pnumber int 产品数量

2

2. 资源说明。用列表的形式说明各程序文件的作用。

 登陆部分

程序文件名称 程序文件作用

login.jsp 主要登陆界面,供用户输入用户名和密码

judgelogin.jsp 逻辑判断用户名和密码与数据库是否匹配

 操作按钮部分

operateView.jsp 基本操作界面,供用户选择进入产品操作界面和返回登陆界面

product.jsp 产品操作界面,共用户选择产品预览及产品的增删改查

 产品的预览

productView.jsp 提供产品预览界面,包括所有产品的编号、名称及剩余数量

 产品的增加

addProduct.jsp 增加产品操作界面,供用户输入要增加的产品的编号、名称及剩余数量

newAddProduct.jsp 逻辑判断语句,将addProduct中输入的信息添加到数据库中,并显示添加信息后信息表

 产品的删除

deleteProduct.jsp 删除产品页面,供用户输入待删除的产品编号或产品名称

deleteById.jsp 逻辑判断语句,根据deleteProduct中输入的产品编号在数据库中删除对应行

deleteByName.jsp 逻辑判断语句,根据deleteProduct中输入的产品名称在数据库中删除对应行

 产品的更新

updateProduct.jsp 更新产品页面,供用户输入待更新的产品的产品编号

updateById.jsp 供用户输入待更新的产品的产品名称和产品数量

updateByIdResult.jsp 根据用户输入的更新信息在数据库中进行修改

 产品的查找

findProduct.jsp 查找产品界面,供用户输入待查找的产品编号或产品名称

findById.jsp 逻辑判断语句,根据findProduct中输入的产品编号在数据库中删除对应行

findByName.jsp 逻辑判断语句,根据findProduct中输入的产品编名称在数据库中删除对应行

3

3. 说明如何使用JSP Model 1实现登录功能(用户名为自己的中文名字)。

(1) 方案说明。

使用session隐含对象。

① 在judgeLogin.jsp中,判断用户输入的用户名和密码与数据库中某一项是否匹配。如果匹配,则在session对象中保存数据,键为name,值为用户名,并跳转到基本操作界面operateView.jsp。否则,重新回到login.jsp界面重新输入用户名和密码进行登陆。

② 在其后的jsp文件中,获取session对象的name键的键值,如果为空,则登录失败或未登陆,提示用户进入登陆页面进行登录。否则,不为空,则用户已经登陆,先是接下来的界面并编译接下来的代码段。

(2) 源码展示。

① judgeLogin.jsp中

if(rs.next()){//如果匹配成功

session.setAttribute("name", name);

%>

<%

}

else{

out.println("登录失败,请重新登录! 登陆");

}

② 其后的jsp文件中

<%

String name=(String)session.getAttribute("name");

if(name==null){

out.print("请登陆!登陆");

}

else{

%>

//其他代码段

<%

}

%>

4

(3) 截图。

4. 所有功能的运行截图

 登陆界面

5

 基本操作界面

 产品操作界面

 产品预览界面

6

 产品增加页面

 产品删除页面

7

8

 产品修改页面

9

10

 产品查找界面

11

四、实验中值得注意的问题

1.编码问题

时刻注意编码的统一,实验中最好都使用utf-8编码,避免出现乱码等问题

2.连接数据库要有的五个步骤

a) //使用MySql的JDBC驱动程序

Class.forName("com.mysql.jdbc.Driver");

b) //连接数据库

con = DriverManager

.getConnection("jdbc:mysql://localhost:3306/zhangxinjie?user=root&password= 1234");

c) //创建Statement对象

sment = con.createStatement();

12

d) //执行SQL语句

String sql="select * from user where username='" + name

+ "' and userpassword = '" + pw + "'";

rs = sment.executeQuery(sql);

e) //关闭数据库

con.close();

3.数据库语句要注意的格式问题

使用String定义sql语句过程中,经常因为没有为字符类型写单引号造成很多不容易发现的问题,本次试验中我也遇到同样的问题,以为是int型,没有加单引号,之后出现问题不容易发现。

4.异常的处理

一份好的代码异常处理部分一定是比较完善的,在jsp文件中要多注意需要加异常处理的部分,方便找出问题的所在,又使代码更丰盈。

五、实验总结

做实验的过程中发现了我的很多问题。

不能在全局范围内思考问题。有时会因为忘记写连接数据库五个步骤中的一步而发生报错,有时又在不断的向已有的结构中加入新的东西。后来想如果说在做实验之前有个大体构想,包括软件的功能、界面,如果都想得比较全面,那最后可修改的地方理应是少之又少。所以应该有全局的思维,从整体考虑。

不能专业的思考问题。虽然功能比较齐全,但是界面却不能做得很好。如果从始至终严格要求自己,不是以完成试验的目的去做实验,专业的思考,专业的考虑整个页面的布局,效果应该会比现在好得多。