JAVA大作业实验报告.docx
- 文档编号:8635831
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:17
- 大小:225.10KB
JAVA大作业实验报告.docx
《JAVA大作业实验报告.docx》由会员分享,可在线阅读,更多相关《JAVA大作业实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
JAVA大作业实验报告
JAVA课程设计
1题目及要求
构建一个使用jsp+javabean+servlet的MVC构架web应用,并提交相应文档。
以上课已给出的代码和应用模型为基础,完成基本功能,并增加一些应用模块,改变用户界面。
2系统设计
2.1构架模型
整个系统是基于jsp、javabean、servlet开发,其中数据库语句调用部分运用的是access的语句。
2.2开发平台、开发工具、系统服务器的选型
开发平台为NetBEAN7.1及JDK1.7,数据库开发平台为Microsoftofficeaccess2003,系统服务器选择的是TomcatApache7.0。
2.3相关技术介绍
NetBeans由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的JavaIDE。
NetBeans当前可以在Solaris、Windows、Linux和MacintoshOSX平台上进行开发,并在SPL(Sun公用许可)范围内使用。
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。
JDK是学好Java的第一步。
而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。
从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。
MicrosoftOfficeAccess(前名MicrosoftAccess)是由微软发布的关联式数据库管理系统。
它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的成员之一。
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
3系统结构及模块
3.1开发与设计的总体思想
3.1.1系统的组成
整个系统使用的是jsp+servlet+javabean的mvc模式建立的,所以在其中,jsp部分负责用户的可视部分,servlet负责处理用户提交的数据,javabean则负责由servlet进行处理后所使用的功能。
3.1.2jsp部分
Jsp部分设计了8个页面,其中index页面用来跳转至login页面,,login页面用来输入登录数据,welcome页面显示登录成功后可进行下一步操作的页面,logout页面显示用户登出后的状态,logo页面显示每页中都有的一个logo,message页面显示留言板的留言页面,showmessage页面显示留言板的内容。
3.1.3servlet部分
Servlet部分设计了3个,其中loginservlet用来处理用户登录时的数据,registerservlet用来处理用户注册时的数据,messageservlet用来处理用户运行留言板功能时的数据。
3.1.4javabean部分
Javabean部分设计了3个,其中databasebean用来连接access数据库,userdao用来进行用户在登录注册功能中对数据库的操作,messagedao用来进行用户在留言板功能中对数据库的操作。
3.2整个系统的结构,各模块之间的关系图
数据流图是对系统数据流向的一种描述,并从本质上让程序的使用者,大致了解系统的使用方法。
本登录系统的大致流程图如下:
图3-2数据流图
3.3系统中的MVC层次结构介绍
MVC是三个单词的缩写,分别为:
模型(Model),视图(View)和控制Controller)。
MVC模式的目的就是实现Web系统的职能分工。
Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。
View层用于与用户的交互,通常用JSP来实现。
Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
在这个登录系统中,视图(View)层为jsp,模型(Model)层为javabean,控制Controller)层为servlet。
视图层用于与用户进行登录用户、密码的输入,注册用户、密码、电子邮件的输入等程序与用户之间的交互;模型层用于连接数据库并对按用户需求提取出的数据库信息的操作;控制层用于在用户输入数据后对输入数据的处理及判断。
3.4各模块说明及介绍
3.4.1index.jsp
此页面中仅有一句代码,<%response.sendRedirect("login.jsp");%>
用于跳转至login.jsp中。
3.4.2login.jsp
此页面负责将用户输入的数据送给loginservlet处理或通过超链接进入register.jsp进行注册。
<%Stringnotice=(String)request.getAttribute("notice");%>
<%if(notice!
=null){%>
3.4.3register.jsp
此页面与login.jsp页面基本一样,负责将用户输入的数据送给registerservlet处理。
<%Stringnotice=(String)request.getAttribute("notice");%>
<%if(notice!
=null){%>
3.4.4welcome.jsp
此页面为用户成功登陆后由login.jsp转至的页面,作用为进行登出或其他功能的操作。
<%Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
<%=(String)session.getAttribute("username")%>用来取得在login.jsp中发出的username数据然后显示出来。
3.4.5logout.jsp
此页面为用户登出后的界面。
<%=(String)session.getAttribute("username")%>已经退出登录
用来接收前面所输入的username数据已显示。
<%session.removeAttribute("username");%>用来移除保存在session中的username数据,这样才可以在返回登陆页面后能重新输入用户数据进行登录。
3.4.6databasebean.java
此javabean用来连接数据库并定义一些变量来控制打开、更新、关闭数据库。
定义classDatabaseBean控制整个databasebean中的整体变量,publicDatabaseBean()用来打开数据库,publicbooleanupdate(Stringsql)用来更新数据库中sql所指向的内容,publicResultSetquery(Stringsql)用来提取sql中所指向的内容,publicbooleanisThereAnyResult(Stringsql)用来判断sql在数据库中提取的内容和用户输入的数据的相同与否,以ture和false返回。
3.4.7userdao.java
此javabean用来定义数据库查询语句sql及进行相关的数据库操作。
定义publicbooleanisValid(Stringusername,Stringpassword)用来提取Stringsql="select*fromuserwhereusername='"+username+"'andpassword='"+password+"'";的内容并使用publicbooleanisThereAnyResult(Stringsql)进行判断后的返回值来操作用户输入的用户密码是否存在或密码是否错误。
定义publicbooleanisExist(Stringusername)用来提取Stringsql="select*fromuserwhereusername="+username+"";的内容并使用publicbooleanisThereAnyResult(Stringsql)进行判断后的返回值来操作用户在注册是输入的用户名是否存在。
定义publicvoidadd(Stringusername,Stringpassword,Stringemail)用来使用Stringsql="insertintouser(username,password,email)values("+username+","+password+","+email+")";进行数据库的更新。
3.4.8loginservlet.java
此servlet用来处理输入的登录数据。
importjavabean.UserDAO;添加userdao到此servlet中,使用Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");用来提取在login.jsp中用户输入的数据,然后使用判断语句判断username=="",为真则返回notice为用户名未输入并传送至login.jsp,为假则使用userdao中的userDao.isValid(username,password),返回为真则将username保存至session中并跳转至welcome.jsp页面以显示登录成功,为假则返回notice为用户名、密码输入错误并传送至login.jsp。
3.4.9registrerservlet.java
此servlet用来处理输入的注册数据。
importjavabean.UserDAO;添加userdao到此servlet中,使用Stringusername=request.getParameter("username");
Stringpassword1=request.getParameter("password1");
Stringpassword2=request.getParameter("password2");
Stringemail=request.getParameter("email");用来提取在register.jsp中用户输入的用户名、密码、二次密码、电子邮件的数据,然后使用if(username.equals("")||password1.equals("")||password2.equals(""))进行用户名、密码、二次密码是否为空,若判断为真则返回notice为信息未输入完整并传送至register.jsp中,判断为假则再进行if(!
password1.equals(password2))判断密码与二次密码输入的数据是否相同,若判断为真则返回notice为两次输入密码不同并传送至register.jsp中,判断为假则使用userdao中的userDao.isExist(username),返回为真则返回notice为用户名已注册,请更换用户名并传送至registter.jsp中,为假则进行userDao.add(username,password2,email);的操作并返回notice为注册成功。
4系统界面截图
根据上面所介绍的本系统的各个模块及其需要实现的功能,下面详细设计如下:
4.1.系统主界面截图
首先显示登录界面:
若输入的用户名在数据库中不存在,则显示为:
然后点击注册新用户进入注册页面:
此处注册用户名为123,密码为123,email为123。
若确认密码中输入的不是123则显示:
注册成功则显示
使用注册的用户名和密码登录,显示weicome页面:
点击进入留言板,显示:
输入标题、留言内容后点击留言显示成功:
点击查看留言板,显示留言板内的内容:
5新增代码说明
新增代码为一个留言板功能,留言板的功能同样以MVC模型建立,其中,jsp部分负责用户的可视部分,servlet负责处理用户提交的数据,javabean则负责由servlet进行处理后所使用的功能。
Jsp层中使用了两个jsp,message为留言板输入页面,showmessage为显示留言板页面。
javabean层中使用了两个javabean,databasebean为连接数据库,messagedao用来进行用户在留言板功能中对数据库的操作。
Servlet层中使用了一个servlet,messageservlet用来处理用户运行留言板功能时的数据。
在message.jsp中,<%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";%>
<%=(String)session.getAttribute("username")%>用来取得在login.jsp中发出的username数据然后显示出来并发送至messageservlet中作为author的数据。
在showmessage.jsp中,使用<%while(rs.next()){out.print("
for(inti=1;i<=4;i++){out.print("
}out.print("
在messagedao.java中,定义publicvoidadd(Stringtitle,Stringcontent,Stringauthor)用来将servlet发送出的数据添加到数据库中,定义publicvoidshow(Stringtitle,Stringcontent,Stringauthor)用来提取数据库中的数据。
在messageservlet.java中,importjavabean.UserDAO;添加userdao到此servlet中,使用Stringtitle=request.getParameter("title");Stringcontent=request.getParameter("content");Stringauthor=request.getParameter("author");用来提取在message.jsp中用户输入的标题、内容和用户名的数据,然后使用if(title.equals("")||content.equals(""))进行标题、内容和用户名是否为空的判断,若判断为真则返回notice为未输入内容并传送至message.jsp中,判断为假则使用MessageDao中的MessageDao.add(title,content,author),的操作并返回notice为已发表。
添加新功能源代码如下:
--------------message.jsp---------------------------
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
<%
Stringnotice=(String)request.getAttribute("notice");
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
includepage="logo.jsp"/>登录成功
500px;border:
1pxsolid;">
留言标题:
留言内容:
用户:
<%if(notice!
=null){%>
--------------showmessage.jsp---------------------------
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
DOCTYPEhtml>
<%@pageimport=".*"%>
<%@pageimport="java.sql.*"%>
<%
Stringdrv="sun.jdbc.odbc.JdbcOdbcDriver";
Stringurl="jdbc:
odbc:
Driver={MicroSoftAccessDriver(*.mdb)};DBQ=d:
\\j.mdb";
Stringusr="";
Stringpwd="";
Stringsql="select*fromlyborderbytitle";
//orderbyidDESC
//"insertintomessage(TITLE,CONTENT,AUTHOR,COMPOSE_DATE)values('"+msg.getTitle()+"','"+msg.getContent()+"','"+msg.getAuthor()+"','"+msg.getStrDate()+"')"
//"deletefrommessagewhereID="+id+""
try{
Class.forName(drv);
Connectionconn=DriverManager.getConnection(url,usr,pwd);
Statementstm=conn.createStatement();
ResultSetrs=stm.executeQuery(sql);
%>
<%Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 作业 实验 报告