目 录
一、实验目的
1、掌握mysql的安装、数据库表单创建
2、掌握JDBC的链接
3、掌握JSP实现登录与注册
二、实验环境
1、硬件要求:笔记本电脑一台。
2、软件要求:Windows操作系统,使用Eclipse编译环境、Tomcat服务器以及Microsoft Edge浏览器。
3、网络要求:能访问互联网。
三、实验步骤和内容
1、小组成员分工(共计4人)
(1)组长——锦鲤
完成小组内部成员的分工以及前端界面的设计和把控,制定相关的组内合作机制,组内项目的构建遵从“四模四合三并一详”制度,即“四模”为相关项目的制作分为四个模块,每一个人负责一个模块的制作;“四合”为组内四人之间相互合作,将项目开展过程中出现的问题及时的反馈到小组群内,小组成员一起解决;“三并”为以3天为一个期限合并一次代码,检测代码之间以及网页之间是否能够正常的进行衔接和跳转,即每周周三和周六各进行一次小的代码合并工作,将过程中出现的问题发到小组群里让对应负责的同学进行修改和完善,最后在每周的周天进行一次大型的代码合并,此时所有成员必须全部到场,对运行过程中和演练过程中可以改进的地方进行记录,全部演示完毕后对自己负责的模块再进行相应的完善工作;“一详”为组内所有代码都要有相应的注释,确保组内成员都可以看懂各自负责模块的代码,方便进行后期代码的修改工作。
使用Eclipse编译软件以及MySQL设计一个登录页面,并使用MySQL建立自己需要使用的数据库和数据表,通过JSP+JDBC+MySQL实现对应的登录注册功能。
(2)组员——西瓜
使用Eclipse编译软件以及MySQL设计一个登录页面,并使用MySQL建立自己需要使用的数据库和数据表,通过JSP+JDBC+MySQL实现对应的登录注册功能。
(3)组员——甜瓜
使用Eclipse编译软件以及MySQL设计一个登录页面,并使用MySQL建立自己需要使用的数据库和数据表,通过JSP+JDBC+MySQL实现对应的登录注册功能。
(4)组员——苦瓜
使用Eclipse编译软件以及MySQL设计一个登录页面,并使用MySQL建立自己需要使用的数据库和数据表,通过JSP+JDBC+MySQL实现对应的登录注册功能。
2、实验方案
1、根据课本、PPT和老师课堂中讲解的内容,使用Eclipse编译软件制作各自负责模块的内容。
2、将代码编写过程中遇到的问题及时的反馈到小组群内,小组内共同寻找解决方案并将其完美解决。
3、使用MySQL建立登录需要使用的数据库(myweb810)以及数据表(admin),通过JDBC连接对应的数据库,并通过调用数据库中的登录数据进行页面登录功能的实现。
4、定期讨论并总结项目制作过程中出现的问题,对出现的问题进行归纳总结。
5、完成最终的项目以及各自的实验报告,最后进行实验报告排版的检测并提交。
3、实验结果与分析
1、使用Eclipse编译软件通过JSP编写图书管理系统的登录页面,页面实现完成后进行项目的运行,项目启动运行界面如图3-1:
图3-1 项目启动运行界面
2、通过JSP实现前端页面的搭建,构建图书管理系统的前端页面,具有账号、密码输入框以及个人账号状态身份选择的下拉框和可以实现验证码不断更新的验证码输入框,项目启动后图书管理系统的前端登录页面如图3-2:
图3-2 前端登录页面
3、由于还没有建立数据库和连接数据库因此目前页面无法实现正常的数据提取和检验是否输入正确,在MySQL编译器中构建myweb810数据库,并将自己在项目过程中所需要使用的数据表建立在当前数据库下,数据库建立及数据表建立界面如图3-3:
图3-3 数据库建立及数据表建立界面
4、数据库建立完毕后,在myweb810数据库中建立登录需要使用的数据表,其中数据表中具有id、username、password、adminType四个属性,admin登录数据表界面如图3-4:
图3-4 admin登录数据表界面
5、导入数据库驱动包,在自己的电脑上找到自己数据库驱动包的路径,然后将自己需要的数据库驱动包直接拖拽到WEB-INF文件夹下的lib文件夹下,切记在拖拽前先查看自己MySQL的版本,进而确保对应的驱动包版本与之匹配,数据库驱动文件导入界面如图3-5:
图3-5 数据库驱动文件导入界面
6、数据库驱动文件导入以后右击将文件添加到对应的路径之下,具体操作为右击->构建路径(Bulid Path)->添加路径(Add to bulid path)即可完成对应路径的添加,数据库文件路径添加界面如图3-6:
图3-6 数据库文件路径添加界面
7、数据表构建完成后使用JDBC连接需要使用的数据库,并通过相关的操作对数据库中的admin数据表中的信息进行提取,完成输入信息和数据库信息的匹配,数据库连接驱动界面如图3-7:
图3-7 数据库连接驱动界面
8、数据库完成连接后运行整个项目,然后在输入框内输入相关的信息,对应的第一栏为自己的账号信息,即username信息;第二栏为密码,即password信息;第三栏为下拉菜单,选择自己的角色,进而进入不同的管理页面,如果信息输入错误会提示相关的错误内容,信息输入错误界面如图3-8:
图3-8 信息输入错误界面
9、如果用户的账号和密码信息由于没有注册而导致登录不了,可以先进行注册然后再进行重新登录,点击注册后会进入图书管理系统的注册页面,然后在对应的输入框内输入学号、账号、密码、身份等信息点击注册按钮即可成功完成注册,如果信息填写过程中出现大量的信息需要修改只需要点击重置按钮即可实现输入框内容全部置空,最后进行信息的重新填写即可,信息内容重置界面如图3-9:
图3-9 信息内容重置界面
10、输入内容重置以后在对应的输入框内输入学号、账号、密码、身份等信息点击注册按钮即可成功完成注册,信息输入注册界面如图3-10:
图3-10 信息输入注册界面
11、成功完成注册后在输入框内输入相关的信息,对应的第一栏为自己的账号信息,即username信息;第二栏为密码,即password信息;第三栏为下拉菜单,选择自己的角色,进而进入不同的管理页面,信息输入正确登录进入界面如图3-11:
图3-11 信息输入正确登录进入界面
4、项目任务评价
1、每次完成代码迭代更新后对应模块出现的问题大家都可以积极的进行解决,不但提高了对问题的解决效率,而且还加深了我们每一个人处理问题的能力。
2、每一个组员在编写代码的过程中都可以对自己的代码进行注释,每一期合成完毕后的代码组内的成员都可以看懂其他组员所编写的代码,这样组内的每一位成员都可以详细的了解我们整个项目的运行,并且在运行后可以比较快速的定位到出现错误的地方。
3、虽然在项目制作的过程中存在一定的问题,但是我们都会进行及时的调整,总的来说优点是大于缺点的,我们会继续保持好的的一方面,及时对缺点和不足进行改正和完善,让小组成员和自己的项目更加完善。
四、遇到的问题和解决方法
1、运行问题:编写的代码在运行过程中出现了乱码现象。
解决方法:鼠标右击->Run As->Run Configurations->Common->在Other后填写gbk然后点击Run进行运行后中文可以正常输出。
2、运行问题:代码编写完成后进行运行发现网页无法进行页面加载,显示页面请求失败。
解决方法:由于没有在Tomcat服务器上进行运行所导致,先运行服务器然后再运行代码后页面可以正常加载。
3、运行问题:启动Tomcat的过程中,有时出现端口被占用的情况。
解决方法:对服务器进行配置,将服务器运行的端口号改为别的端口即可(找到Tomcat安装目录下的文件“/conf/server.xml”->使用记事本或写字板打开文件,在文件中找到“Connector port=8080”->将“8080”改为“8888”,然后保存配置文件->重启Tomcat服务器)。
4、项目问题:多个同名文本框是如何存储在获取到的数组里的。
解决方法:以文本框在源代码中出现的顺序,从数组的第0位开始向后放置。
5、项目问题:使用定时器让某个函数隔一段时间之后运行一次的格式是怎样的。
解决方法:定时器的格式为timer = window.setTimeout("需要运行的函数","时间(用毫秒计)")。
6、代码问题:如果要清除定时器该怎样操作。
解决方法:使用语句clearTimeout(timer)即可完成对定时器的清除。
7、代码问题:使用对象location完成一个网页跳转到另一个网页。
解决方法:跳转的方法就是修改location的href属性,即修改为window.location.href=”page.html”即可完成页面的跳转。
8、项目问题:<input type="submit" value="登录">表示提交按钮,是否可以写普通按钮。
解决方法:不可以,如果将该按钮改为:<input type="button" value="登录">,显示效果一样,但是点击,没有提交功能。不过可以用JavaScript进行提交。
9、项目问题:除了可以将JavaScript代码嵌入到HTML中之外,是否还有其他的导入方式。
解决方法:可以专门将JavaScript代码写在单独的文件中window.alert("第一个 JavaScript 程序"); 然后在另外的HTML页面中插入<script src="code.js" type="text/javascript"></script>来导入需要的JavaScript文件。
10、项目问题:JSP页面无法获取到JavaBean中的数据。
解决方法:确保JavaBean中需要获取的数据已经被正确地赋值,可以在JSP页面中使用EL表达式或者使用Java代码片段的方式获取数据。
11、项目问题:JSP页面无法正确地显示数据。
解决方法:检查JSP页面中是否包含错误的HTML标签、CSS样式或JavaScript代码,这些代码可能会干扰数据的显示,也可以检查JavaBean中的数据是否被正确地存储、处理和输出。
12、项目问题:JSP页面中出现空指针异常。
解决方法:检查JavaBean对象是否被正确地初始化,或者是是否存在null值。在代码中可以使用条件语句或者异常处理来避免空指针异常的出现。
13、项目问题:JSP页面中的表单无法提交。
解决方法:检查表单中的请求方法是否正确,是否存在未填写的必填项,是否存在重复的表单参数等错误。同时,也可以检查网络连接是否正常。
14、项目问题:JSP页面中遇到编码问题。
解决方法:可以先检查JSP页面、JavaBean以及数据库的编码设置是否一致,可以手动在代码中设置编码格式,也可以在web.xml文件中配置全局的编码过滤器。
五、实验总结
1、在使用单引号和双引号的时候要特别注意,输出单个字符时可以使用单引号,如果同时输出多个字符时只能使用双引号进行输出,不然会报错。
2、在对笔记本电脑进行配置时尽量不要使用C盘。
3、JavaScript是一种网页脚本语言,虽然名字中含有Java,但它与Java语言是完全两种不同的语言。
4、JavaScript代码可以很容易地嵌入到HTML页面中。浏览器对JavaScript脚本程序进行解释执行。
5、 JavaScript与Java一样,对大小写是敏感的,在JavaScript中,注释有三种写法:一种是 HTML 注释的写法:<!—注释内容-->,还有两种分别为:"//单行注释"和"/*多行注释*/"。
6、JavaScript中的变量为弱变量类型,即变量的类型根据它被赋值的类型改变。
7、JavaScript中变量未声明就使用是不会报错的,但很容易出现不可预知的错误,所以所有变量先声明后使用。
8、除了在代码里面进行简单的编程之外,我们还可以通过JavaScript提供的内置对象来对网页进行操作,内置对象由浏览器提供,可以直接使用,不用事先定义。
9、history对象包含用户的浏览历史等信息,用到这个对象的原因,是因为它可以代替后退 (前进)按钮访问历史记录,该对象从属于window。
10、location对象可以访问浏览器地址栏,也是从属于window,最常见功能就是跳转到另一个网页。
11、location对象另一个比较常见的应用是定时跳转,但是需要结合window的定时器使用。
12、在开始进行JSP+JDBC+MySQL开发之前,要先熟悉Java语言基础知识和基本的Web开发知识,如HTTP协议、Servlet、JSP等。
13、在JSP中,使用<%@ page import %>语句导入需要使用的Java类,如JDBC的Connection、Statement等。
14、在连接MySQL数据库时,需要使用JDBC提供的mysql-connector-java jar包,并将其添加到项目的classpath中。
15、在JSP中,可以使用JavaBean来封装数据库表中的数据,便于操作。
16、使用JDBC连接MySQL数据库时,需要先通过DriverManager类加载数据库驱动,然后通过Connection类建立数据库连接。
17、在进行登录注册操作时,需要先检查输入的用户名和密码是否合法,可以通过正则表达式进行有效性检查。
18、在注册时,需要先检查用户名是否已经存在于数据库中,如果存在则提示用户重新填写。
19、在登录时,需要先将用户输入的密码进行一定的加密处理,保证密码的安全性。
20、在进行数据库表操作时,需要先定义SQL语句,然后通过PreparedStatement类进行预处理,最后通过ResultSet类获取结果集。
21、在JSP开发中,需要将数据尽可能地从数据库中提取出来,并通过El表达式在页面中进行展示。
22、在进行数据库操作时,需要使用try-catch语句捕获异常,并显示友好的错误信息。
23、在进行JSP页面开发时,需要注意页面布局美观易用,可以使用Boot strap等前端框架进行开发。
24、在进行JDBC操作时,需要注意代码的复用和灵活性,可以将可复用的功能封装成JavaBean或者Util类。
25、在进行SQL语句拼接时,需要注意SQL注入攻击,可以通过转义或者使用Prepared Statement等方式来防御SQL注入。
26、在进行用户权限管理时,需要对不同用户赋予不同的权限,以允许或禁止其访问特定内容。
27、在开发调试过程中,需要使用Debug技术来查找代码中的错误,如在Eclipse中可以使用Debug Perspective。
28、在同一个页面中进行登录和注册时,需要定义不同的表单提交地址,并能够正确地进行请求分发。
29、在进行JSP+JDBC+MySQL开发时,需要关注与数据表结构相对应的数据类型,如INTEGER类型、VARCHAR等。
30、在开发完成后,需要进行测试和部署,可以通过服务器部署或者调用第三方云服务进行部署。同时,需要注意代码的版本管理,确保代码的正确性和可维护性。
31、在进行表单提交时,需要添加表单校验和防止重复提交。