企业论坛系统.docx
《企业论坛系统.docx》由会员分享,可在线阅读,更多相关《企业论坛系统.docx(52页珍藏版)》请在冰豆网上搜索。
企业论坛系统
摘要
在现代社会,人与人之间的沟通方式有很多种,例如发Email,QQ聊天等等。
但是这些沟通方式都需要在知道对方联系方式的情况下才能进行。
如果需要和所有网民进行交流,这时就需要使用另外一种工具,那就是论坛。
通过论坛,每个人都可以浏览自己感兴趣的主题,还可以发表自己的主题,也可以回复别人发表了的主题。
企业论坛系统就是这样一套系统。
系统利用MyEclipse6.5软件和MySQL数据库做了一个简单的企业论坛网站,具体可分为前台和后台的管理,实现了对版块信息浏览、用户注册及登录、版块回复及新版块发布和版块管理的统一管理。
论文从软件工的角度,阐述了整个开发过程,包括系统的可行性分析、系统使用语言及开发工具的介绍、需求分析、数据库的需求分析以及设计、系统的总体设计和系统完成以后的测试。
关键词:
企业论坛系统;myEclipse6.5;MYSQL
Abstract
Inmodernsociety,communicationbetweenpeopleinavarietyofways,suchasEmail,QQchatandsoon.Butthesemodesofcommunicationareneededtoknoweachotherincontactsituationscanbecarriedout.Ifneeded,andalluserscommunicate,thenneedtouseanothertool,thatisforum.Throughtheforum,everyonecannavigatetheirtopicofinterest,canalsoexpresstheirtheme,alsocanreplytootherpublishedtheme.Enterpriseforumsystemissuchasystem.
ThesystemusesthesoftwareofMyEclipse6.5andMySQLdatabasetodoasimplecorporatewebsite,theconcretecanbedividedintofrontandback-officemanagement,realizethesectioninformationbrowsing,theuserregistrationandlogin,viewandnewreleasesandreplyblocksectionmanagementmanagement.
Papersfromthesoftwareengineeringperspective,expoundedthewholedevelopmentprocess,includingthesystemfeasibilityanalysis,systemusinglanguagesanddevelopmenttoolsareintroduced,thedemandanalysis,databasedemandanalysisandthedesign,theoveralldesignofthesystemandthesystemafterthecompletionoftesting.
Keywords:
EnterpriseForumsystem;myEclipse6.5;MYSQL
1绪论
1.1研究课题的背景和可行性分析
1.1.1研究课题的背景
在当代社会,人与人之间的沟通方式有许多种,比如说发Email,QQ聊天等。
但是这些沟通方式都需要在知道对方联系方式的情况下才能进行。
那么如果需要在未知对方联系方式的前提下进行交流,例如对某些时事的看法,或者对一些书本的看法交流等等,这时就需要使用另外一种工具,论坛就是这样的一种工具。
通过论坛,每个人都可以浏览自己感兴趣的主题,还可以发表自己的主题,也可以回复别人发表了的主题。
1.1.2技术可行性分析
对于一个论坛系统来说,需要提供前台展现和后台管理两个子系统。
其中后台管理系统用来供管理员使用,能够对论坛的版块、子版块信息进行管理。
前台展现系统可供所有网友使用,只要网友进入了论坛系统,就能够浏览其他网友已经发表的主题。
用户也可以发表自己感兴趣的主题,不过前提是要登录系统,所以该系统还需要提供注册和登录功能,不过默认所有前台注册的用户为普通用户。
用户在登录系统后,还可以回复别人发表的主题,从而实现网友之间的互动。
所以可以使用JSP做页面显示,用servlet做控制层,协调页面链接,javabean做实体模型
1.2系统实现技术简介
1.2.1JAVA的特点
这是我对java特点的一些理解及其归纳:
(1)java的简单性:
和C++相比,语法简单了,取消了指针的语法;内存分配和回收不需要我们来过渡关注,C++可以多继承,但java只能是单继承,相对于类来说。
(注:
接口可以多继承)
(2)java面向对象:
java算是纯面向对象。
在java编程思想这本书说过,“Everythingisobject!
”这样便于人类的构思和设计,更符合人们的思考问题方式
(3)分布式:
主要还是用在EJB上
(4)安全性:
java的语法限定了源程序的安全性,首先编译器会进行源代码的第一步检查
(5)跨平台:
java能够跨越不同的操作系统平台,平台无关性怎么跨平台呢?
主要是在不同的操作系统中,JVM规范都是一样的,被JVM加载成各个操作系统所支持的,屏蔽了底层操作系统的差异
(6)高性能:
开闭原则---对扩展开放,对修改关闭java是即时编译的
(7)多线程:
Java开发的流程:
(1)、首先编辑.java源程序
(2)、编译成.class字节码文件bytecode(一种二进制文件)(3)、最后被java虚拟机(JVM)加载解释并执行。
1.2.2web组件介绍
(1)Servlet简介
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
(2)Servlet生命周期介绍
装载Servlet。
这项操作一般是动态执行的。
然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化特定的Servlet。
Server创建一个Servlet的实例
Server调用Servlet的init()方法
一个客户端的请求到达Server
Server创建一个请求对象
Server创建一个响应对象
Server激活Servlet的service()方法,传递请求和响应对象作为参数
service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。
service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法。
对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。
如此重复以上的循环,但无需再次调用init()方法。
一般Servlet只初始化一次(只有一个对象),当Server不再需要Servlet时(一般当Server关闭时),Server调用Servlet的Destroy()方法
(3)jsp简介
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行
(4)jsp的九大内置对象
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应)
request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是HttpServletRequest类的实例。
API方法说明
objectgetAttribute(Stringname)返回指定属性的属性值
EnumerationgetAttributeNames()返回所有可用属性名的枚举
StringgetCharacterEncoding()返回字符编码方式
intgetContentLength()返回请求体的长度(以字节数)
StringgetContentType()得到请求体的MIME类型
ServletInputStreamgetInputStream()得到请求体中一行的二进制流
StringgetParameter(Stringname)返回name指定参数的参数值
EnumerationgetParameterNames()返回可用参数名的枚举
String[]getParameterValues(Stringname)返回包含参数name的所有值的数组
StringgetProtocol()返回请求用的协议类型及版本号
StringgetScheme()返回请求用的计划名,如:
http.https及ftp等
StringgetServerName()返回接受请求的服务器主机名
intgetServerPort()返回服务器接受此请求所用的端口号
BufferedReadergetReader()返回解码过了的请求体
StringgetRemoteAddr()返回发送此请求的客户端IP地址
StringgetRemoteHost()返回发送此请求的客户端主机名
voidsetAttribute(Stringkey,Objectobj)设置属性的属性值
StringgetRealPath(Stringpath)返回一虚拟路径的真实路径
response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
它是HttpServletResponse类的实例。
API方法说明
StringgetCharacterEncoding()返回响应用的是何种字符编码
ServletOutputStreamgetOutputStream()返回响应的一个二进制输出流
PrintWritergetWriter()返回可以向客户端输出字符的一个对象
voidsetContentLength(intlen)设置响应头长度
voidsetContentType(Stringtype)设置响应的MIME类型
sendRedirect(java.lang.Stringlocation)重新定向客户端的请求
session对象
session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
它是HttpSession类的实例.
API方法说明
longgetCreationTime()返回SESSION创建时间
publicStringgetId()返回SESSION创建时JSP引擎为它设的惟一ID号
longgetLastAccessedTime()返回此SESSION里客户端最近一次请求时间
intgetMaxInactiveInterval()返回两次请求间隔多长时间此SESSION被取消(ms)
String[]getValueNames()返回一个包含此SESSION中所有可用属性的数组
voidinvalidate()取消SESSION,使SESSION不可用
booleanisNew()返回服务器创建的一个SESSION,客户端是否已经加入
voidremoveValue(Stringname)删除SESSION中指定的属性
voidsetMaxInactiveInterval()设置两次请求间隔多长时间此SESSION被取消(ms)
out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
API方法说明
voidclear()清除缓冲区的内容
voidclearBuffer()清除缓冲区的当前内容
voidflush()清空流
intgetBufferSize()返回缓冲区以字节数的大小,如不设缓冲区则为0
intgetRemaining()返回缓冲区还剩余多少可用
booleanisAutoFlush()返回缓冲区满时,是自动清空还是抛出异常
voidclose()关闭输出流
page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
API方法说明
classgetClass返回此Object的类
inthashCode()返回此Object的hash码
booleanequals(Objectobj)判断此Object是否与指定的Object对象相等
voidcopy(Objectobj)把此Object拷贝到指定的Object对象中
Objectclone()克隆此Object对象
StringtoString()把此Object对象转换成String类的对象
voidnotify()唤醒一个等待的线程
voidnotifyAll()唤醒所有等待的线程
voidwait(inttimeout)使一个线程处于等待直到timeout结束或被唤醒
voidwait()使一个线程处于等待直到被唤醒
voidenterMonitor()对Object加锁
voidexitMonitor()对Object开锁
application对象
application对象实现了用户间数据的共享,可存放全局变量。
它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。
服务器的启动和关闭决定了application对象的生命。
它是ServletContext类的实例。
API方法说明
ObjectgetAttribute(Stringname)返回给定名的属性值
EnumerationgetAttributeNames()返回所有可用属性名的枚举
voidsetAttribute(Stringname,Objectobj)设定属性的属性值
voidremoveAttribute(Stringname)删除一属性及其属性值
StringgetServerInfo()返回JSP(SERVLET)引擎名及版本号
StringgetRealPath(Stringpath)返回一虚拟路径的真实路径
ServletContextgetContext(Stringuripath)返回指定WebApplication的application对象
intgetMajorVersion()返回服务器支持的ServletAPI的最大版本号
intgetMinorVersion()返回服务器支持的ServletAPI的最大版本号
StringgetMimeType(Stringfile)返回指定文件的MIME类型
URLgetResource(Stringpath)返回指定资源(文件及目录)的URL路径
InputStreamgetResourceAsStream(Stringpath)返回指定资源的输入流
RequestDispatchergetRequestDispatcher(Stringuripath)返回指定资源的RequestDispatcher对象
ServletgetServlet(Stringname)返回指定名的Servlet
EnumerationgetServlets()返回所有Servlet的枚举
16EnumerationgetServletNames()返回所有Servlet名的枚举
voidlog(Stringmsg)把指定消息写入Servlet的日志文件
voidlog(Exceptionexception,Stringmsg)把指定异常的栈轨迹及错误消息写入Servlet的日志文件
voidlog(Stringmsg,Throwablethrowable)把栈轨迹及给出的Throwable异常的说明信息写入Servlet的日志文件
exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。
如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。
他实际上是java.lang.Throwable的对象
API方法说明
StringgetMessage()返回描述异常的消息
StringtoString()返回关于异常的简短描述消息
voidprintStackTrace()显示异常及其栈轨迹
ThrowableFillInStackTrace()重写异常的执行栈轨迹
pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
API方法说明
JspWritergetOut()返回当前客户端响应被使用的JspWriter流(out)
HttpSessiongetSession()返回当前页中的HttpSession对象(session)
ObjectgetPage()返回当前页的Object对象(page)
ServletRequestgetRequest()返回当前页的ServletRequest对象(request)
ServletResponsegetResponse()返回当前页的ServletResponse对象(response)
ExceptiongetException()返回当前页的Exception对象(exception)
ServletConfiggetServletConfig()返回当前页的ServletConfig对象(config)
ServletContextgetServletContext()返回当前页的ServletContext对象(application)
voidsetAttribute(Stringname,Objectattribute)设置属性及属性值
voidsetAttribute(Stringname,Objectobj,intscope)在指定范围内设置属性及属性值
publicObjectgetAttribute(Stringname)取属性的值
ObjectgetAttribute(Stringname,intscope)在指定范围内取属性的值
publicObjectfindAttribute(Stringname)寻找一属性,返回起属性值或NULL
voidremoveAttribute(Stringname)删除某属性
voidremoveAttribute(Stringname,intscope)在指定范围删除某属性
intgetAttributeScope(Stringname)返回某属性的作用范围
EnumerationgetAttributeNamesInScope(intscope)返回指定范围内可用的属性名枚举
voidrelease()释放pageContext所占用的资源
voidforward(StringrelativeUrlPath)使当前页面重导到另一页面
voidinclude(StringrelativeUrlPath)在当前位置包含另一文件
config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
API方法说明
ServletContextgetServletContext()返回含有服务器相关信息的ServletContext对象
StringgetInitParameter(Stringname)返回初始化参数的值
EnumerationgetInitParameterNames()返回Servlet初始化所需所有参数的枚举
1.2.3MyEclipse6.5版本简介
(1)平台和安装支持
兼容Eclipse3.3/Europa1.0
支持Java5&Java6
可运行在Windows(XP,Vista)、Linux、Mac操作系统
(2)改进了JavaEE5和Spring功能部件
提高EJB3工程项目的灵活度,从数据库模式直接产生bean
支持Java持久化结构开发
对Spring2.0升级,增强配置管理功能
升级Hibernate
Spring-JPA高度集成
(3)支持AJAX开发和测试
支持美