JAVA学习网站的设计与实现毕业设计


    

    毕业文(设计)

    题 目  JAVA学网站设计实现     

    院 系
    专 业 计算机科学技术
    学生姓名
    学 号
    指导教师
    职  称   副教授  


    二O 年 X 月 X日



    声 明

    郑重声明:
    1 持求实创新科学精神事研究工作
    2 文导师指导进行研究工作取研究成果
    3 文中引文外实验数关材料均真实
    4 文中引文致谢容外没抄袭机构已发表撰写研究成果
    5 志研究做贡献均已文中作声明表示谢意




    作者签名:
    日 期:    
    目 录
    1前言 1
    2 开发技术相关工具简介 1
    21 JSP技术 1
    22 MyEclipse+Eclipse简介 2
    23 Tomcat简介 3
    24 SQL Server 2005数库 3
    3系统概述设计 4
    31系统功需求 4
    32 系统结构设计 5
    33 系统功模块划分 5
    4数库结构设计实现 6
    41 数库概念结构设计 6
    42数库逻辑结构设计 8
    5组件设计 9
    51数库连接 9
    52户Bean编写 9
    53户相关处理Bean编写 10
    54文章Bean编写 13
    55 文章处理Bean 13
    56 资源Bean编写 13
    57 资源处理Bean 14
    58 书籍Bean编写 14
    59书籍处理Bean 14
    6普通户设计 14
    6.1登录 14
    62精品文章界面 16
    63资料载界面 16
    64书籍推荐界面 18
    7理员设计 19
    71理户 19
    72理文章 21
    73理载 22
    74 理图书 26
    结束语 27


    JAVA学网站


    摘:设计介绍完整Java学网站包括系统概述设计数库结构设计实现详细设计等部分系统户提供学Java台系统概述设计包含系统功需求系统结构设计系统功模块划分等容数库结构设计中构造出ER图完成户理文章理户评载理书籍理等功详细设计包含系统功模块具体实现
    关键词:JAVA 学 传载JSP文章浏览
    1前言
    Java仅开发型桌面应程序特适合Internet应开发目前Java语言仅门正广泛编程语言已成软件设计开发者应掌握门基础语言Java语言面象编程涉网络线程等重基础知识新技术领域涉Java语言学掌握Java已成识国外许学已Java语言列入科教学计划IT行业Java需求正断增长
    Java涉方面较容较广学起容易迷失方找正确路线鉴设计样系统
    系统Java学网站提供文章阅读书籍推荐资料载等全方面功希想学Java学提供学台予定帮助
    文章阅读模块提供网络收集Java关典文章包括技术理解学方法介绍等
    书籍推荐读者介绍学Java典书籍资料载提供课件教学视频等式样学资源载功
    2 开发技术相关工具简介
    21 JSP技术
    JSP技术Java编程语言编写类XMLtagsscriptlets封装产生动态网页处理逻辑网页通tagsscriptlets访问存服务端资源应逻辑JSP网页逻辑网页设计显示分离支持重基组件设计基Web应程序开发变迅速容易
    Web服务器遇访问JSP网页请求时首先执行中程序段然执行结果连JSP文件中HTML代码起返回客户插入Java程序段操作数库重新定网页等实现建立动态网页需功
    JSPJava Servlet样服务器端执行通常返回客户端HTML文客户端浏览器浏览
    JSP10规范版1999年9月推出12月推出11规范目前较新JSP12规范JSP20规范征求意见稿已出台
    JSP页面HTML代码嵌入中Java代码组成服务器页面客户端请求Java代码进行处理然生成HTML页面返回客户端浏览器Java Servlet JSP技术基础型Web应程序开发需Java ServletJSP配合完成JSP具备Java技术简单易完全面象具台关性安全面特网特点
    JSP推出众公司支持JSP技术服务器IBMOracleBea公司等JSP迅速成商业应服务器端语言
    JSP种简单易懂等式表示:HTML+JavaJSP

    22 MyEclipse+Eclipse简介
    Eclipse 开放源代码基 Java 扩展开发台身言框架组服务通插件组件构建开发环境幸运Eclipse 附带标准插件集包括 Java 开发工具(Java Development ToolsJDT)
    Eclipse著名跨台集成开发环境(IDE)初Java语言开发目前通插件作计算机语言C++Python开发工具Eclipse身框架台众插件支持Eclipse拥功相固定IDE软件难具灵活性许软件开发商Eclipse框架开发IDE
    Eclipse 初OTIIBM两家公司IDE产品开发组创建起始1999年4月IBM提供初Eclipse代码基础包括PlatformJDT PDE目前IBM牵头围绕着Eclipse项目已发展成庞Eclipse联盟150家软件公司参Eclipse项目中中包括BorlandRational SoftwareRed HatSybase等Eclipse开发源码项目实 Visual Age for Java代品界面先前Visual Age for Java差开放源码免费基础开发插件越越受关注期包括Oracle许公司纷纷加入该项目宣称Eclipse成进行语言开发IDE集成者者需载种语言插件
    MyEclipse十分优秀开发Java J2EEEclipse插件集合MyEclipse功非常强支持十分广泛尤种开元产品支持十分错
    MyEclipse企业级工作台(MyEclipse Enterprise Workbench 简称MyEclipse)Eclipse IDE扩展利数库JavaEE开发发布应程序服务器整合方面极提高工作效率功丰富JavaEE集成开发环境包括完备编码调试测试发布功完整支持HTML Struts JSF CSS Javascript SQL Hibernate

    23 Tomcat简介
    Tomcat 受广程序员喜欢运行时占系统资源扩展性支持负载衡邮件服务等开发应系统常功断改进完善中感兴趣程序员更改中加入新功
    Tomcat 型轻量级应服务器中型系统发访问户场合普遍开发调试JSP 程序首选初学者说样认台机器配置Apache 服务器利响应HTML 页面访问请求实际Tomcat 部分Apache 服务器扩展独立运行运行tomcat 时实际作Apache 独立进程单独运行
    里诀窍配置正确时Apache HTML页面服务Tomcat 实际运行JSP 页面Servlet外TomcatIISApache等Web服务器样具处理HTML页面功外ServletJSP容器独立Servlet容器Tomcat默认模式Tomcat处理静态HTML力Apache服务器
    24 SQL Server 2005数库
    SQL Server 2005 全面数库台集成商业智 (BI) 工具提供企业级数理SQL Server 2005 数库引擎关系型数结构化数提供更安全存储功您构建理业务高高性数应程序SQL Server 2005 数引擎企业数理解决方案核心外 SQL Server 2005 结合分析报表集成通知功您企业构建部署济效 BI 解决方案帮助您团队通记分卡DashboardWeb services 移动设备数应推业务领域
    Microsoft Visual StudioMicrosoft Office System 新开发工具包(包括 Business Intelligence Development Studio)紧密集成 SQL Server 2005 众您开发员数库理员信息工作者决策者SQL Server 2005 您提供创新解决方案帮助您数中更获益

    3系统概述设计
    系统采目前较流行BS架构整系统采JSP技术应服务器端Tomcat服务器数库服务器采微软SQL Server 2005
    31系统功需求
    户分普通户理员户两类
    普通户拥注册登录查精品文章评文章查推荐书籍载资源等功
    理员拥理户理文章理书籍理载四模块
    理户模块
    (1)查户
    (2)修改户信息
    (3)添加户
    (4)删户
    理文章
    (1)查文章信息
    (2)修改文章
    (3)添加文章
    (4)删文章
    理书籍
    (1) 查书籍信息
    (2) 修改书籍信息
    (3) 添加书籍信息
    (4) 删书籍信息
    理载
    (1)查载资料信息
    (2)删载信息
    (3)传文件

    32 系统结构设计
    根系统功模块划分系统结构设计图31示

    图31 系统结构设计图
    33 系统功模块划分
    1普通户权限图32示:

    图32 普通户权限
    2理员户权限图33示:


    图33 理员户权限图
    4数库结构设计实现
    41 数库概念结构设计
    数库系统中起着十分重作数库设计坏直接影响系统效率实现效果
    实例实体:户信息实体文章信息实体户评实体推荐书籍实体载资源实体

    户ID
    户名
    户邮箱
    户级
    户信息实体属性图图41示
    图41 户信息属性
    文章
    文章ID
    户标题
    文章容
    文章信息实体属性图图42示
    图42文章信息属性图

    评ID
    评者
    评容
    文章ID
    户评实体属性图图43示:
    图43 户评实体属性图

    书籍
    书籍ID
    书籍名称
    书籍介绍
    书籍封面图
    推荐书籍实体属性图图44示:
    图44 推荐书籍实体属性图
    资源
    资源ID
    资源标题
    资源链接图
    载资源实体属性图图45示:
    图45 载资源实体属性图

    42数库逻辑结构设计
    数库概念结构设计完现数库概念结构转化数库系统支持实际数模型数库逻辑结构
    系统SQL Server数库表设计结果表41表45示表格表示数库中表
    户信息表users表41示记录理员普通户信息
    表41户表(users)
    列名
    数类型
    允许空
    说明
    useId
    int

    户ID
    username
    Varchar(20)
    yes
    户名
    passwd
    Varchar(20)
    yes
    户密码
    email
    Varchar(30)
    yes
    户邮箱
    grade
    int
    yes
    户级
    文章表表42示记录文章信息
    表42文章表(article)
    列名
    数类型
    允许空
    说明
    id
    int

    文章ID
    title
    Varchar(50)
    yes
    文章标题
    detail
    text
    yes
    文章容
    评表表43示记录评信息
    表43评表(remark)
    列名
    数类型
    允许空
    说明
    id
    int

    评ID
    username
    Varchar(20)
    yes
    评者
    content
    text
    yes
    评容
    articleid
    int
    yes
    文章ID
    推荐书籍表表44示记录书籍信息
    表44推荐书籍表(books)
    列名
    数类型
    允许空
    说明
    bookId
    int

    书籍ID
    bookname
    Varchar(20)
    yes
    书籍名称
    bookinfo
    text
    yes
    书籍简介
    photo
    Varchar(20)
    yes
    书籍封面图
    载资源表表45示记录载资源信息
    表45载资源表(resourse)
    列名
    数类型
    允许空
    说明
    id
    int

    资源ID
    title
    Varchar(50)
    yes
    资源标题
    Link
    Varchar(50)
    yes
    资源链接
    5组件设计
    51数库连接
    数库连接ConnBjava文件中返回数库连接公类类果连接数库需构造类象源代码示:
    public class ConnB {
    Connection ctnull
    public Connection getCon(){
    try{
    ClassforName(commicrosoftsqlserverjdbcSQLServerDriver)
    连接
    ctDriverManagergetConnection
    (jdbcsqlserverlocalhost1433databaseNameuserusersapassw ord37917290)
    }catch(Exception e){
    eprintStackTrace()
    }

    return ct
    }

    }
    52户Bean编写
    户类UserBean负责描述户属性属性getset方法源代码中省略部分属性getset方法户类代码示:
    public class UserBean {
    private int userId
    private String userName
    private String passwd
    private String email
    private int grade
    public int getUserId() {
    return userId
    }
    处代码省略
    public void setGrade(int grade) {
    thisgrade grade
    }
    }
    53户相关处理Bean编写
    户分普通户理员进行户操作时判断户属种身份户相关处理存放UserBeanCLjava文件中

    public class UserBeanCL {
    private Connection ctnull
    private Statement smnull
    private ResultSet rsnull
    private int pageCount0
    private int rowCount0
    private int pageSize3
    页数
    public int getPageCount()
    {
    try{
    ctnew ConnB()getCon()
    smctcreateStatement()
    ResultSet rssmexecuteQuery(select count(*) from users)
    if(rsnext()){
    rowCountrsgetInt(1)
    }
    if(rowCountpageSize0){
    pageCountrowCountpageSize
    }else{
    pageCountrowCountpageSize+1
    }
    }
    catch(Exception e){
    eprintStackTrace()
    }finally{
    thisclose()
    }
    return pageCount

    }
    通页数返回户详细信息示输入页数会返回该页数应该显示容集合
    public ArrayList result(int pageNow)
    {
    ArrayList alnew ArrayList()
    try {
    ctnew ConnB()getCon()
    sm ctcreateStatement()
    rs smexecuteQuery(select top + pageSize
    + * from users where userId not in (select top
    + pageSize * (pageNow 1) + userId from users) )
    while (rsnext()) {
    UserBean ub new UserBean()
    ubsetUserId(rsgetInt(1))
    ubsetUserName(rsgetString(2))
    ubsetPasswd(rsgetString(3))
    ubsetEmail(rsgetString(4))
    ubsetGrade(rsgetInt(5))
    aladd(ub) al放arrayList中
    }
    }
    catch(Exception e){
    eprintStackTrace()
    }
    finally{
    thisclose()
    }
    return al
    }
    根输入户名密码级判断否允许户登录代码示:
    public boolean compare(String pString uint g)
    {
    boolean bfalse
    try{
    ctnew ConnB()getCon()
    smctcreateStatement()
    rssmexecuteQuery(select top 1 passwdgrade from users where username'+u+')
    if(rsnext()){
    String passwdrsgetString(1)
    int gradersgetInt(2)
    Systemoutprint(grade)
    if(passwdequals(p)&&gradeg){
    btrue
    }
    }

    }catch(Exception e){
    eprintStackTrace()
    }finally{
    thisclose()
    }
    return b
    }
    54文章Bean编写
    文章Bean应文件ArticleBeanjavabean描述文章资源基属性属性值getset方法代码中省略部分属性getset方法
    public class ArticleBean {
    private int id
    private String title
    private String content
    public int getId() {
    return id
    }
    处代码省略
    public void setContent(String content) {
    thiscontent content
    }
    }
    55 文章处理Bean
    处代码户处理Bean类似代码ArticleCljava文件中查源文件处详细列出
    56 资源Bean编写
    文章Bean应文件ArticleBeanjavabean描述文章资源基属性属性值getset方法代码中省略部分属性getset方法
    public class ResourseBean {
    private int id
    private String title
    private String link
    public int getId() {
    return id
    }
    处代码省略
    public void setLink(String link) {
    thislink link
    }
    }
    57 资源处理Bean
    处代码户处理Bean类似代码ResourseBeanCljava文件中查源文件处详细列出
    58 书籍Bean编写
    public class BooksBean {
    private int id
    private String bookname
    private String bookinfo
    private String photo
    public int getId() {
    return id
    }
    处代码省略
    public void setPhoto(String photo) {
    thisphoto photo
    }
    }
    59书籍处理Bean
    处代码户处理Bean类似代码BookBeanCljava文件中处详细列出
    6普通户设计
    6.1登录
    网站需登录方进入需输入户名密码登录界面图61示:

    图61 登录界面
    户登录输入户名密码然选择身份(户理员)然单击登录钮户信息提交logincljsplogincljsp页面完成数库认证验证成功根户身份动跳转相应页面户信息保存进session供页面判断户否已登录Logincljsp代码示:
    <
    String passwordrequestgetParameter(password)
    String usernamerequestgetParameter(user)
    int gradeIntegerparseInt(requestgetParameter(grade))
    UserBeanCL ubcnew UserBeanCL()
    if(ubccompare(passwordusernamegrade)){
    sessionsetAttribute(unameusername)
    sessionsetAttribute(gradegrade+)
    switch (grade)
    {
    case 1responsesendRedirect(firstjsp)break 登录户学生
    case 2responsesendRedirect(adminjsp)break 登录户理员
    defaultresponsesendRedirect(firstjsp)break
    }
    } else{
    responsesendRedirect(indexjsp)
    }
    >
    62精品文章界面
    该界面显示文章超链接点击链接会显示文章详情运行效果图62示:

    图62 文章列表

    篇文章相应评区域户文域中输入想评容单击发表评钮实现评功效果截图(图63)

    图63 评界面
    63资料载界面
    该界面提供Java相关学资源载点击想载文件应链接时会弹出载话框代码包含resourcejsp文件中代码示:
    <
    for(int i0i {
    ResourseBean rbnew ResourseBean()
    rb(ResourseBean)alget(i)
    >
        >载
    <
    }
    >
    运行效果图6465示:

    图64 课件载界面
    点击载弹出载话框:

    图65 载话框
    64书籍推荐界面
    书籍推荐界面户推荐利JAVA学典书籍分成两行显示行显示三书包括书封面图书籍名称单击书籍名称时会进入书籍简介界面运行效果截图6667示:

    图66 书籍推荐界面
    点击书籍名称应书籍简介界面:

    图67 书籍简介界面
    7理员设计
    户理员身份登录进入理员界面提供理户理文章理书籍理载资源等功
    71理户
    理户界面完成显示户列表删户修改户等功运行截图图71示:

    图71 户理界面
    户点击修改户时讲进入修改户界面中户ID读修改属性均做相应修改效果图72示:

    图72 修改户界面
    修改户界面应代码包含updateUserjsp文件中代码示:

    修改户信息









    户ID>
    户名>
    密码>
    户级>


      



    修改完单击修改户钮修改数提交UsersClServletUsersClServlet调相应组件数库中存放数进行修改修改户信息代码存放UserBeanCl中核心代码示:
    public boolean updateUser(String idString nameString passwdString grade){
    boolean bfalse
    try{
    ctnew ConnB()getCon()
    smctcreateStatement()
    int asmexecuteUpdate(update users SET username'+name+'passwd'+passwd+'grade'+grade+' where userId'+id+')
    a修改记录数
    if(a1){
    btrue
    }
    }catch(Exception e){
    eprintStackTrace()
    }
    return b
    }
    户单击删户讲弹出话框询问否确定删应JavaScript代码示: