1、JAVA大作业实验报告JAVA课程设计1 题目及要求构建一个使用jsp+javabean+servlet的MVC构架web应用,并提交相应文档。以上课已给出的代码和应用模型为基础,完成基本功能,并增加一些应用模块,改变用户界面。2 系统设计2.1构架模型整个系统是基于jsp、javabean、servlet开发,其中数据库语句调用部分运用的是access的语句。2.2开发平台、开发工具、系统服务器的选型 开发平台为NetBEAN7.1及JDK1.7,数据库开发平台为Microsoft office access 2003,系统服务器选择的是Tomcat Apache 7.0。2.3相关技术介绍
2、NetBeans 由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步
3、。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。 Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apa
4、che、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 3 系统结构及模块3.1开发与设计的总体思想 3.1.1系统的组成 整个系统使用的是jsp+servlet+javabean的mvc模式建立的,所以在其中,jsp部分负责用户的可视部分,servlet负责处理用户提交的数据,j
5、avabean则负责由servlet进行处理后所使用的功能。3.1.2 jsp部分Jsp部分设计了8个页面,其中index页面用来跳转至login页面,login页面用来输入登录数据,welcome页面显示登录成功后可进行下一步操作的页面,logout页面显示用户登出后的状态,logo页面显示每页中都有的一个logo,message页面显示留言板的留言页面,showmessage页面显示留言板的内容。 3.1.3 servlet部分Servlet部分设计了3个,其中loginservlet用来处理用户登录时的数据,registerservlet用来处理用户注册时的数据,messageservl
6、et用来处理用户运行留言板功能时的数据。3.1.4 javabean部分Javabean部分设计了3个,其中databasebean用来连接access数据库,userdao用来进行用户在登录注册功能中对数据库的操作,messagedao用来进行用户在留言板功能中对数据库的操作。3.2 整个系统的结构,各模块之间的关系图 数据流图是对系统数据流向的一种描述,并从本质上让程序的使用者,大致了解系统的使用方法。本登录系统的大致流程图如下:图 3-2 数据流图3.3 系统中的MVC层次结构介绍MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC
7、模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。 在这个登录系统中,视图(View)层为jsp,模型(Model)层为javabean,控制Controller)层为servlet。视图层用于与用户进行登录用户、密码的输入,注册用户、密码、电子邮件的输入等程序与用户之间的交互;模型层用于连接数据库并对按用户需
8、求提取出的数据库信息的操作;控制层用于在用户输入数据后对输入数据的处理及判断。3.4 各模块说明及介绍3.4.1 index.jsp此页面中仅有一句代码,用于跳转至login.jsp中。3.4.2 login.jsp此页面负责将用户输入的数据送给loginservlet处理或通过超链接进入register.jsp进行注册。 用于将loginservlet中对用户输入的数据进行处理后的结果通过notice的文字表达方式送回本页面中来提示所输入的数据是否可用。3.4.3 register.jsp此页面与login.jsp页面基本一样,负责将用户输入的数据送给registerservlet处理。 用
9、于将servletservlet中对用户输入的数据进行处理后的结果通过notice的文字表达方式送回本页面中来提示所输入的数据是否可用。3.4.4 welcome.jsp此页面为用户成功登陆后由login.jsp转至的页面,作用为进行登出或其他功能的操作。base href=这个标签在jsp中表示,该页所有的默认连接时新窗口,还是当前页,还是框架页里打开新连接。用来取得在login.jsp中发出的username数据然后显示出来。点击进入留言板建立一个超链接连接至自行添加的功能留言板页面。3.4.5 logout.jsp此页面为用户登出后的界面。 已经退出登录用来接收前面所输入的usernam
10、e数据已显示。 用来移除保存在session中的username数据,这样才可以在返回登陆页面后能重新输入用户数据进行登录。3.4.6 databasebean.java此javabean用来连接数据库并定义一些变量来控制打开、更新、关闭数据库。定义class DatabaseBean控制整个databasebean中的整体变量,public DatabaseBean ()用来打开数据库,public boolean update(String sql)用来更新数据库中sql所指向的内容,public ResultSet query(String sql) 用来提取sql中所指向的内容,pub
11、lic boolean isThereAnyResult(String sql)用来判断sql在数据库中提取的内容和用户输入的数据的相同与否,以ture和false返回。3.4.7 userdao.java此javabean用来定义数据库查询语句sql及进行相关的数据库操作。定义 public boolean isValid(String username, String password) 用来提取String sql = select * from user where username= + username + and password= + password +;的内容并使用publ
12、ic boolean isThereAnyResult(String sql)进行判断后的返回值来操作用户输入的用户密码是否存在或密码是否错误。定义public boolean isExist(String username) 用来提取String sql = select * from user where username= + username + ;的内容并使用public boolean isThereAnyResult(String sql)进行判断后的返回值来操作用户在注册是输入的用户名是否存在。定义public void add(String username, String
13、password, String email) 用来使用String sql = insert into user(username,password,email) values( + username + , + password + , + email + );进行数据库的更新。3.4.8 loginservlet.java此servlet用来处理输入的登录数据。import javabean.UserDAO;添加userdao到此servlet中,使用 String username = request.getParameter(username);String password = r
14、equest.getParameter(password);用来提取在login.jsp中用户输入的数据,然后使用判断语句判断username = ,为真则返回notice为用户名未输入并传送至login.jsp,为假则使用userdao中的userDao.isValid(username, password),返回为真则将username保存至session中并跳转至welcome.jsp页面以显示登录成功,为假则返回notice为用户名、密码输入错误并传送至login.jsp。3.4.9 registrerservlet.java此servlet用来处理输入的注册数据。import jav
15、abean.UserDAO;添加userdao到此servlet中,使用 String username = request.getParameter(username);String password1 = request.getParameter(password1);String password2 = request.getParameter(password2);String email = request.getParameter(email);用来提取在register.jsp中用户输入的用户名、密码、二次密码、电子邮件的数据,然后使用if (username.equals()
16、| password1.equals() | password2.equals() 进行用户名、密码、二次密码是否为空,若判断为真则返回notice为信息未输入完整并传送至register.jsp中,判断为假则再进行if (!password1.equals(password2)判断密码与二次密码输入的数据是否相同,若判断为真则返回notice为两次输入密码不同并传送至register.jsp中,判断为假则使用userdao中的userDao.isExist(username),返回为真则返回notice为用户名已注册,请更换用户名并传送至registter.jsp中,为假则进行userDao
17、.add(username, password2, email);的操作并返回notice为注册成功。4 系统界面截图 根据上面所介绍的本系统的各个模块及其需要实现的功能,下面详细设计如下:4.1.系统主界面截图 首先显示登录界面:若输入的用户名在数据库中不存在,则显示为:然后点击注册新用户进入注册页面:此处注册用户名为123,密码为123,email为123。若确认密码中输入的不是123则显示:注册成功则显示使用注册的用户名和密码登录,显示weicome页面:点击进入留言板,显示:输入标题、留言内容后点击留言显示成功:点击查看留言板,显示留言板内的内容:5 新增代码说明新增代码为一个留言板功
18、能,留言板的功能同样以MVC模型建立,其中,jsp部分负责用户的可视部分,servlet负责处理用户提交的数据,javabean则负责由servlet进行处理后所使用的功能。Jsp层中使用了两个jsp,message为留言板输入页面,showmessage为显示留言板页面。javabean层中使用了两个javabean,databasebean为连接数据库,messagedao用来进行用户在留言板功能中对数据库的操作。Servlet层中使用了一个servlet,messageservlet用来处理用户运行留言板功能时的数据。在message.jsp中,base href=这个标签在jsp中表示
19、,该页所有的默认连接时新窗口,还是当前页,还是框架页里打开新连接。用来取得在login.jsp中发出的username数据然后显示出来并发送至messageservlet中作为author的数据。点击查看留言板跳转至留言板查看页面。 在showmessage.jsp中,使用%while (rs.next() out.print();for (int i = 1; i =4; i+) out.print( + rs.getString(i) + );out.print();%的循环语句来循环提取在数据库中的留言板数据并打印在当前页面中。在messagedao.java中,定义public voi
20、d add(String title, String content,String author)用来将servlet发送出的数据添加到数据库中,定义public void show(String title,String content,String author)用来提取数据库中的数据。在messageservlet.java中,import javabean.UserDAO;添加userdao到此servlet中,使用String title = request.getParameter(title);String content=request.getParameter(content
21、);String author = request.getParameter(author);用来提取在message.jsp中用户输入的标题、内容和用户名的数据,然后使用if (title.equals() | content.equals() 进行标题、内容和用户名是否为空的判断,若判断为真则返回notice为未输入内容并传送至message.jsp中,判断为假则使用MessageDao中的 MessageDao.add(title,content,author),的操作并返回notice为已发表。添加新功能源代码如下:-message.jsp- base href= 留言板 登录成功 登录成功 欢迎你, 留言标题: 留言内容: 用户:input type=text name=author value= 点击查看留言板 -showmessage.jsp- BO
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1