版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 太原理工大学毕业设计(论文)用纸 绪 论在Internet飞速发展的今天,电子数字计算机是20世纪重大科技发明之一,而互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在Internet应用上的地位显而易见,它已成为机关、学校、企事业单位、甚至进入寻常百姓家的信息化建设中的重要组成部分,从而倍受人们的重视。研究背景1.1.1 国内外研究现状及发展趋势传统的网站新闻管理方式有两种:一种是静态
2、HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,这种方式因为效率太低已不多用;另一种是基于JSP和脚本语言,将动态网页和数据库结合,通过应用程序来处理新闻,这是目前较为流行的做法。JSP是Sun公司推出的一种网站开发技术,Sun公司借助自己在Java上的不凡造诣,又把人们引进JSP时代,JSP即Java Server Page,它可以在Servlet和JavaBean的支持下,完成功能强大的Web应用程序。JSP网站架设将成为未来网站架设的趋势,而国内网站多数是用ASP,PHP技术实现的,而基于JSP的优秀网站较少。1.1.2 研究目的、意义和范围该新闻发布系统是在后台由人
3、工输入文章的内容,然后系统自动将文章内容整理保存(即存入数据库);用户在前台浏览到的均是系统自动产生的网页,所有过程均无需用户手工制作HTML网页的一种高效系统。该系统使用JSP和ORACLE数据库技术开发, 实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。该新闻系统具有一般新闻系统的功能,主要包括前台新闻查看区和后台管理区,可提供新闻发布与管理的服务。该系统是基于B/S(Browser/Server,浏览器/客户端)模式实现,基于jsp平台架构开发设计,主要实现对新闻的发布与管理功能,对新闻内容信息的浏览阅读等。 随着Internet/Intranet技术的兴起,将
4、原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。1.2 开发工具及技术1.2.1 开发工具Sun Microsystems公司在推出Java语言的同时,推出了一套开发工具JDK。Sun提供的基于字符模式的Java开发工具包JDK: Java开发工具(JDK)是许多Java专家最初使用的开发环境。Java是平台无关的语言是指用Java写的应用程
5、序不用修改就可在不同的软硬件平台上运行。Java源程序编写借助于记事本,Editpuls,UltraEdit等第三方编辑工具。所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。JDK 是整个Java的核心,包括了Java运行环境(Java RuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Jav
6、a的第一步。JDK里面是java类库和java的语言规范,它提供的是无论你用何种开发软件写java程序都必须用到的类库和java语言规范.没有jdk,你的java程序根本就不能用。 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把Su
7、n JDK掌握好。1.2.2 JSP JSP简介:JSP(Java Server Pages)是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP类似,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过JSP文件中嵌入的是JAVA代码和JSP标记。JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求,所以JSP也可以看成是运行时的Servlet。Servlet是JAVA对CGI的回应。它们在服务器上执行和解释浏览器的请求,承担客户端和其他应用程序之间的中间层的角色。Servlet主要是把动态的内容混合到静态的内容中以产生HT
8、ML。JSP页面在HTML元素中潜入JAVA脚本代码和JSP标记,使得文件长度变短,格式更加清晰。另一方面,JSP把静态和动态的内容分离开来,实现了内容和表示的分离。使用JSP,不需要单独配置每一个文件,只要扩展名是.jsp,JSP容器(也是Servlet容器)就会自动识别,将其转换为Servlet为客户端服务。术语WEB容器和JSP容器是同义的。JSP的运行原理:在JSP第一次获得来自于客户端浏览器的请求时,JSP文件将被JSP引擎(JSP engine)转换成一个Servlet,即将”.jsp”文件编译成Java Class文件。当Servlet引擎接收到请求后,如果设置了使用最新的JSP
9、,它就会去找JSP文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。在编译时如果发现JSP文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的Servlet代码被编译,然后该Servlet被JSP引擎加载到内存中。此时JSP引擎还请求了jspInit()方法的执行,并对此Servlet初始化。JspInit()方法在Servlet的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该JSP文件的请求,服务器将检查该JSP文件自最后一次被存取后是
10、否经过修改。如果没有修改,则将请求交还给还在内存中的Servlet的jspService()方法,执行回复操作。由于Servlet始终驻于内存,所以响应是非常快的。Jsp页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常得快。JSP页面的组成:JSP页面看上去像标准的HTML和XML页面,并附带有JSP引擎能够处理和解析执行的代码与组件。通常,JSP代码和组件用于创建在最终页面上显示的文本。通常来说,JSP页面包括编译指令,声明,表达式等内容。(1)编译指令:使用JSP编译指令(% 和 %内的)来指定所使用的脚本语言,Ser
11、vlet实现的接口,Servlet扩展的类,Servlet导入的软件包。JSP指令的一般语法形式为:。 (2)声明:用于声明合法的变量和方法。与任何语言相同,JSP语言使用变量来保存数据。这些变量用declaration元素声明,声明的语法为。当页面被初始化的时候,JSP页面中的所有声明都被初始化。除了简单的变量,方法也能被声明。声明不对当前的输出流产生任何影响。(3)表达式:通过计算表达式所得到的结果来表示某个值。表达式的形式为:。表达式求值的结果被强制转换为一个字符串,并插入到当前的输出流中。JSP的运行环境:要运行Jsp(注意,不是浏览Jsp页面),需要有支持Jsp的服务器。这里分2种情
12、况:一种是自身就支持Jsp的服务器,如Jrun,Weblogic,JSWDK等;而另一种则是在不支持Jsp的服务器上安装Jsp引擎的插件,如在IIS,Apache等服务器上安装WebSphere,tomcat,Resin等插件。其中主流服务器是Weblogic和tomcat.Tomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。访问的地址 http:/jakarta. /tomacat/index.html, Tomcat服务器的兼容性很好,如WebLogic服务器采用其为
13、Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。不足之处是它的配置比较麻烦,而且有一些安全性的问题没有解决。但是Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。1.2.3 JavaBeanJavaBean的技术介绍:JavaBean技术是一种基于Java的组件技术,JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据的提取等,是解决代码重用问题的一种策略。以前的组件无法实现真正的代码重用,其主要原因就是它们对于处理平台的依赖和对开发语言的依赖过重。由于Java语言在这些方面所具有
14、的特点和优势,使得基于它的软件JavaBean组件技术倍受人们的关注。它的任务就是:一次编写,可以在任何地方执行,可以在任何地方重用。JavaBean组件可以在任何地方冲用包括了可以在应用程序、其他组件、文档、Web站点和应用程序构造器工具等多种方案中再利用。为了创建和使用Java软件组件,JavaBean被实现为一种独立于平台和结构的应用程序接口,它的实现可忽略内部的结构及细节问题,只需要定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。JavaBean的实质就是一个.class文件,也可以成为类文件。JavaBean以binary格式保存,可以保护Java
15、源代码不容易被他人抄袭。1.2.4 ORACLEORACLE数据库介绍:ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。 提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。 支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。 提供了与第三代高级语言的接口软件PRO*系列,能在C,C+等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行
16、操纵。加上它有许多优秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端PC 平台的应用程序,并具有良好的移植性。 提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。Oracle也许是最流行的服务器,占有最大的市场份额,它被广泛用于各个市场领域,满足一系列的存储需求,例如财务记录,人力资源及订单编制等,造成这种现象的原因之一在于Oracle较早的进入RDBMS(关系型数据库管理系统)领域,并且提供可运行于大多数操作系统上的数据库版本,虽然Oracle的首选操作系统似乎正由Solaris转为
17、Linux,但是Oracle仍然在进行与其他操作系统的兼容工作,尽管Oracle经常在Unix或是Linux平台上运行,但是也有大量的Oracle在HP-UX和AIX上运行,随着几年前电子商务的激增,将会驱使Oracle成为WEB应用所需数据库的选择,这使数据库更容易受攻击者的控制。事实上,一旦Oracle从后台进入前端,那么人们会更多地关注它的安全方面。1.2.5 ServletServlet介绍:Servlet是使用JavaServlet应用程序设计接口(API)及相关类和方法的Java程序。除了JavaServletAPI,Servlet还可以使用用以扩展和添加到API的Java类软件包
18、。Servlet在启用Java的Web服务器上或应用服务器上运行并扩展了该服务器的能力。Javaservlet对于Web服务器就好象Javaapplet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。JavaServletAPI定义了一个servlet和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服
19、务器返回给客户机的响应。当启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。装入后,Servlet继续运行直到其它客户机发出请求。Servlet的功能涉及范围很广。例如,Servlet可完成如下功能:1、创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面。2、创建可嵌入到现有HTML页面中的一部分HTML页面(HTML片段)。3、与其它服务器资源(包括数据库和基于Java的应用程序)进行通信。4、用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet可以是多参与者的游戏服务器。5、当允许在单连接方式下传送数据的情况下,在浏
20、览器上打开服务器至applet的新连接,并将该连接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如IIOP)进行通信。6、对特殊的处理采用MIME类型过滤数据,例如图像转换和服务器端包括(SSI)。7、将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以修改如何认证用户。Servlet生命周期:Servlet的生命周期始于将它装入Web服务器的内存时,并在终止或重新装入Servlet时结束。1、初始化在下列时刻装入Servlet:如果已配置自动装入选项,则在启动服务器时自动装入在服务
21、器启动后,客户机首次向Servlet发出请求时重新装入Servlet时装入Servlet后,服务器创建一个Servlet实例并且调用Servlet的init()方法。在初始化阶段,Servlet初始化参数被传递给Servlet配置对象。2、请求处理对于到达服务器的客户机请求,服务器创建特定于请求的一个“请求”对象和一个“响应”对象。服务器调用Servlet的service()方法,该方法用于传递“请求”和“响应”对象。service()方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service()方法可以调用其它方法来处理请求,例如doGet()、doP
22、ost()或其它的方法。3、终止当服务器不再需要Servlet,或重新装入Servlet的新实例时,服务器会调用Servlet的destroy()方法。1.3 运行环境要求设备:客户机硬件要求:具有 Pentium III 处理器以上且满足以下要求的计算机:最低 64 MB 内存,最小 2.1 GB 硬盘。服务器硬件要求:具有 Pentium III 处理器以上且满足以下要求的计算机:最低 256MB 内存,最小 8 GB 硬盘。支持程序:1、客户端操作系统:Windows 98/NT/2000/XP或更高版本浏览器:IE 5.0以上或Netscape同等版本以上2、服务器操作系统:Windo
23、ws 2000 Server或者Windows 2003 ServerWeb服务器:MS IIS应用服务器:TOMCAT6.0应用服务器数据库:ORACLE 2 需求分析2.1 功能需求该系统的用户为新闻网站,需要经常发布一些新闻,如何能有效地管理和发布新闻呢?最初用户的需求为:“该新闻系统具有一般新闻系统的功能,同时具有新闻审核和不同管理员不同管理权限的功能” 。通过对其它一些新闻系统的调查发现,一般新闻系统功能如下:1、前台按分类显示新闻;2、搜索新闻;3、后台管理:添加、删除和修改新闻 添加、删除和修改用户添加、删除和修改新闻分类添加新闻根据网站新闻发布管理的实际需求,在首页中能显示最热
24、门新闻、头条新闻和最近发布的几条新闻等,同时在后台发布新闻时可以添加图片,也可以添加HTML语法,在前台能自动根据所显示的图片和HTML语法来显示新闻。在后台管理中,因为有权限的管理员才能登录管理后台,所以需要有个登录验证模块,而且需要根据用户权限的不同显示不同的管理目录,在管理新闻和用户时,当数据少时管理起来还比较方便,如果一多则想找到某条新闻或某个用户就很难,所以需要有个查找(新闻标题、用户)模块用于查找新闻或用户。根据以上需求分析,该系统要实现的主要功能为:1、前台显示新闻部分: 用户登录区 显示最热门的前几条新闻 显示推荐的前几条新闻 显示最新的前几条新闻 搜索新闻功能 显示所有新闻分
25、类 按分类/部门显示其下的所有新闻 新闻详细信息浏览阅读 新闻详细信息下的用户评论2、后台管理部分: 登录验证 添加、修改和删除新闻 管理发布新闻 管理发布公告管理留言 管理新闻类别 用户管理2.2 性能需求该系统在性能功能上应达到如下需求:操作简单、界面友好: 完全控件式的页面布局,使得新闻的录入工作更简便,许多选项包括新闻分类、来源部门等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见网站的新闻管理的各个方面:新闻录入、浏览、删除、修改、搜索等方面都大体实现,实现了网站对即时新闻的管理要求; 即时可见:对新闻的处理(包括录入、修改、删除)将立即在主页
26、的对应栏目显示出来,达到“即时发布、即时见效”的功能;系统运行应该快速、稳定、高效和可靠;在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。3 总体设计3.1 新闻系统的结构模型该系统的模型结构如图3-1所示。客户端客户端浏览器客户端浏览器客户端浏览器Web层业务层数据访问层系统配置数据库图3-1 新闻系统的模型结构图示该系统结构分为三个逻辑层:Web 层:Web层为客户端浏览器提供对应用程序的访问,这一层是作为解决方案文件中的 Web 项目实现的。Web 层由 JSP.NET Web 窗体和代码隐藏文件组成,Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处
27、理程序; 业务层:包含各种业务规则和逻辑的实现,业务规则完成如客户帐户的验证和字符串处理这样的任务;数据访问层:数据访问层为业务层提供数据服务,这一层是作为解决方案文件中的 Conn类(数据访问类,实现公共操作的一个通用类)实现的;3.2 新闻系统功能描述及功能模块图图3-2列出系统的功能模块图。新闻评论新闻查看留言新闻评论新闻查看留言新闻发布理退 出新闻系统首页开 始新闻搜索图3-2 系统的功能模块图工作流程为:打开该系统网站,普通浏览者能浏览、阅读和搜索新闻,能进行注册,注册后为新闻输入员,登录进入新闻后台管理区, 只有添加新闻的权限;如登录时为新闻审核员,其不但有添加新闻的权限,还有审核
28、和管理新闻的权限;如为系统管理员,其有新闻后台管理区内的所有权限,除具有新闻审核员所有的权限外,还有添加和管理新闻分类、添加和管理用户、系统、风格和友情链接设置。在添加新闻时,除常规的添加新闻标题、新闻内容、新闻作者和新闻简介外,还可选择是否为首页新闻、是否为推荐新闻和是否在首页滚动图片(上传图片)等,对新闻内容的字体、字号和字体颜色可以调整,类似Word的一些简单的编辑功能,还可设置超链接和插入表格等。如添加新闻者为新闻输入员,其所添加的新闻需要系统管理员或审核员经审核后才能发布到网上;如是管理员或者审核员添加新闻的话,不需要再经谁审核,直接可以发布到网上。管理新闻功能包括对任一条新闻内容可
29、作相应修改,也可删除任何一条不再需要保留的新闻。管理新闻分类包括对新闻分类名称作修改,也可将任一分类名删除,删除后其分类下的所有新闻也将被删除。添加用户时,用户等级可为管理员、审核员或者输入员之一,管理用户包括修改用户名、密码和用户等级,也可将任一用户删除。系统设置包括设置网站标题、网站地址、首页图片、网站公告(可用来显示当前有哪些新闻输入员所添加的新闻没有通过审核,具体的原因理由等)、网站链接(此文本内容可更改)和底部信息(可放置一些与站点相关的文本内容等),对系统设置里的内容,随时可做相应的修改,这权限只有系统管理员才拥有。风格设置指从系统八种风格里任选一种作为当前网站的默认风格。友情链接
30、主要是以图片的形式链接到其它网站,作用跟系统设置里的网站链接功能一样。系统功能模块划分: 从功能描述的内容可以看到,本系统可以实现五个完整的功能。根据这些功能,设计出系统的功能模块,如图3-3所示。图3-3 新闻发布总体系统功能模块示意图3.3 数据库设计1.ER关系图ER关系模型如图。评论信息拥有评论新闻信息评论信息拥有评论新闻信息 M 1新闻类别信息属于类别新闻类别信息属于类别 1 1图3-4 ER关系模型图2.实体属性图根据分析可划分出新闻信息、新闻类别信息、评论信息和用户信息和几个实体,对应的实体图分别如图3-5至图3-8所示。(1) 新闻信息新闻内容新闻类别新闻内容新闻类别发布时间新
31、闻标题发布时间新闻标题新闻信息新闻信息新闻ID新闻点击率新闻ID新闻点击率 图3-5 新闻信息实体的E-R模型(2) 评论信息评论者姓名评论内容评论者姓名评论内容评论ID评论时间评论ID评论时间评论信息评论信息 图3-6 评论信息实体的E-R模型(3) 用户信息密码用户名密码用户名用户信息用户信息图3-7 用户信息实体的E-R模型(4)新闻类别信息类别ID类别名称类别ID类别名称新闻类别信息新闻类别信息图3-8 新闻类别信息实体的E-R模型3.3.2 数据流图1、前台数据流图 图3-9 前台的数据流图数据库中有两个表用于前台的数据的存放,新闻信息表newsinfo中存放新闻的内容,标题,点击量
32、等数据,通过各种命令与前台进行数据交换。留言信息表存放用户的留言。前台的数据流图如图3-9所示。2、后台数据流图后台的数据流图如图3-10所示。评论操作信息评论操作结果 评论操作信息评论操作结果 图3-10 后台数据流图3.3.3 表结构设计本系统采用oracle数据库,表的结构分别如表3-1至表3-7所示。(1)公告表 T_GONGGAO表3-1 公告表 T_GONGGAO字段名称数据类型说明IDVARCHAR2(50)不能为空TITLEVARCHAR2(500)公告标题CONTENTVARCHAR2(4000)公告内容SHIJIANVARCHAR2(50)发布时间(2)留言表 T_LIUY
33、AN表3-2 留言表 T_LIUYAN字段名称数据类型说明IDVARCHAR2(50)不能为空TITLEVARCHAR2(50)留言标题CONTENTVARCHAR2(4000)留言内容SHIJIANVARCHAR2(50)留言发布时间USER_IDVARCHAR2(50)留言用户ID(3)新闻表 T_NEWS表3-3 新闻表 T_NEWS字段名称数据类型说明IDVARCHAR2(50)不能为空CATELOG_IDVARCHAR2(50)新闻类别TITLEVARCHAR2(500)新闻标题CONTENTVARCHAR2(4000)新闻内容SHIJIANVARCHAR2(50)新闻发布时间DEL
34、VARCHAR2(50)新闻是否删除(4)用户表 T_USER表3-4 用户表 T_USER字段名称数据类型说明IDVARCHAR2(50)不能为空LOGINNAMEVARCHAR2(50)用户登陆名LOGINPWVARCHAR2(50)用户登陆密码NAMEVARCHAR2(50)姓名SEXVARCHAR2(50)性别AGEVARCHAR2(50)年龄ADDRESSVARCHAR2(50)地址TELVARCHAR2(50)电话EMALLVARCHAR2(50)电子邮箱QQVARCHAR2(50)QQDELVARCHAR2(50)是否删除(5)管理员 T_ADMIN表3-5 管理员 T_ADMI
35、N字段名称数据类型说明USERIDNUMBER(4)不能为空USERNAMEVARCHAR2(50)管理员名USERPEVARCHAR2(50)管理员登陆密码(6)新闻类别 T_CATELOG表3-6 新闻类别 T_CATELOG字段名称数据类型说明IDVARCHAR2(50)不能为空NAME1VARCHAR2(50)新闻类别名称DELVARCHAR2(50)新闻类别是否删除(7)新闻评论 T_PINGLUN表3-7 新闻评论 T_PINGLUN字段名称数据类型说明IDVARCHAR2(50)不能为空CONTENTVARCHAR2(4000)留言内容SHIJIANVARCHAR2(50)留言发
36、布时间USER_ID VARCHAR2(50)留言用户ID4 详细设计4.1 首页的设计4.1.1 功能描述及实现的界面首页:主要功能是显示最热门、最新和推荐的新闻,显示新闻搜索功能、页面新闻分类、公告,用户登录等,如图4-1所示。图4-1 首页新闻详细内容查看页:在首页里点击新闻标题所进入的页面,显示当前所点击新闻的详细内容,新闻标题正中加粗显示,在添加新闻时,根据所编辑的新闻内容对应显示,如图4-2所示。图4-2 新闻详细内容查看页4.1.2 代码前台首页显示:public void service(HttpServletRequest req,HttpServletResponse re
37、s)throws ServletException, IOException List gonggaoList=new ArrayList();String sql=select * from t_gonggao order by id desc;Object params=;DB mydb=new DB();trymydb.doPstm(sql, params);ResultSet rs=mydb.getRs();while(rs.next()Tgonggao gonggao=new Tgonggao();gonggao.setId(rs.getString(id);gonggao.setT
38、itle(rs.getString(title);gonggao.setContent(rs.getString(content);gonggao.setShijian(rs.getString(shijian);gonggaoList.add(gonggao); rs.close();4.2 注册登录模块的设计4.2.1 功能描述及实现的界面用户注册界面:用户要想在本网站购买商品就必须要去注册成为本网站的会员,只需点击“注册”,如图4-3所示。图4-3 用户注册界面用户在填写完信息后即可提交信息,如果发现填写的信息有误可以马上点击“清除”重添,用户最好记住自己所添写的信息,特别是“密码提示”
39、和“密码答案”,因为这可以为你找回密码。在提交的过程中将会有一个脚本语言函数对用户提交的信息的要求及信息格式的正确性进行判断用户登录界面:用户填写已注册的用户名和密码登录系统,如图4-4所示。图4-4 用户登陆页面用户一旦成为本网站的会员后,即可在登陆页面中登陆,用户只要输入自己的用户名和密码即可实现登陆。这里有JSP函数对用户名和密码进行判断,以此来保证用户的合法性。4.2.2 代码用户管理:public void userReg(HttpServletRequest req,HttpServletResponse res)String id=String.valueOf(new Date(
40、).getTime();String loginname=req.getParameter(loginname);String loginpw=req.getParameter(loginpw);String name=req.getParameter(name);String sex=req.getParameter(sex);String age=req.getParameter(age);String address=req.getParameter(address);String tel=req.getParameter(tel);String email=req.getParamet
41、er(email);String qq=req.getParameter(qq);String del=no;String sql=insert into t_user values(?,?,?,?,?,?,?,?,?,?,?);Object params=id,loginname,loginpw,name,sex,age,address,tel,email,qq,del;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed(); String targetURL = /common/add_success.jsp;dispatch(tar
42、getURL, req, res);public void userLogout(HttpServletRequest req,HttpServletResponse res)req.getSession().setAttribute(user, null);String targetURL = /qiantai/default.jsp;dispatch(targetURL, req, res);4.3 管理员登录模块的设计4.3.1 功能描述及实现的界面管理员登陆界面:登陆的用户名和密码必须是已经保存在数据表T_ADMIN中的数据信息如图4-5所示。图4-5 管理员登陆界面4.3.2 代码登
43、录验证:if(userType=0)/系统管理员登陆String sql=select * from t_admin where userName=? and userPw=?;Object params=userName,userPw;DB mydb=new DB();mydb.doPstm(sql, params);try ResultSet rs=mydb.getRs();boolean mark=(rs=null|!rs.next()?false:true);if(mark=false) result=no;else result=yes; TAdmin admin=new TAdmi
44、n(); admin.setUserId(rs.getInt(userId); admin.setUserName(rs.getString(userName); admin.setUserPw(rs.getString(userPw); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute(userType, 0); session.setAttribute(admin, admin);rs.close(); catch (SQLExceptio
45、n e)System.out.println(登录失败!);e.printStackTrace();finallymydb.closed();4.4 修改登录密码模块的设计4.4.1 功能描述及实现的界面修改登陆密码页面:用户可以通过两次输入新密码修改现有密码如图4-6所示。图4-6 修改登陆密码页面4.4.2 代码修改登录密码:public String adminPwEdit(String userPwNew) System.out.println(DDDD); try Thread.sleep(700); catch (InterruptedException e)e.printStac
46、kTrace();WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); TAdmin admin=(TAdmin)session.getAttribute(admin);String sql=update t_admin set userPw=? where userId=?;Object params=userPwNew,admin.getUserId();DB mydb=new DB();mydb.doPstm(sql, params);return yes; 4.5 注册用户管理模块
47、的设计4.5.1 功能描述及实现的界面注册用户管理页面:管理员可以对已注册用户进行删除如图4-7所示。图4-7 注册用户管理页面4.5.2 代码public void userMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOExceptionList userList=new ArrayList();String sql=select * from t_user where del=no;Object params=;DB mydb=new DB();trymydb.doPstm(s
48、ql, params);ResultSet rs=mydb.getRs();while(rs.next()Tuser user=new Tuser();user.setId(rs.getString(id);user.setLoginname(rs.getString(loginname);user.setLoginpw(rs.getString(loginpw);user.setLoginpw(rs.getString(loginpw);user.setName(rs.getString(name);user.setSex(rs.getString(sex);user.setAge(rs.g
49、etString(age);user.setAddress(rs.getString(address);user.setTel(rs.getString(tel);user.setEmail(rs.getString(email);user.setQq(rs.getString(qq);userList.add(user); rs.close();mydb.closed();req.setAttribute(userList, userList);req.getRequestDispatcher(admin/user/userMana.jsp).forward(req, res);4.6 公告
50、管理模块的设计4.6.1 功能描述及实现的界面公告管理页面:管理员可以对公告进行查看、添加、删除等操作如图4-8所示。图4-8 公告管理页面4.6.2 代码公告管理:public void gonggaoAdd(HttpServletRequest req,HttpServletResponse res)String id=String.valueOf(new Date().getTime();String title=req.getParameter(title);String content=req.getParameter(content);String shijian=new Date
51、().toLocaleString();String sql=insert into t_gonggao values(?,?,?,?);Object params=id,title,content,shijian;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req.setAttribute(path, gonggao?type=gonggaoMana); String targetURL = /common/success.jsp;dispatch(target
52、URL, req, res);4.7 新闻类别管理模块的设计4.7.1 功能描述及实现的界面新闻类别管理页面:管理员可以对新闻类别进行添加、删除处理,如图4-9所示。图4-9 新闻类别管理页面4.7.2 代码新闻类别删除:public void catelogDel(HttpServletRequest req,HttpServletResponse res)String id=req.getParameter(id);String sql=update t_catelog set del=yes where id=?;Object params=id;DB mydb=new DB();myd
53、b.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req.setAttribute(path, catelog?type=catelogMana); String targetURL = /common/success.jsp;dispatch(targetURL, req, res);4.7.3 功能描述及实现的界面新闻类别添加页面:管理员添加新闻类别如图4-10所示。图4-10 新闻类别添加页面4.7.4 代码新闻类别添加:public void catelogAdd(HttpServletRequest
54、 req,HttpServletResponse res)String id=String.valueOf(new Date().getTime();String name1=req.getParameter(name1);String del=no;String sql=insert into t_catelog values(?,?,?);Object params=id,name1,del;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req.setAttri
55、bute(path, catelog?type=catelogMana); String targetURL = /common/success.jsp;dispatch(targetURL, req, res);4.8 新闻信息管理模块的设计4.8.1 功能描述及实现的界面新闻信息管理页面:管理员对新闻的查看、添加、删除处理,如图4-11所示。图4-11 新闻信息管理页面4.8.2 代码新闻信息管理:public void newsMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOE
56、xceptionList newsList=new ArrayList();String sql=select * from t_news where del=no;Object params=;DB mydb=new DB();trymydb.doPstm(sql, params);ResultSet rs=mydb.getRs();while(rs.next()Tnews news=new Tnews();news.setId(rs.getString(id);news.setCatelog_id(rs.getString(catelog_id);news.setTitle(rs.getS
57、tring(title);news.setContent(rs.getString(content);news.setShijian(rs.getString(shijian);news.setDel(rs.getString(del);news.setCatelog_name(liuService.getCatelogName(rs.getString(catelog_id);newsList.add(news); rs.close();catch(Exception e)e.printStackTrace();mydb.closed();req.setAttribute(newsList,
58、 newsList);req.getRequestDispatcher(admin/news/newsMana.jsp).forward(req, res);4.8.3 功能描述及实现的界面新闻输入员页面:新闻输入员只具有添加新闻的权限,任何浏览者都可注册成为新闻输入员,但所添加的新闻并不能直接发布到网站上显示,而需经过审核员或管理员审核是否给予通过,这保证了网站内容管理的合理性,并不是随便添加的新闻都能发布如图4-12所示。图4-12 新闻输入员页面4.8.4 代码新闻信息添加:public void newsAdd(HttpServletRequest req,HttpServletRes
59、ponse res)String id=String.valueOf(new Date().getTime();String catelog_id=req.getParameter(catelog_id);String title=req.getParameter(title);String content=req.getParameter(content);String shijian=new Date().toLocaleString();String del=no;String sql=insert into t_news values(?,?,?,?,?,?);Object param
60、s=id,catelog_id,title,content,shijian,del;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req.setAttribute(path, news?type=newsMana); String targetURL = /common/success.jsp;dispatch(targetURL, req, res);4.9 留言信息管理模块的设计4.9.1 功能描述及实现的界面留言信息管理页面:管理员对留言信息的处理,如图4-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州城市职业学院《信息系统审计》2023-2024学年第一学期期末试卷
- 贵州财经大学《工业机器人本体设计》2023-2024学年第一学期期末试卷
- 2025年上海市安全员C证考试题库
- 2025云南省建筑安全员-B证(项目经理)考试题库
- 2025年上海市安全员知识题库及答案
- 广州珠江职业技术学院《汽车电子控制技术》2023-2024学年第一学期期末试卷
- 2025年河北建筑安全员《C证》考试题库
- 2025广东省安全员C证考试(专职安全员)题库附答案
- 广州应用科技学院《中国文化史》2023-2024学年第一学期期末试卷
- 广州新华学院《光电成像原理与技术》2023-2024学年第一学期期末试卷
- 2025版工业制造工程垫资建设合同2篇
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之4:4组织环境-4.2理解相关方的需求和期望(雷泽佳编制-2025B0)
- 2024年一级支行行长竞聘演讲稿例文(4篇)
- 健身房销售人员培训
- 菌种保存管理
- 广东省广州市2022-2023学年高二上学期期末考试化学试题
- 期末测试卷(试题)-2024-2025学年四年级上册数学沪教版
- 中考必备高频词汇2600词(单词版)
- GB∕T 27552-2021 金属材料焊缝破坏性试验 焊接接头显微硬度试验
- 外贸中常见付款方式的英文表达及简要说明
- 抗压偏压混凝土柱承载力计算表格
评论
0/150
提交评论