您好,欢迎来到尔游网。
搜索
您的当前位置:首页基于响应式的苏工院学工处网站建设-专科毕业设计说明

基于响应式的苏工院学工处网站建设-专科毕业设计说明

来源:尔游网


基于响应式的苏工院学工处网站建设

系部:软件与服务外包学院 学生姓名: 专业班级: 学号: 指导教师:

2016年2月20日

声明

本人所呈交的 基于响应式的苏工院学工处网站建设,是我在指导教师的指导和查阅相关著作下进行分析研究所取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。

作者签名:

日期:2016.02.20

摘要:

本次设计是采用B/S结构制作的学校学工处网站。网站前端使用的是DIV+CSS技术,以及响应式开发技术。实现前端的模块化布局和多平台的友好访问。网站的后台是用当今主流的JAVA和PHP两种语言分别开发。实现从数据库对网站进行操作,实现网站的动态效果。网站前端页面主要展示了学校所有的新闻,在建言献策页面可以发送留言,回复页面可以回复相关留言。网站的后台实现对新闻增删查改操作,管理员分配和留言的审查。下面就是对本次设计的详细说明。 关键词:网站建设、JAVA、PHP、响应式、数据库

Abstract:

This design use the B/S frame. The front page use DIV + CSS ways, and the response type development technology. Realize the front-end modular layout and multi-platform friendly visit. The website backstage is used the JAVA language and PHP language. Using database to manage the website, Make site become dynamic website. Website front page mainly shows all the news about the school, everyone can also send the idea in the message page. backstage to implementation add or delete check change operation, Administrators to assign roles and management of news comments. The following is the details of the design. Keywords: website building, JAVA, PHP, responsive,database

目录

一.引言 ........................................................................................................................................... 1 二.系统分析 ................................................................................................................................... 1 (一)需求分析 ......................................................................................................................... 1 (二)可行性分析 ..................................................................................................................... 1 (三)开发环境 ......................................................................................................................... 1 三.系统设计 ................................................................................................................................... 2 (一)前台模块设计 ................................................................................................................. 2 (二)后台模块设计 ................................................................................................................. 4 (三)后台运行流程 ................................................................................................................. 4 四.数据库设计 ............................................................................................................................... 5 (一)数据库需求 ..................................................................................................................... 5 (二)数据库概念模型 ............................................................................................................. 6 (三)数据表设计 ..................................................................................................................... 8 五.系统详细设计 ........................................................................................................................... 9 (一)前后台页面设计 ............................................................................................................. 9 1.前端页面设计 ..................................................................................................................... 9 2.框架页面设计 ................................................................................................................... 12 (二)动态网站的实现Java .................................................................................................. 13 1.管理员登录功能 ............................................................................................................... 13 2.新闻列表显示功能 ............................................................................................................ 15 3.新闻查询功能 .................................................................................................................... 17 4.新闻删除功能 .................................................................................................................... 18 5.新闻修改功能 ................................................................................................................... 19 6.新闻的添加功能 ................................................................................................................ 21 7.前台新闻显示功能 ........................................................................................................... 23 (三)动态网站的实现PHP .................................................................................................... 24 1.数据库连接 ....................................................................................................................... 25 2.管理员登录功能(查询比较操作) ............................................................................... 25 3.新闻列表页面(查询显示操作) ................................................................................... 26

4.新闻添加(添加数据操作) ........................................................................................... 26 5.新闻的删除(数据删除操作) ....................................................................................... 27 6.用户登出功能 ................................................................................................................... 27 六.响应式网页设计 ..................................................................................................................... 28 (一)响应式网站 ................................................................................................................... 28 (二)本站前端响应式设计 ................................................................................................... 28 (三)网站效果图 ................................................................................................................... 28 七.JAVA与PHP的对比研究 ........................................................................................................ 31 (一)语言的难易性比较 ....................................................................................................... 31 (二)语言的运行快慢比较 ................................................................................................... 31 (三)语言的应用范围 ........................................................................................................... 31 八.总结 ......................................................................................................................................... 32 致谢 ............................................................................................................................................... 33 参考文献 ....................................................................................................................................... 34

一.引言

随着网站建设的技术不断更新,现有的学校学工处网站存在运行的不稳定性已经不能满足良好的用户体验需求。为了解决现有网站运行的不稳定和实现多种终端实现友好访问,实现用户体验的舒适性,本课题主要是利用主流技术重新建设一个学校学工处网站,来展示学校的各类新闻,解决原网站的一些不稳定因素,达到如今网站发展的需求。

网站前台利用WEB开发工具Sublime Text进行开发,使用媒体查询技术实现网站的响应式效果,前台主要功能是展示校内的各种新闻和学生们建言献策。网站后台开发利用MyEclipse,Tomcat以及MySQL数据库搭建的WEB运行环境,建成后实现新闻的增删查改功能,管理员动态分配的功能和学生留言管理的功能。 二.系统分析 (一)需求分析

学校通过网站快速传播校内外新闻,让同学们及时了解学校动态。学生们也可以利用留言板功能把自己的意见、建议反馈给学校,让学校和学生的互动更加便捷时效,也就是说网站前台必须要有各类新闻展示功能和用户留言的功能。网站后台通过对数据库操作对新闻进行操作,能够对管理员账户进行分配,能够管理学生的留言和回复,因此后台必须要有新闻的增删查改操作功能,管理员添加操作功能,留言审核功能。

网站设计好后能够同时在手机、平板以及电脑浏览器中运行,实现同一网站不同终端的访问,达到节省开发成本和良好用户体验的效果。 (二)可行性分析

新闻展示、新闻管理、管理员管理等都是对数据库进行增删查改,而数据库都留有对外使用的接口,因此使用语言对数据库进行操作是完全可行的。而我们开设的JAVAWEB开发课程完全满足此次网站建设需求,所有建设此网站是完全可行的。另外使网站在多平台运行使用的是媒体查询技术,与选学的响应式网站设计课程契合,因此,跨平台访问达到良好的用户体验的设计也是完全可以做到的。 (三)开发环境

1. 开发所用系统:Windows 7

2. 开发所需编辑器:Dreamweaver cs6、Submlie Text3、MyEclipse10.0、PHPstorm 3. 开发所用浏览器:火狐浏览器、IE浏览器、Chrome浏览器 4. 开发所用数据库:MySQL5.6数据库 5. 开发所用服务器:Apache 服务器、PHP5.6

1

三.系统设计 (一)前台模块设计

前台页面包括首页、思想教育、学生天地、学生动态、系部动态、留言板、留言板详细等页面,主要用来展现学校发生的所有的新闻和收集学生的意见、建议。网站逻辑结构如图3-1所示:

图3-1 前台页面逻辑图

首页 思想教育 素质教育 心理健康 学生资助 事务管理 学生天地 留言板 新闻详细 留言详细 首页展现所有模块,起导航作用。首页包含导航、公告与通知、热点图文展示、学工处入口、辅导员博客、及常用的校内网站链接。如图3-2所示:

图 3-2 首页设计示意图

2

页面顶部 网站logo 公告与通知 热点图文 学工动态/系部动态 网站导航 Banner图 学工系统入口 各类新闻展示 页面底部 网络视频

网站的二级页面是新闻列表页面。通过首页的导航可进入各种新闻的列表页面,新闻列表页面包括导航、新闻列表等内容,主要作用是显示新闻的标题列表,起三级页面导航作用。如图3-3所示:

栏目 新闻列表 图3-2 页面底部 图3-3 二级页面设计示意图

页面顶部 网站logo 网站导航 Flash动画特效 其他 新闻详细页面。通过新闻列表页面的超级链接进入新闻详细展示页面,新闻详细页面展示新闻详细内容、新闻有关图片、栏目导航、最新新闻等栏目,如图3-4所示:

图 3-4 三级页面设计示意图

页面顶部 网站logo Banner图片 新闻详细+新闻图片 页面底部 栏目导航+最新新闻 网站导航

3

留言板页面用来给用户填写留言和分别展示留言列表。点击建言献策超链接,进入建言献策页面。页面设计为上中下三段式网页,上部依旧是导航等内容,中部为留言标题列表页面,下部为用户留言的表单,如图3-5所示:

图 3-5 留言页面设计示意图

页面顶部 网站logo Banner图片 留言标题列表 留言表单 网站导航 留言板详细页面显示所有的用户的留言和实现回帖功能。点击留言板页面的留言标题列表,跳转进入详细页面,页面展示留言标题等内容,页面底部为用户留言表单,页面结构类似于图3-5。 (二)后台模块设计

后台页面包括管理员权限分配,新闻内容管理,留言内容管理等,使用框架页面,页面设计如图3-6所示:

页面顶部(登录用户、退出按钮、系统时间) 左侧链接 页面底部 图 3-6 图3-6 后台页面设计示意图

详细内容 (三)后台运行流程

(1) 管理员登录取得后台管理权限;

(2) 管理员分配功能实现添加和删除管理员,对管理员的权限; (3) 新闻管理实现对新闻的增、删、查、改的功能; (4) 留言管理实现对不文明现象管理的功能。 逻辑结构如图3-7所示:

4

图 3-7 后台运行流程图

yes no 登录页面 yes 是否登录成功 no Admin页新闻管理 管理员管理 留言管理 是否退出成功 四.数据库设计

数据库是网站建设的必要数据管理软件。本网站使用MySQL数据库。它是一种小型的数据库,具有占系统开销小,易于操作的特点,并且能够很好适用于JAVA和PHP语言。因此它适合用于小型网站的开发,以及JAVA和PHP网站对比开发。 (一)数据库需求

此网站建设需要创建5个数据表:

管理员表:管理员编号、管理员姓名、管理员密码、管理员状态

新闻内容表:新闻编号、新闻标题、新闻内容、新闻作者、新闻时间、新闻图片

路径1、新闻图片路径2、新闻图片路径3、新闻类型、新闻状态 新闻类型表:新闻类型编号、新闻类型、备注

帖子表:帖子编号、帖子标题、帖子内容、发帖人、发帖时间、电话号码、帖子

5

状态

回复表:回帖编号、帖子编号、帖子内容、回帖人、回帖时间 (二)数据库概念模型

概念模型是人机世界中间的一个层次。

建立概念模型简化了设计者和用户的交流,用户能够一目了然的知道数据关系。 建立概念模型能够让设计者注意到数据之间的关系,在制作数据表时,就能够利用数据之间的关系,减少数据的冗余,使数据表更加的简洁,优化数据操作的速度,具体模型如下:

图4-1 管理员ER图 管理员姓名 管理员密码 管理员编号 管理员 管理员状态

新闻时间

图4-2 新闻ER图

6

新闻状态 新闻作者 新闻图片1、2、3 新闻 新闻类型 新闻编号 新闻标题 新闻内容

新闻类型编号 新闻类型 备注 新闻类型 图4-3新闻类型ER图

图4-4 帖子ER图

帖子标题 帖子内容 发帖人 帖子编号 帖子 帖子状态 电话号码 发帖时间

图4-5 回复ER图

回复编号 回复人 回复内容 帖子编号 回复 回帖时间 7

(三)数据表设计

根据概念模型设计出数据表如下:

表4-1 Admin (管理员)

字段名称 Aid Aname Apwd Status 数据类型 int varchar varchar int 长度 10 20 20 2 约束 主键约束 含义 管理员编号 管理员姓名 管理员密码 管理员状态(判断是否逻辑删除)

表4-2 News (新闻详细内容) 字段名称 Newsid Title Contant Author Date Pic1 Pic2 Pic3 Typeid Status 数据类型 int varchar varchar varchar date varchar varchar varchar int int 长度 20 5000 20000 30 8 150 150 150 10 4 约束 主键约束 外键约束 含义 新闻编号 新闻标题 新闻内容 新闻作者 新闻时间 新闻图片路径1 新闻图片路径2 新闻图片路径3 新闻类型 新闻状态(判断是否逻辑删除)

表4-3 Type (标识新闻类型) 字段名称 Typeid Typename Remarks 数据类型 int varchar varchar 长度 4 50 200 约束 主键约束 含义 新闻类型编号 新闻类型 备注内容

表4-4 Thread (帖子表)

字段名称 Thrid Thrname Thrtitle 数据类型 int varchar varchar 长度 8 20 200 8

约束 主键约束 含义 帖子编号 发帖人 帖子标题

Thrcontant Thrtime Phonenum Status varchar varchar varchar int 3000 50 26 2 帖子内容 发帖时间 发帖人电话 帖子状态(判断是否逻辑删除)

表4-5 Replay (帖子回复表) 字段名称 Repid Thrid Rename Repcontant Reptime 数据类型 int Int varchar varchar varchar 长度 8 8 50 20000 100 约束 主键约束 外键约束 含义 回帖编号 帖子标号 回帖人 回复内容 回帖时间

五.系统详细设计 (一)前后台页面设计 1.前端页面设计

网站页面的布局结构和颜色搭配都按照原有的学校学工处网站进行设计。布局采用三段式结构,颜色主要为淡灰色和深蓝色为主。网站结构严谨,颜色和谐,契合学校治学严谨之风。

网站首页起导航作用。上部主要为网站的logo、导航、公告与通知和banner图片轮播,网站中部为各类新闻的最近新闻列表及校内其他网站的链接,网站底部标示网站的版权,实现布局主要代码如下:

9

首页实现最终效果图如图5-1所示:

图 5-1 首页效果图

网站二级页面风格类似于网站首页,显示具体类型新闻列表,如图5-2所示:

10

图 5-2 新闻列表页面效果

网站三级页面展示新闻详细内容,包括新闻标题、新闻作者、新闻时间、新闻内容、新闻相关图片等,如图5-3所示:

图 5-3新闻详细效果图

11

谏言献策和留言详情页面风格与网站风格保持一致,网站中部主要是留言列表和留言详细,网站底部是用户填写表单,如图5-4,图5-5所示:

图5-4 留言列表效果图5-5 留言详细效果

2.框架页面设计

网站后台管理使用框架页面。框架页面便于管理,并且减少了相同页面的使用量,节省网络流量,使得程序运行更加的灵活轻便,框架页面实现主要代码如下:

框架页面运行结果如图5-6所示:

12

图 5-6 后台管理效果图

(二)动态网站的实现Java

Java语言发展时间长,是一种使用广泛的编程语言。由于其运行速度快,安全性高,被广泛的运用的大公司的网站开发中。

本站就使用Java语言,作为服务器端语言,进行了网站的开发。 1.管理员登录功能

登录页面运用表单,将值传入控制层Servlet,控制层Servlet接受参数,调用数据库操作类,数据库操作类实现对数据库查询判断是否存在此管理员,以及密码是否相同。登录操作不成功,输出登录不成功的原因。登录操作成功,直接跳转进入后台管理页面,如图5-7,图5-8所示:

图5-7 登录效果图

13

图5-8登录成功效果图

操作不成功,返回到原理的页面,显示登录不成功原因。如图5-9所示:

用户名不存在

图5-9登录不成功效果图

控制层主要代码

HttpSession session=request.getSession(); request.setCharacterEncoding(\"utf-8\"); String userName=request.getParameter(\"usename\"); String pwd= request.getParameter(\"pwd\"); String result=\"\";UserOpr uo=new UserOpr(); int flag=uo.verify(userName, pwd); if(flag==1||flag==2){ if( flag==1){ result=\"用户名不存在\"; result=\"密码错误\";} }else if(flag==2){ session.setAttribute(\"ResultInfo\ response.sendRedirect(\"admin/login.jsp\"); 14

} }

Else {result=\"登录成功!\"; session.setAttribute(\"UserName\ response.sendRedirect(\"admin/main.jsp\"); } 数据库操作类主要代码

public int verify(String userName,String pwd){ int flag=-1; sql=\"select * from admin where aname=?\"; try { psmt = con.prepareStatement(sql); psmt.setString(1,userName); //执行SQL ResultSet rs= psmt.executeQuery(); if(rs.next()){ if(pwd.equals(rs.getString(\"apwd\"))){ flag=3; } else{flag=2; }}else{flag=1; } } catch (SQLException e) { e.printStackTrace();} return flag; }

2.新闻列表显示功能

进入后台,点击所有新闻,用标签定向跳转页面并传递标识进入控制层,控制层调用数据库操作类,数据库操作类进行所有新闻的查询并返回结果存进session,并跳转进入right.jsp,在right.jsp读取session数据,遍历取出数据,如图5-10,图5-11 所示:

15

图5-10 管理 图5-11 新闻列表

控制层操作代码

if(flag.equals(\"list\")){ } NewsOpr po=new NewsOpr(); HttpSession session=request.getSession(); session.setAttribute(\"NewsList\response.sendRedirect(\"admin/right.jsp\");

ArrayList list=po.list(); 数据库操作代码

public ArrayList list(){ sql = \"select newsid,title,contant,author,date,typename from news,type where type.typeid=news.typeid and status=1\"; ArrayList list = new ArrayList(); try { psmt = con.prepareStatement(sql); ResultSet rs = psmt.executeQuery(); while(rs.next()){ News p = new News(); p.setNewsid(rs.getInt(\"newsid\")); p.setTitle(rs.getString(\"title\")); p.setContant(rs.getString(\"contant\")); p.setAuthor(rs.getString(\"author\")); p.setDate(rs.getString(\"date\")); p.setTypename(rs.getString(\"typename\")); list.add(p); 16

} } } e.printStackTrace(); } catch (SQLException e) { return list;

3.新闻查询功能

点击新闻查询,进入查询页面,选择查询字段,给出关键字,点击确定查询,控制层接收数据,拼接SQL语句,调用数据库操作类,数据库操作类执行查询查询新闻,返回结果赋给新闻列表的操作列表的控制语句,重复利用新闻列表的代码,减少代码冗余量,如图5-12所示:

图5-12 新闻查询效果

控制层主要代码

if(flag.equals(\"search\")){ NewsOpr po=new NewsOpr(); String searchField=request.getParameter(\"searchType\"); String FieldValue=request.getParameter(\"key\"); String sql = \"select newsid,title,contant,author,date,typename from news,type where type.typeid=news.typeid and \" + searchField + \" like '%\" + FieldValue + \"%' and status=1\"; } 17

ArrayList list=po.search(sql); HttpSession session=request.getSession(); session.setAttribute(\"NewsList\response.sendRedirect(\"admin/right.jsp\");

数据库操作类主要代码

public ArrayList search(String sql){ } ArrayList list = new ArrayList(); try { psmt = con.prepareStatement(sql); ResultSet rs = psmt.executeQuery(); while(rs.next()){ } News p = new News(); p.setNewsid(rs.getInt(\"newsid\")); p.setTypename(rs.getString(\"typename\")); p.setTitle(rs.getString(\"title\")); p.setContant(rs.getString(\"contant\")); p.setAuthor(rs.getString(\"author\")); p.setDate(rs.getString(\"date\")); list.add(p); } catch (SQLException e) {e.printStackTrace();} return list;

4.新闻删除功能

点击删除按钮,控制层接收参数,利用控制层拼接SQL语句,调用数据库操作类对一条记录进行更新操作操作,从逻辑上删除新闻,也就是将新闻的标志字段的值改掉,返回操作结果结果,操作成功后跳转至新闻列表的操作列表的控制语句。操作不成功则弹出警示窗口显示操作状况。如图5-13,图5-14,图5-15所示

图5-13 图5-14 显示出编号为1和2的新闻

18

图5-15 删除编号为1的新闻

控制层主要代码

if(flag.equals(\"delete\")){ } int id=Integer.parseInt(request.getParameter(\"id\")); NewsOpr po=new NewsOpr(); boolean result =po.delete(id); if(result==true){ response.sendRedirect(\"NewsServlet?flag=list\"); }

数据库操作类

public boolean delete(int id){ } 5.新闻修改功能

点击修改按钮,新闻修改页面显示要修改的新闻内容,修改对应新闻内容,提交给控制层,由控制层接收参数并拼接好数据修改语句,调用数据库操作类,数据库操作类执行拼接的修改语句,数据库的更新操作后,显示新的新闻信息,如图5-16所示:

int row = 0; sql = \"update news set status=0 where newsid=?\"; try {psmt = con.prepareStatement(sql); psmt.setInt(1, id); row = psmt.executeUpdate(); e.printStackTrace(); } } catch (SQLException e) { return row>0?true:false;

19

图5-16 新闻修改效果图

控制层核心代码

if(flag.equals(\"update\")){ HashMap map = (HashMap) News news=new News(); news.setTitle(map.get(\"title\")[0]); news.setContant(map.get(\"contant\")[0]); news.setPic1(map.get(\"pic1\")[0]); news.setPic2(map.get(\"pic2\")[0]); news.setPic3(map.get(\"pic3\")[0]); news.setAuthor(map.get(\"author\")[0]); news.setDate(map.get(\"date\")[0]); news.setNewsid(Integer.parseInt(map.get(\"newsid\")[0])); boolean result =po.update(news); if(result==true){ } else{ response.sendRedirect(\"admin/error.html\"); 20

request.getParameterMap(); news.setTypeid(Integer.parseInt(map.get(\"typeid\")[0])); NewsOpr po=new NewsOpr(); response.sendRedirect(\"NewsServlet?flag=list\");

}} 数据库操作类核心代码

public boolean update(News news){ int row = 0; sql=\"update news set

typeid=?,title=?,contant=?,pic1=?,pic2=?,pic3=?,author=?,date=? where newsid=?\"; } try { psmt = con.prepareStatement(sql); psmt.setInt(1, news.getTypeid()); psmt.setString(2, news.getTitle()); psmt.setString(3, news.getContant()); psmt.setString(4, news.getPic1()); psmt.setString(5, news.getPic2()); psmt.setString(6, news.getPic3()); psmt.setString(7, news.getAuthor()); psmt.setString(8, news.getDate()); psmt.setInt(9, news.getNewsid()); row = psmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace();} return row>0?true:false;

6.新闻的添加功能

进入添加页面,填写添加新闻内容,由表单将数据提交给控制层,控制层接收参数并调用数库操作类中添加新闻的方法,将数据添加至数据库后,页面定向到新闻列表页面,可以查看添加的新闻内容:如图5-17所示:

21

图5-17 新闻添加效果图

控制层核心代码

if(flag.equals(\"add\")){ if(result==true){ response.sendRedirect(\"NewsServlet?flag=list\"); }else{ }} response.sendRedirect(\"admin/error.html\");

HashMap map = (HashMap) News news=new News(); news.setTypeid(Integer.parseInt(map.get(\"typeid\")[0])); news.setTitle(map.get(\"title\")[0]); news.setContant(map.get(\"contant\")[0]); news.setPic1(map.get(\"pic1\")[0]); news.setPic2(map.get(\"pic2\")[0]); news.setPic3(map.get(\"pic3\")[0]); news.setAuthor(map.get(\"author\")[0]); news.setDate(map.get(\"date\")[0]); boolean result =po.add(news); request.getParameterMap(); NewsOpr po=new NewsOpr(); 数据库操作类核心代码

public boolean add(News news){ int row = 0; 22

sql = \"insert into news (typeid,title,contant,pic1,pic2,pic3,author,date) values(?,?,?,?,?,?,?,?)\"; try { psmt = con.prepareStatement(sql); psmt.setInt(1, news.getTypeid()); psmt.setString(2, news.getTitle()); psmt.setString(3, news.getContant()); psmt.setString(4, news.getPic1()); psmt.setString(5, news.getPic1()); psmt.setString(6, news.getPic1()); psmt.setString(7, news.getAuthor()); psmt.setString(8, news.getDate()); row = psmt.executeUpdate(); } catch (SQLException e) { } e.printStackTrace();} return row>0?true:false;

7.前台新闻显示功能

在数据库操作类进行数据查询前6条记录,在前台页面调用操作类中的相关方法,获得查询到的数据,然后将查询结果遍历显示在前台页面中,进行8次此类似操作,或将函数封装,依次调用效果类似,如图5-18,图5-19所示:

图5-18 首页新闻效果图

23

图5-19首页新闻效果图

数据库操作类中的主要代码

public ArrayList listsx(){ sql = \"select newsid,title,contant,author,date,typename from news,type where type.typeid=news.typeid and status=1 and typename='思想教育' order by date desc limit 0,6 \"; ArrayList listsx = new ArrayList(); try { psmt = con.prepareStatement(sql); ResultSet rs = psmt.executeQuery(); while(rs.next()){ News p = new News(); p.setNewsid(rs.getInt(\"newsid\")); p.setTitle(rs.getString(\"title\")); p.setContant(rs.getString(\"contant\")); p.setAuthor(rs.getString(\"author\")); p.setDate(rs.getString(\"date\")); p.setTypename(rs.getString(\"typename\")); listsx.add(p); } } } catch (SQLException e) {e.printStackTrace();} return listsx;

(三)动态网站的实现PHP

PHP 是一种 HTML 内嵌式的语言。它具有内置函数非常丰富,使用简单,开发周期短等特点,被广泛小的网络科技公司看中。在硬件技术发达的今天,运行速度的劣势完全

24

可以用硬件替代,因此PHP是不可多得的经济型语言。

所以,本站也使用PHP语言,作为服务器端语言,使用面向过程进行了网站的开发。 1.数据库连接

PHP提供了数据库连接函数,使用函数连接后返回资源类型,资源存在,则连接数据库成功,资源不存在的话,直接打印数据库连接失败,此代码可以作为配置页面执行,可以减少数据库的连接端口数,减轻运行负担。实现代码如下

$conn=mysql_connect('localhost','root','zsl19941016'); $sql='use xuegong'; $rs=mysql_query($sql,$conn); if(!$rs){ echo '链接数据库失败!'; exit(); }

2.管理员登录功能(查询比较操作)

表单收集用户提交管理员姓名与管理员密码到控制登录的PHP页面,PHP处理页面负责接收数据,拼接查询语句,查询数据库是否由此数据。如果查询到有此用户名并且密码匹配,则跳转进入后台管理页面。如果没有此用户或者密码不匹配则返回登录表单页面,具体实现代码如下:

require('../../link.php'); if(isset($_POST['act'])){ $usename=$_POST['usename']; $pwd=$_POST['pwd']; $sql=\"select * from admin where aname='$usename'\"; $rs=mysql_query($sql,$conn); $k=mysql_fetch_row($rs); if (empty($k[1])) { $result= '输入有误!'; session_start(); $_SESSION[\"result\"]=$result; $url = \"../index.php\"; echo ''; }else if($k[2]!=$pwd){ $_SESSION[\"result\"]=$result; $url = \"../index.php\"; 25

$result='输入有误!';

} echo ''; }else{ } $url = \"../main.php?username=$usename\"; echo ''; }else{

3.新闻列表页面(查询显示操作)

点击左侧新闻列表链接,系统调用数据库执行新闻查询,查询后将所得到的资源返回,页面接收资源后,使用遍历方法,将资源一条条取出,显示在页面上,关键代码如下:

$sql='select * from news,type where status=1 and news.typeid=type.typeid'; $rs=mysql_query($sql,$conn); $list=array(); while ($k=mysql_fetch_assoc($rs)) { $list[]=$k;} foreach ($list as $v) { echo $v['newsid']; echo $v['typename'] ; }

4.新闻添加(添加数据操作)

填写所要添加新闻内容,提及表单,进入AddnewsAction.php页面,此页面负责接收表单提交来的数据并插入数据表中,插入成功,跳转至新闻列表页面,插入数据失败,警告操作失败,关键代码如下:

require('../../link.php'); $typeid=$_POST[\"typeid\"]+0; $title=$_POST[\"title\"]; $contant=$_POST[\"contant\"]; $pic1=$_POST[\"pic1\"]; $pic2=$_POST[\"pic2\"]; 26

$pic3=$_POST[\"pic3\"]; $author=$_POST[\"author\"]; $date=$_POST[\"date\"]; $sql=\"insert into news (title,contant,pic1,pic2,pic3,typeid,author,date) values ('$title','$contant','$pic1','$pic2','$pic3','$typeid','$author','$date')\"; $rs=mysql_query($sql,$conn); if ($rs) { $url = \"../right.php\"; echo ''; } else { } echo \"操作失败,请检查操作是否有误!\";

5.新闻的删除(数据删除操作)

点击删除链接,页面传递所需删除信息的主键,操作页面则接收到主键,后根据主键修改相应数据内容,具体实现代码如下:

require('../../link.php'); $newsid=$_GET['id']; $sql=\"update news set status=0 where newsid='$newsid'\"; $rs=mysql_query($sql,$conn); if ($rs) { $url = \"../right.php\"; echo ''; } else { } echo \"操作失败,请检查操作是否有误!\";

6.用户登出功能

网站后台访问是判断是否存在用户名的SESSION值,SESSION存在则判断用户处于登录状态,反之,用户处于未登录状态。因此只要删除网站中保存的用户名的SESSION数据就可以实现用户登出功能,具体实现代码如下:

27

session_start(); session_destroy(); $url = \"index.php\"; echo '';

网站其他功能的实现类似于增删查改操作,在此不再赘述。 六.响应式网页设计 (一)响应式网站

响应式Web设计。响应式Web页面能根据用户的行为,用户所使用的终端设备的屏幕尺寸,自动改变网页的布局,网页界面依然符合用户的视觉习惯。

传统的网页开发一般只能支持一种设备,很多网站为了吸收用户,经常一种设备做一个网站。但是如今访问网站的设备越来越多,且屏幕尺寸多样,因此响应式开发更能够减少传统网站一种设备建个网站所造成的资源浪费,跟加的符合社会发展需求。

响应式网站主要运用媒体查询技术。浏览器访问时获得访问窗口的大小,根据窗口的大小调用相应的CSS样式,达到响应式效果。 (二)本站前端响应式设计

首先,必须在网站的头部引入

此句话的作用是始终保持页面不要缩小,依然100%的显示网页内容。然后在相应的CSS样式表中设置如下几种状态,并对这几种状态下屏幕显示的内容分别写自己的样式:

@media screen and ( min-width: 965px){屏幕最小宽度为965px的网页所用样式} @media screen and ( min-width: 760px) and ( max-width: 9px){ 屏幕宽带处于760px到9px之间网页所用样式 } @media screen and ( min-width: 481px ) and ( max-width: 759px ){ 屏幕宽带处于481px到759px之间网页所用样式 } @media screen and ( max-width: 480px){ 屏幕最大宽度为480px的网页所用样式} (三)网站效果图

网页最终效果如图6-1、图6-2、图6-3所示

28

图 6-1 电脑屏幕访问效果图

29

图 6-2 平板访问效果图 图 6-3手机访问效果图

30

七.JAVA与PHP的对比研究

在用两种编程语言对网站进行设计时,发现了两种语言各自的优缺点。以下是两种语言的比较,仅作为自己的观点。 (一)语言的难易性比较

JAVA语言学习时间较长,编程是出现问题时往往要很多页面联合起来,排除错误。Php语言学习周期较短,内置函数丰富,使用简单。 (二)语言的运行快慢比较

JAVA语言第一次运行时速度稍慢,因为Java程序第一次运行时对文件进行编译,在以后的调用中,程序执行编译好的文件,所以运行速度很快。PHP语言是程序运行时对所用的内容都执行一遍,所用访问的速度比较的慢。在做网站过程中是能感受到两种语言运行区别的。 (三)语言的应用范围

JAVA语言运用非常的广泛,例如网站的开发、手机系统的开发,游戏程序的开发,应用软件的开发等。而PHP语言一般只在网站开发时使用。

31

八.总结

基于响应式的苏工院学工处网站建设利用DIV+CSS技术完成前端布局,使用媒体查询技术完成响应式设计。网站使用JAVA语言和PHP语言对数据库进行操作,实现动网效果。

本网站主要作用是展示学工处所用的新闻,和留给学生一个可以自由提出建议意见的地方。网站包括学工动态、系部动态、思想教育、素质教育、事物管理、学生资助、心理健康、宿舍管理、学生天地、行政公文以及谏言献策模块。新闻列表查询以时间倒序排列,使最近添加的新闻展现在最上面,便于浏览者的阅读。浏览者可以将自己的建议上传在网站,体现网站信息实时性,有效性。

本网站是参考原有学工处网站进行设计,主要选取学工处网站的两个功能进行设计,有些其他的功能没有设计好,所以网站的功能可能有些单调,并且数据加密、页面权限等内容没有设计,所以网站在保密性方面还是有很大的缺陷的。另外,网站的封装程度较低,可能不利于后期的危害。但是网站做成响应式,增加了网站的一些技术含量,可以弥补动网的不足。

从响应式课程学习开始到现在毕业设计说明快要结束已经历经了一年。回忆这一年学习和制作毕业设计的过程,有劳累,有烦躁,有迷惘……但是,我还是坚持下来了,最后完成了本次设计。对于我所设计的作品,我不是十分的满意,但我还是很满足的,这都是我一点点搭建起来的,这就是一种见到胜利曙光的感觉吧。

在完成毕业设计的这段时间里,我学到了很多的东西。首先,明白了做事要有明确的目标,有明确的目标,才能知道做什么,才能知道怎么做。所以要早早的定下目标并做出长时间的准备。其次是坚持,网站制作过程繁琐复杂,没有坚持是不会有今天的成果的。再次是学会学习,在遇到困难的时候,自己不能解决的一定要询问他人,闭门造车,提升能力的可能性是很小的。

32

致谢

在这期间我要感谢很多人。首先,感谢我的毕业设计指导老师,xxx老师。在做毕业设计的过程中,我遇到了很多的问题,自己没办法解决的,老师都提供了热情的指导。其次,感谢我们专业负责人xxx老师。沈老师在查看我的项目时,提出了项目中的一个严重的错误。再次,感谢PHP网络视频作者xxx老师。xxx是我的PHP课程启蒙老师,他的课程幽默风趣,详细,对我项目中PHP编程部分起着很重要的作用。最后,感谢所有在设计中帮助过我的人和寻求我帮助的人,他们都是我提升能力的重要一笔。

33

参考文献

[1] 杨习伟.HTML5+CSS3网页开发实战精解[M].清华大学出版社. 2013年1月. [2] 赵国玲、王宏.JAVA语言程序设计[M]. 机械工业出版社. 2010年3月. [3] 王莹. JavaScript网页特效案例教程[M].机械工业出版社. 2011年11月. [4] 尹雯雯.基于MVC的Java Web开发项目式教程[M].人民邮电出版社. 2014年12月. [5] 单东林、张晓菲.锋利的JQuery(第2版)[M].人民邮电出版社. 2012年7月. [6] 明日科技. PHP从入门到精通(第3版)[M]. 清华大学出版社. 2012年9月.

34

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务