web开发论坛系统报告
基于BBS论坛系统设计与实现

目录1 背景及意义 (II)2系统总体设计 (3)1 系统目标 (3)2系统功能划分 (4)1 前台功能结构 (4)2 后台功能结构 (5)3 系统开发环境 (5)1 开发环境 (6)2 系统平台体系结构的选择 (6)3 JAVASCRIPT语言简介及特点 (6)4 JSP概述 (6)5 MYSQL (7)6 JDBC技术 (7)3数据库设计 (8)3.1 数据库分析 (9)3。
2 数据库概念设计 (VI)3。
3 数据库的逻辑设计 (VI)4系统详细设计与实现 (VIII)4。
1 前台设计 (VIII)1 前台页面设计与实现 (VIII)2 用户登录、管理员登录 (14)3 论坛版块的展示 (14)4 发表新主题 (15)5 查看及回复主题 (15)4。
2 后台设计 (16)1 管理员登录 (16)2用户信息管理 (17)结束语 (17)参考文献 (18)1、背景及意义网络的兴起与发展,极大地改变了人们的思维和行为习惯。
基于网络的应用也层出不穷,论坛就是最早兴起的应用之一。
作为一种传递消息的方式,最早的BBS的作用是公布股市的即时消息,而随着时代的发展,现在的BBS的内容已达到无所不包的程度。
小到生活趣事,大到专业知识,各种各样的主题论坛让人眼花缭乱.论坛网页的形式也由最初的静态页面发展到现在的动态页面,更好的实现了用户之间的交互.财大家园论坛就是通过动态Web开发技术和数据库技术实现的以财大学生与老师为主要服务对象的一个基于现实环境之上的一个网上论坛,力求创造出一个模拟的网上校园虚拟环境。
此论坛是基于B/S模式的一种JSP网页论坛的设计与实现,力求做到界面友好、简单和易于操作。
论文从几个大的方面来对系统的开发做出了阐述。
在系统分析一章从需求分析和可行性分析两方面来做具体阐述;系统整体设计则从系统目标、系统功能划分和系统开发环境三大方面说明,结合后面的系统详细设计与实现一章完成对系统从整体到细节的全方位的理解。
基于Java的BBS论坛系统的设计与实现

基于Java的BBS论坛系统的设计与实现一、概述随着信息技术的飞速发展和互联网的广泛普及,网络交流已成为人们获取信息、分享经验和知识、进行互动沟通的重要渠道。
论坛(Bulletin Board System,简称BBS)作为一种古老而有效的网络交流方式,经过多年的发展和演变,已经成为互联网的重要组成部分。
基于Java的BBS论坛系统正是为了满足现代网络交流需求,提供一个稳定、高效、可扩展的在线交流平台。
Java作为一种成熟、稳定、跨平台的编程语言,具有丰富的生态系统和广泛的应用场景。
使用Java开发BBS论坛系统,不仅能够确保系统的可移植性和可扩展性,还能够利用Java社区提供的丰富资源和支持,快速实现论坛系统的核心功能,如用户管理、帖子发布、回复评论、主题分类、权限控制等。
基于Java的BBS论坛系统的设计与实现,将重点关注系统的需求分析、架构设计、功能实现、性能优化等方面。
在系统需求分析阶段,将深入剖析用户需求,明确系统的功能和特点在架构设计阶段,将合理规划系统的整体结构,确保系统的稳定性和可扩展性在功能实现阶段,将使用Java语言和相关技术实现论坛系统的各项功能在性能优化阶段,将通过各种技术手段提升系统的性能和用户体验。
本文旨在详细介绍基于Java的BBS论坛系统的设计与实现过程,包括系统的需求分析、架构设计、功能实现、性能优化等方面,以期为相关领域的开发人员提供参考和借鉴。
同时,本文还将探讨未来论坛系统的发展趋势和挑战,展望未来的发展方向。
1. 背景介绍:简述BBS论坛系统的起源、发展和现状,以及其在互联网社区中的作用。
随着互联网的飞速发展和普及,网络社区成为了人们获取信息、交流意见、分享经验的重要场所。
Bulletin Board System(简称BBS)论坛系统以其独特的交互性和开放性,成为了网络社区中最为活跃和重要的组成部分之一。
BBS论坛系统起源于20世纪80年代的电子布告栏系统(Electronic Bulletin Board),主要用于发布和讨论计算机相关的信息。
BBS论坛系统的设计与实现

软件测试的任务
1、寻找Bug; 2、避免软件开发过程中的缺陷; 3、衡量软件的品质; 4、关注用户的需求。
总的目标是:确保软件的质量
测试环境
Apache提供的Web服务器Tomcat 6.0使得用户 可以在Windows 2000以上操作系统下发布自己 设计的动态网页。因此对论坛的调试工作主要是利 用Tomcat 6.0的强大功能在本机下完成的。为了 在本机下浏览Web页面,首先在创建该系统的站点 上(该系统使用的是Web的默认站点)将IP地址设 定为127.0.0.1,它的缺省域名值为localhost。 然后向IE浏览器输入本地动态网页的URL,Web服 务器在收到浏览器传送的URL之后找到网页文件, 并在服务器端执行该文件后将此文件以HTML文件 的形式返回该浏览器。
系统用例图
会员用户
管理员
浏览帖子 发表帖子 回复帖子 修改资料
会员搜索 会员管理 帖子管理 论坛信息 管理
临时用户
系统功能概述
鉴于本系统的性质,系统应该实现以下功能. 1.用户功能实现 (1) 用户的登录 (2) 用户的注册 (3) 用户的查找 (4) 用户资料的修改 2.帖子功能实现 (1) 帖子的发表 (2) 帖子的回复 (3) 帖子的查找 3.后台管理 (1) 用户的管理 (2) 帖子的管理 (3) 论坛信息的管理 (4).图片的管理
系统功能层次图
BBS论坛系统
会
帖
后
员
子
台
模
模
管
块
块
理
会会资会帖回帖 员员料员子复子 登注修查发帖查 录册改找表子找
帖图会论 子片员坛 管管管管 理理理理
帖子管理模块功能层次图
帖子管理模块
BSS论坛设计报告2

目录目录 (1)1序言 (3)2项目开发计划 (3)2.1技术可行性 (3)2.2人员可行性 (3)2.3设备可行性 (4)2.4系统工作量 (4)2.5代码工作量 (4)2.6文档要求 (4)2.7开发环境 (4)2.8人员开发安排 (4)3需求规格说明 (4)3.1需求描述 (4)3.2功能需求 (5)3.3用户界面需求 (6)4概要设计说明 (6)4.1编写目的 (6)4.2流程设计 (6)4.3框架设计 (7)4.4模块设计 (8)4.5数据库设计 (9)5详细设计 (10)5.1编写目的 (10)5.2对象设计 (10)5.3数据库设计 (12)5.3.1数据库需求分析 (12)5.3.2数据表的结构 (12)5.3.3数据表之间关系 (14)5.3.4数据库操作类设计 (14)5.4论坛注册设计 (15)5.5论坛登录设计 (16)5.6帖子标题显示设计 (17)5.7新帖子发表模块设计 (17)5.8实现的关键技术 (18)6用户操作手册 (18)6.1软件概述 (18)6.2系统安装 (18)6.3使用说明 (18)7测试分析报告 (22)7.1测试范围及主要内容 (22)7.2测试方法 (22)7.3测试报告 (22)7.4改进建议与措施 (23)7.5测试结论 (23)8小结 (24)附一、参考文献 (24)附二、主要代码 (24)1序言BBS论坛是Bulletin Board System的简称,意即电子公告牌。
BBS论坛是Internet上流行服务之一,是具有强大实时交互功能的信息交流平台。
通过BBS论坛,用户可以在某个讨论区上提出问题,发表自己的见解,也可回复他人的问题,还可以针对某个话题和他人展开讨论等等。
由于BBS论坛具有实时性、开放性和灵活的交互性等特点,因此BBS论坛也成为大学内相互沟通与学习交流的常用工具;是一条很好的师生、生生交互和沟通的途径。
我们可以利用BBS论坛系统来进行交互式教学,培养学生利用网络进行交互、协商、沟通,形成共识,分享成果的能力,形成批判性和创造性思维。
网站建设实验报告

longtinghu
5
BBS 论坛试验设计报告
<hr size="1"noshade> <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor=" # E7EBE0"> <tr> <td width="72%" height="16" align="center"> 选择页码:【 <% For i=1 To ttlPage % > <a href = "bbslist.asp? Page=<% =i%>"><% = i%></a> <% Next %> 】 </td> <td width="28%" align="right"> 【<a href="bbslist.asp? Page= < % =Page-1 %>">上一页</a>】 【<a href="bbslist.asp? Page= < % =Page+1 %>">下一页</a>】 </td> </tr> </table> <!-- # include virtual = "/ASPWeb/include/endconn.inc"-- > <!-- # include virtual = "/include/footer.inc"-- > </body> </html>
BBS论坛系统详细设计

计算机学院实训报告班级姓名学号指导老师二○一六年七月八日实训进度及成绩评定Ⅰ、设计进度及完成情况Ⅱ、成绩评定设计成绩:指导老师:目录第一章系统概述 (4)1.1 课题的研究背景 (4)1.2 开发环境分析 (4)1.2.1 操作系统的选择 (4)1.2.2 数据库的选择 (5)1.2.3 开发语言的选择 (5)1.3 JAVA语言 (5)第二章系统分析 (6)2.1 分析需求 (6)2.2 功能分析 (6)2.3 系统运行总体流程 (7)第三章系统设计与实现 (9)3.1数据库的设计 (9)3.1.1 E-R图 (9)3.1.2 系统数据库表结构 (10)3.2 系统主界面 (11)3.3普通用户 (11)3.4版主 (13)3.5 管理员 (13)第四章调试过程中的问题及系统测试情况 (15)4.1 系统测试原理 (15)4.2 系统测试方案 (15)4.2.1 测试环境 (15)4.2.2 测试内容 (15)第五章总结 (16)参考文献 (17)第一章系统概述1.1课题的研究背景近些年来,随着计算机的普及与发展,“Internet”一词已经让我们不再感到陌生,随着E时代的到来,新的理念和结构也在不断的形成和完善,计算机网络技术的发展对人类技术史的发展产生了不可磨灭的深远影响。
计算机网络技术的发展推动了人类的科学技术的发展,同时给人们的学习,工作和生活带来了诸多的好处,特点主要体现在以下几个方面: 快捷性、自由性、开放性、互动性、创新性。
伴随着计算机网络技术的迅猛发展和广泛应用,人类进入了全新的网络经济时代。
信息化、数字化、全球化、网络化应是21新世纪人类社会的重要特征,其中,以计算机网络迅猛发展而形成的网络化则是推动信息化、数字化和全球化的基础和核心。
计算机网络技术的发展将以其融合一切现代先进信息技术的特殊优势而在21世纪形成一场崭新的信息技术革命,并进一步推动社会信息化和知识经济的发展。
而计算机网络系统和相关技术也必将在21世纪社会信息化和知识经济浪潮中更快更大的发展。
bbs论坛系统实验报告

bbs论坛系统实验报告一、引言在信息化快速发展的今天,电子论坛(BBS)作为网络交流和互动的重要平台,展现着巨大的潜力。
本实验旨在设计和实现一个功能完备的bbs论坛系统,通过对系统进行测试和分析,以评估其性能和可行性。
二、设计与实现1. 系统需求分析在论坛系统设计之前,我们首先进行了全面的需求分析。
考虑到用户的基本需求,我们确定了以下主要功能:- 用户注册与登录:用户可以通过注册账户并登录系统以获得完整的使用权限。
- 论坛版块分类:将论坛按照主题进行分类,方便用户浏览和发帖。
- 帖子发布与回复:用户可以发布新的帖子并回复其他用户的帖子,实现互动交流。
- 管理员权限:系统设有管理员账户,负责管理用户、版块和帖子的权限和操作。
2. 技术选择与架构设计根据需求分析,我们选择采用前后端分离的架构设计,使用以下技术实现:- 前端技术:HTML、CSS和JavaScript,利用这些技术我们可以实现用户友好的界面和交互效果。
- 后端技术:采用主流的Web开发框架,如Django、Ruby on Rails 等,通过这些框架可以快速搭建论坛系统并处理用户请求。
- 数据库选择:我们选择使用MySQL数据库存储论坛系统的用户信息、帖子内容等数据。
3. 系统实现与功能验证在系统设计和开发完成后,我们对BBS论坛系统进行了一系列的测试与验证,以保证系统正常运行和具备基本功能。
其中,我们重点验证了以下功能点:- 用户注册与登录:测试用户能否成功注册账号并登录系统。
- 论坛版块分类:验证论坛版块能够正常分类展示,用户可以根据自己的兴趣参与讨论。
- 帖子发布与回复:测试用户能否成功发布新的帖子,并对其他帖子进行回复。
- 权限管理:验证管理员账户能够管理用户和帖子,确保论坛系统的安全性和秩序性。
三、实验结果与分析经过一系列的测试和验证,我们得出了以下实验结果:1. 系统功能完备:经过测试,BBS论坛系统实现了预期的功能,用户能够注册登录、发帖回帖,并进行版块分类。
基于JAVA的BBS论坛系统的实现论文(含源文件)

基于java的BBS论坛系统的实现摘要:计算机的普及,使得人们沟通的方式也越来越多。
视频、博客已成为人们沟通的主要方式。
此外,为了方便人们在某一领域探讨问题和发表意见,获取专业资源,BBS论坛应运而生。
开发BBS是为了给人们提供一个交流的平台,方便人们交流经验,探讨相关问题,获取资源。
BBS论坛主要分为两个部分。
前台部分和后台管理部份。
在前台部分中,包括用户注册登陆、浏览回复帖子等操作;后台管理部分包括:用户管理、权限管理、BBS管理、文件管理等。
用到的主要技术有JSP和JavaBean,系统采用SQL Server 来设计数据库,使用MyEclipse开发平台。
BBS论坛研究工作主要针对于需要获得相应专业资源和获得相应帮助,以及专业领域性人们。
BBS是以比较流行的网络资源(包括视频,小说等内容)为研究范围开发的。
关键词:JSP;网上论坛;模拟社区;在线交流Implementation of JA V A.based BBS forum system Abstract:The proliferation of computers, the way people communicate more and more. Video blog has become the main way people communicate. In addition, in order to facilitate people to explore issues and express their views, access to professional resources in a particular area, BBS forum came into being.BBS was developed in order to provide people with a platform to facilitate people to share experiences and discuss related issues, access to resources.BBS forum is divided into two parts. Foreground and the background of the management part. In the foreground section, including user registration login, browse Reply Post and other operations; Management section include: user management, privilege management, BBS management, document management. The main technology used there JSP and JavaBean, to design systems using SQL Server database, use the MyEclipse development platform.BBS forum research work focused on the need to get the appropriate professional resources and access to appropriate help, and professional fields of people.BBS is more popular network resources (including screen, novels, etc.) for the development of the study area.Key words: JSP,Web BBS,Simulation Community,Online Communication目录前言 (1)1 系统的开发背景,方法与意义 (2)1.1 系统开发背景 (2)1.2 开发方法 (2)2 系统设计工具介绍 (4)2.1系统技术选择 (4)2.2 系统开发工具 (5)3 系统的需求分析与设计 (9)3.1 BBS论坛的现状 (9)3.2 可行性分析 (9)3.3系统功能需求 (10)4 系统设计功能模块 (12)4.1 项目规划 (12)4.2 系统设计 (14)4.3 数据库设计 (14)5 BBS论坛系统实现过程 (22)5.1 系统各部分的实现方法 (22)5.2 系统界面设计 (23)5.3后台功能模块的实现 (26)6 使用说明 (28)6.1系统环境要求 (28)6.2 系统安装、运行 (28)小结 (29)参考文献 (30)致谢................................................................................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web开发技术论坛系统目录:概述 (1)系统需求分析 (4)系统功能 (8)系统模块划分 (10)系统流程图 (10)数据库设计(ER图) (11)详细设计及实现 (12)(关键算法、方法,运行效果图,关键代码等)总结体会 (33)一、概述1、项目背景说明:a.论坛系统;b.实现普通论坛的操作,从而达到交流信息的效果;2、编写目的随着Internet的快速发展壮大,挨家挨户都已经习惯于计算机渗透自己的生活。
计算机处理信息的能力就成为计算机人期望提高的目标,以实现及时、准确的掌握信息。
计算机的作用已经在生活中各个方面体现出来,随着技术的发展,人们知识的拓展,使用计算机交流已经成为一个势必的主流。
本项目是一个以论坛为主题的项目,大家可以实现普通论坛的操作,从而达到交流信息的效果,下面将会详细介绍本项目的架构。
3、开发环境:1〉软件环境本次开发的系统采用sql server数据库管理系统作为后台,采用microsoft visual studio2010作为前台开发工具。
Visual Studio是微软公司推出的开发环境。
是目前最流行的Windows平台应用程序开发环境。
Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。
Visual Studio 2010同时带来了NET Framework 4. Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。
除了Microsoft SQL Server,它还支持IBM DB2和Oracle数据库。
2〉硬件环境现在一般的兼容机完全可以满足系统的要求。
4、功能概述提供包括用户注册,帖子发布、评论以及后台管理等内容。
用户注册新用户注册,填写用户信息,检验用户信息的有效性,并将用户信息持久化。
用户可以凭借此账号实现与其他用户的互动。
登录提供用户凭证,验证用户信息是否合法,根据用户角色授权。
用户登录:对于注册用户,可以通过输入其注册名及密码进入系统。
管理员登录:对于管理员可以通过输入其注册名及密码进入系统,享有高级权限。
发表帖子用户发表一个讨论主题,内容包括标题,正文等。
查看帖子查看帖子列表及其详细信息,在详细信息页面中显示该帖子所有的回复。
回复帖子用户可以对帖子进行回复。
帖子管理管理员可以对帖子进行修改和删除。
用户信息修改对于用户可以修改自己的信息。
模块管理管理员可以新建模块,删除模块,修改模块。
BBS的总体功能图如下图所示:BBS论坛系统用户注册用户登陆查看帖子发表帖子用户信息修改帖子管理回复帖子模块管理二、需求分析系统主要业务操作流程:(1)用户注册业务流程图:(2)用户登录业务流程图:输入会员信息开始通过会员信息持久化结束不通过检验合法性正确错误开始输入用户信息检验用户名密码是否正确根据角色授权结束(3)帖子发表业务流程图(4)帖子查看业务流程图否是开始用户是否登录 发表帖子持久化 结束开始 浏览帖子 结束(5)帖子回复业务流程图(6)帖子管理业务流程图开始帖子回复持久化结束否是开始是否拥有管理员或版主权限帖子的管理操作结束(7)用户信息修改业务流程图否是(8)模块管理业务流程图开始是否登录 修改个人信息结束 否是开始是否管理员持有管理员权限管理版块结束三、系统功能用户注册功能:功能描述通过此功能用户可以注册一个账号成为论坛系统的会员输入用户名,密码,用户资料操作序列提交个人资料并注册输出将用户信息保存至数据库中补充说明未注册的用户可以注册,已注册用户不能重复注册登陆功能:功能描述通过此功能用户可以登录到该论坛系统上输入用户名和密码操作序列登录至论坛主页输出软件的操作界面用户信息修改功能:功能描述通过此功能读者可以修改自己的密码、个人资料输入用户名(原密码),新的个人资料操作序列登录至修改个人资料页面输出用户名和密码(联系方式等)发表帖子功能:功能描述通过此功能读者可以在论坛上发表新的帖子输入帖子的名称及内容操作序列读者在发表帖子页面上帖子的相关信息输出新的帖子页面查看并回复帖子:功能描述通过此功能读者可以查看所需要的帖子\回复帖子输入查看帖子的名称\需要回复的内容操作序列进入帖子列表页面\回复帖子页面输出帖子的详细信息及回复情况帖子管理:功能描述通过此功能管理可以删除帖子输入帖子的名称及内容操作序列进入帖子修改页面输出 帖子的详细信息及回复情况四、系统模块划分个人模块:注册:注册一个新的用户。
修改个人资料:修改用户资料。
发表帖子:发表一个新的帖子。
回复帖子:回复已存在的帖子。
帖子模块:帖子管理:管理员可以删除不符合规定的帖子。
主页显示:主页显示了所有帖子,并可以从主页进入帖子浏览界面。
五、系统流程图注册 游客访问六.数据库设计(ER 图)BBS 论坛系统论坛主页 用户管理员浏览帖子发表帖子回复帖子修改信息删除帖子登录真实姓名性别用户邮箱地址电话用户ID 密码密码问题问题答案用户E-R 实体图模块E-R 实体图帖子E-R 实体图评论E-R 实体图数据库设计:模块 模块名称 模块日期模块ID 评论评论ID评论时间评论内容 评论的帖子帖子帖子ID帖子状态帖子分类帖子名称帖子内容发帖日期 发帖人七、详细设计及实现标头组件:链接组件:菜单组件:论坛主页:using System;using System.Data;using System.Data.SqlClient; using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class Index : System.Web.UI.Page{DataOperate sqlBind = new DataOperate();SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);protected void Page_Load(object sender, EventArgs e){dlBind();string sqlstr = "select * from bbs_user";SqlDataAdapter ada = new SqlDataAdapter(sqlstr, sqlcon);if (!IsPostBack){try{labUserName.Text = Session["Name"].ToString() + "!";}catch { }}}public void dlBind(){int curpage = Convert.ToInt32(bPage.Text);PagedDataSource ps = new PagedDataSource();sqlcon.Open();string sqlstr = "select a.*,b.* from BBS_Card as a join BBS_Module as b on a.ModuleID=b.ModuleID";SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlcon);DataSet ds = new DataSet();MyAdapter.Fill(ds, "BBS_Card");sqlcon.Close();ps.DataSource = ds.Tables["BBS_Card"].DefaultView;ps.AllowPaging = true;ps.PageSize = 2;ps.CurrentPageIndex = curpage - 1;this.lnkbtnUp.Enabled = true;this.lnkbtnNext.Enabled = true;this.lnkbtnBack.Enabled = true;this.lnkbtnOne.Enabled = true;if (curpage == 1){this.lnkbtnOne.Enabled = false;this.lnkbtnUp.Enabled = false;}if (curpage == ps.PageCount){this.lnkbtnNext.Enabled = false;this.lnkbtnBack.Enabled = false;}bBackPage.Text = Convert.ToString(ps.PageCount);this.dlContent.DataSource = ps;this.dlContent.DataKeyField = "CardID";this.dlContent.DataBind();}protected void lnkbtnOne_Click(object sender, EventArgs e){bPage.Text = "1";this.dlBind();}protected void lnkbtnUp_Click(object sender, EventArgs e){bPage.Text = Convert.ToString(Convert.ToInt32(bPage.Text) - 1);this.dlBind();}protected void lnkbtnNext_Click(object sender, EventArgs e){bPage.Text = Convert.ToString(Convert.ToInt32(bPage.Text) + 1);this.dlBind();}protected void lnkbtnBack_Click(object sender, EventArgs e){bPage.Text = bBackPage.Text;this.dlBind();}protected void dlContent_SelectedIndexChanged(object sender, EventArgs e){}}用户登录:using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){HttpCookie cookie = Request.Cookies["CheckCode"];SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);sqlcon.Open();SqlCommand sqlcom = sqlcon.CreateCommand();mandText = "select count(*) from bbs_user where UserLoginName='"+txtUserName.Text+"'and UserPwd='"+txtPassword.Text+"'";int countAdmin = Convert.ToInt32(sqlcom.ExecuteScalar());if (countAdmin > 0){if (cookie.Value == TextBox3.Text){Response.Write("<script>alert('登陆成功');location='</script>");Session["Name"] = txtUserName.Text;Page.Response.Redirect("Index.aspx");}else{Response.Write("<script>alert('验证码错误');location='javascript:history.go(-1)'</script>");}}else{Response.Write("<script language =javascript>alert('用户名或密码错误!');location='javascript:history.go(-1)'</script>");return;}sqlcon.Close();}protected void Button2_Click(object sender, EventArgs e){txtUserName.Text = "";txtPassword.Text = "";TextBox3.Text = "";}}修改个人信息:using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class PersonInfo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){DataOperate sqloperate = new DataOperate();SqlConnection sqlconn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);string sqlstr = "select * from bbs_user";SqlDataAdapter ada = new SqlDataAdapter(sqlstr, sqlconn);DataSet ds = new DataSet();if (!IsPostBack){try{labUserName.Text = Session["Name"].ToString() + "!";}catch{Response.Write("<script>alert('您还没有登录,或是服务器超时,请重新登录!');location='Login.aspx'</script>");}}}protected void btnUpdate_Click(object sender, EventArgs e){DataOperate sqloperate = new DataOperate();SqlConnection sqlconn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);if (Session["Name"].ToString() != null){sqlconn.Open();SqlDataAdapter ad = new SqlDataAdapter("select * from bbs_user where UserLoginName='" + Session["Name"].ToString() + "'", sqlconn);DataSet d = new DataSet();ad.Fill(d, "bbs_user");try{string sex = ddlSex.SelectedValue;string photo = ddlPhoto.SelectedValue;string pwd = txtPwd.Text;string name = txtTName.Text;string quepwd = txtQuePwd.Text;string anspwd = txtAnsPwd.Text;string tel = txtTel.Text;string email = txtEmail.Text;string sqlupdate = "UPDA TE bbs_user SET UserSex='" + sex + "',UserPwd='" + pwd + "',UserName='" + name + "',UserQuePwd='" + quepwd + "',UserAnsPwd='" + anspwd + "',UserTel='" + tel + "',UserEmail='" + email + "',UserPhoto='" + photo + "' where UserLoginName='" + @Session["Name"].ToString() + "'";SqlCommand com = new SqlCommand(sqlupdate, sqlconn);com.ExecuteNonQuery();sqlconn.Close();Response.Write("<script language='javascript'>alert('修改成功');</script>");}catch{Response.Write("<script language='javascript'>alert('修改失败');</script>");}}}protected void ddlPhoto_SelectedIndexChanged(object sender, EventArgs e){imgPhoto.ImageUrl = "~/photos/" + ddlPhoto.SelectedValue + ".jpg";}protected void btnCancel_Click1(object sender, EventArgs e){txtPwd.Text = "";txtTName.Text = "";txtQuePwd.Text = "";txtAnsPwd.Text = "";txtTel.Text = "";txtEmail.Text = "";}}用户注册:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.SqlClient;public partial class Register : System.Web.UI.Page{DataOperate sqloperate = new DataOperate();SqlConnection sqlconn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);protected void Page_Load(object sender, EventArgs e){}protected void btnRegister_Click(object sender, EventArgs e){string sqltest = "select * from BBS_User where UserName='" + this.txtLoginName.Text + "'";sqlconn.Open();SqlCommand sqlcom = new SqlCommand(sqltest, sqlconn);SqlDataReader read = sqlcom.ExecuteReader();read.Read();if (read.HasRows){if (this.txtLoginName.Text.Trim() == read["UserName"].ToString().Trim()){Response.Write("<script language='javascript'>alert('该会员已经注册过');localtion='Register.aspx'</script>");return;}}string sqlstr = "Insert into [bbs_User]([UserLoginName],[UserSex],[UserPWD],[UserName],[UserQuePwd],[UserAnsPwd], [UserTel],[UserEmail],[UserPhoto])values(@LoginName,@UserSex,@UserPwd,@UserName,@ UserQuePwd,@UserAnsPwd,@UserTel,@UserEmail,@UserPhoto)";mandText = sqlstr;SqlParameter para1 = new SqlParameter("@LoginName", SqlDbType.Char, 10);para1.Value = txtLoginName.Text;sqlcom.Parameters.Add(para1);SqlParameter para2 = new SqlParameter("@UserSex", SqlDbType.Char, 10);para2.Value = ddlSex.SelectedValue;sqlcom.Parameters.Add(para2);SqlParameter para3 = new SqlParameter("@UserPwd", SqlDbType.VarChar, 50);para3.Value = txtPwd.Text;sqlcom.Parameters.Add(para3);SqlParameter para4 = new SqlParameter("@UserName", SqlDbType.VarChar, 50);para4.Value = txtTName.Text;sqlcom.Parameters.Add(para4);SqlParameter para5 = new SqlParameter("@UserQuePwd", SqlDbType.VarChar, 50);para5.Value = txtQuePwd.Text;sqlcom.Parameters.Add(para5);SqlParameter para6 = new SqlParameter("@UserAnsPwd", SqlDbType.VarChar, 50);para6.Value = txtAnsPwd.Text;sqlcom.Parameters.Add(para6);SqlParameter para7 = new SqlParameter("@UserTel", SqlDbType.Char, 50);para7.Value = txtTel.Text;sqlcom.Parameters.Add(para7);SqlParameter para8 = new SqlParameter("@UserEmail", SqlDbType.VarChar, 50);para8.Value = txtEmail.Text;sqlcom.Parameters.Add(para8);SqlParameter para9 = new SqlParameter("@UserPhoto", SqlDbType.VarChar, 50);para9.Value = ddlPhoto.Text;sqlcom.Parameters.Add(para9);sqlconn.Close();sqlconn.Open();sqlcom.ExecuteNonQuery();sqlconn.Close();Session["regName"] = txtLoginName.Text.Trim();Response.Redirect("SuccReg.aspx");}protected void btnCancel_Click(object sender, EventArgs e){txtLoginName.Text = "";txtPwd.Text = "";txtTName.Text = "";txtQuePwd.Text = "";txtAnsPwd.Text = "";txtTel.Text = "";txtEmail.Text = "";txtLoginName.Focus();}protected void btnTest_Click(object sender, EventArgs e){if (txtLoginName.Text == ""){Response.Write("<script language='javascript'>alert('会员登录名不能为空!');localtion='Register.aspx'</script>");}else{string sqlstr = "select * from BBS_User where UserLoginName='" + this.txtLoginName.Text + "'";sqlconn.Open();SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);SqlDataReader read = sqlcom.ExecuteReader();read.Read();if (read.HasRows){if (this.txtLoginName.Text.Trim() ==read["UserLoginName"].ToString().Trim()){Response.Write("<script language='javascript'>alert('该会员已经注册过');localtion='Register.aspx'</script>");return;}}else{Response.Write("<script language='javascript'>alert('您可以进行正常注册');localtion='Register.aspx'</script>");}read.Close();sqlconn.Close();}}protected void ddlPhoto_SelectedIndexChanged(object sender, EventArgs e){imgPhoto.ImageUrl = "~/photos/"+ddlPhoto.SelectedValue+".jpg";}}查看并回复帖子:using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class RevertCard : System.Web.UI.Page{DataOperate sqlBind = new DataOperate();SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);protected void Page_Load(object sender, EventArgs e){dlBind();string sqlst = "select * from bbs_user";SqlDataAdapter ada = new SqlDataAdapter(sqlst, sqlcon);if (!IsPostBack){try{labUserName.Text = Session["Name"].ToString() + "!";}catch { }string idStr = Page.Request.QueryString["CardID"];sqlcon.Open();string sqlstrbind = "select * from bbs_Card where CardID='" + idStr + "'";SqlCommand sqlcom = new SqlCommand(sqlstrbind, sqlcon);SqlDataReader tmpReader = sqlcom.ExecuteReader();if (tmpReader.Read()){labCardTitle.Text = "帖子标题:" + tmpReader["CardName"].ToString();labCardID.Text = tmpReader["CardID"].ToString();labCardDate.Text = "发帖日期:" + tmpReader["CardDate"].ToString();labCardContent.Text = tmpReader["CardContent"].ToString();}sqlcon.Close();}}protected void btnRevert_Click(object sender, EventArgs e){sqlcon.Close();sqlcon.Open();string sqlstr = "INSERT INTO bbs_RevertCard (CardID,RevertCardContent)"+ " values ('" + @labCardID.Text + "','" + @txtRevertContent.Text + "')";sqlBind.DataCom(sqlstr);SqlCommand com = new SqlCommand(sqlstr, sqlcon);com.ExecuteNonQuery();Response.Write("<script language='javascript'>alert('评论成功');</script>");}protected void btnCancel_Click(object sender, EventArgs e){Response.Redirect("Index.aspx");}public void dlBind(){string idStr = Page.Request.QueryString["CardID"];int curpage = Convert.ToInt32(bPage.Text);PagedDataSource ps = new PagedDataSource();sqlcon.Open();string sqlstr = "select * from bbs_RevertCard where CardID='" +idStr + "'";SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlcon);DataSet ds = new DataSet();MyAdapter.Fill(ds,"bbs_RevertCard");sqlcon.Close();ps.DataSource = ds.Tables["bbs_RevertCard"].DefaultView;ps.AllowPaging = true; //是否可以分页ps.PageSize = 2; //显示的数量ps.CurrentPageIndex = curpage - 1; //取得当前页的页码this.lnkbtnUp.Enabled = true;this.lnkbtnNext.Enabled = true;this.lnkbtnBack.Enabled = true;this.lnkbtnOne.Enabled = true;if (curpage == 1){this.lnkbtnOne.Enabled = false;//不显示第一页按钮this.lnkbtnUp.Enabled = false;//不显示上一页按钮}if (curpage == ps.PageCount){this.lnkbtnNext.Enabled = false;//不显示下一页this.lnkbtnBack.Enabled = false;//不显示最后一页}bBackPage.Text = Convert.ToString(ps.PageCount);this.dlRevertCard.DataSource = ps;this.dlRevertCard.DataKeyField = "CardID";this.dlRevertCard.DataBind();}protected void lnkbtnOne_Click(object sender, EventArgs e){bPage.Text = "1";this.dlBind();}protected void lnkbtnUp_Click(object sender, EventArgs e){bPage.Text = Convert.ToString(Convert.ToInt32(bPage.Text) - 1);this.dlBind();}protected void lnkbtnNext_Click(object sender, EventArgs e){bPage.Text = Convert.ToString(Convert.ToInt32(bPage.Text) + 1);this.dlBind();}protected void lnkbtnBack_Click(object sender, EventArgs e){bPage.Text = bBackPage.Text;this.dlBind();}}管理贴子(管理员部分):using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class ManageCard : System.Web.UI.Page{DataOperate sqlBind = new DataOperate();protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){this.bind();}}protected void gvCardInfo_PageIndexChanging(object sender, GridViewPageEventArgs e) {gvCardInfo.PageIndex = e.NewPageIndex;this.bind();}protected void gvCardInfo_RowDeleting(object sender, GridViewDeleteEventArgs e){string sqlstr = "delete from BBS_Card where CardID='" + gvCardInfo.DataKeys[e.RowIndex].Value + "'";sqlBind.DataCom(sqlstr);Response.Redirect("ManageCard.aspx");}protected void gvCardInfo_RowDataBound(object sender, GridViewRowEventArgs e){if (e.Row.RowType == DataControlRowType.DataRow){((LinkButton)(e.Row.Cells[6].Controls[0])).Attributes.Add("onclick", "return confirm('确定要删除吗?')");}}public string SubStr(string sString, int nLeng){if (sString.Length <= nLeng){return sString;}string sNewStr = sString.Substring(0, nLeng);sNewStr = sNewStr + "...";return sNewStr;}public void bind(){string sqlstr = "select * from BBS_Card order by CardID asc";SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);DataSet myds = new DataSet();sqlcon.Open();myda.Fill(myds, "BBS_Card");gvCardInfo.DataSource = myds;gvCardInfo.DataKeyNames = new string[] { "CardID" };gvCardInfo.DataBind();for (int i = 0; i <= gvCardInfo.Rows.Count - 1; i++){DataRowView mydrv;string gIntro;if (gvCardInfo.PageIndex == 0){mydrv = myds.Tables["BBS_Card"].DefaultView[i];gIntro = Convert.ToString(mydrv["CardContent"]);gvCardInfo.Rows[i].Cells[4].Text = SubStr(gIntro, 6);}else{mydrv = myds.Tables["BBS_Card"].DefaultView[i + (5 * gvCardInfo.PageIndex)];gIntro = Convert.ToString(mydrv["CardContent"]);gvCardInfo.Rows[i].Cells[4].Text = SubStr(gIntro, 6);}}sqlcon.Close();}}查询帖子:using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class Search : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){this.bind();}}protected void Button1_Click(object sender, EventArgs e){this.bind();}protected void gvCardInfo_PageIndexChanging(object sender, GridViewPageEventArgs e) {gvCardInfo.PageIndex = e.NewPageIndex;this.bind();}public string SubStr(string sString, int nLeng){if (sString.Length <= nLeng){return sString;}string sNewStr = sString.Substring(0, nLeng);sNewStr = sNewStr + "...";return sNewStr;}protected void gvCardInfo_RowDataBound(object sender, GridViewRowEventArgs e){if (e.Row.RowType == DataControlRowType.DataRow){}}public void bind(){string search = txtsearch.Text;string sqlstr = "select * from bbs_Card where [user]='" + @search + "' ";if (ddltype.SelectedValue.Equals("作者")){ sqlstr = "select * from bbs_Card where [user]='" + @search + "' "; }else if (ddltype.SelectedValue.Equals("标题")){ sqlstr = "select * from bbs_Card where CardName like'%" + @search + "%' "; }else{sqlstr = "select * from bbs_Card where CardDate like'%" + @search + "%' ";}SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);DataSet myds = new DataSet();sqlcon.Open();myda.Fill(myds, "bbs_Card");gvCardInfo.DataSource = myds;gvCardInfo.DataKeyNames = new string[] { "CardID" };gvCardInfo.DataBind();for (int i = 0; i <= gvCardInfo.Rows.Count - 1; i++){DataRowView mydrv;string gIntro;if (gvCardInfo.PageIndex == 0){mydrv = myds.Tables["BBS_Card"].DefaultView[i];gIntro = Convert.ToString(mydrv["CardContent"]);gvCardInfo.Rows[i].Cells[4].Text = SubStr(gIntro, 6);}else{mydrv = myds.Tables["BBS_Card"].DefaultView[i + (5 * gvCardInfo.PageIndex)];gIntro = Convert.ToString(mydrv["CardContent"]);gvCardInfo.Rows[i].Cells[4].Text = SubStr(gIntro, 6);}}sqlcon.Close();}}八、总结与体会这次web开发让我对网页设计产生了兴趣,在上传头像的时候本想完成上传文件的功能,但对于写入数据库还是比较生疏,所以仅仅做了头像的选择。