一.项目分析

1.前端后端功能分析

前端功能

  1. 用户登录
  2. 用户注册
  3. 分类显示
  4. 信息显示
  5. 分页功能(首页,下一页,上一页,尾页)
  6. 历史记录功能
  7. 评论模块

后台功能

  1. 管理员登录
  2. 主页默认显示所有新闻+分页
  3. 发布新闻
  4. 修改新闻
  5. 分类模块:增删改查模块
  6. 评论模块:增删改查
  7. 普通用户管理:增删改查
  8. 分页功能

2.数据表分析

从模板中分析到有以下数据表:用户表(普通用户+管理员),新闻分类标,新闻信息表,评论表

用户信息表

字段名

中文说明

数据类型

约束

备注

Userid

编号

Number

主键

Username

用户名

Varchar2

Password

密码

Varchar2

sex

性别

Varchar2

Hobby

爱好

Varchar2

address

地址

Varchar2

urole

权限

number

0管理员 1普通用户(默认)

udate

注册时间

date

分类表|主题表

字段名

中文说明

数据类型

约束

备注

Tid

分类编号

Nunber

主键

tname

分类名称

Varchar2

信息表:

字段名

中文说明

数据类型

约束

备注

Nid

新闻编号

Number

主键

nTid

新闻分类编号

Number

外键

Ntitle

标题

Varchar2

Nauthor

作者

Varchar2

nsummary

摘要

Varchar2

ncontent

内容

Varchar2

nimage

图片

Varchar2

ncount

点击量

number

ndate

发布时间

date

二.项目代码

Oracle数据代码

create table tb_news_users
(
Userid number primary key,
Username varchar2(100),
Password varchar2(100),
sex varchar2(2),
Hobby varchar2(100),
address varchar2(100),
urole number default 1,--0 管理员  1普通用户
udate date)
insert into tb_news_users
values
(1,'admin','123','男','玩游戏','湖南长沙',0,sysdate)
commit;
select * from tb_news_users;--主题表
create table tb_news_theme
(tid number(20) primary key,tname varchar2(20))insert into tb_news_theme values(1,'国际');
insert into tb_news_theme values(2,'美女');
insert into tb_news_theme values(3,'游戏');
insert into tb_news_theme values(4,'娱乐');
insert into tb_news_theme values(5,'体育');
insert into tb_news_theme values(6,'足浴');
insert into tb_news_theme values(7,'恐怖');
insert into tb_news_theme values(8,'军事');
insert into tb_news_theme values(9,'科技');
insert into tb_news_theme values(10,'数码');
insert into tb_news_theme values(11,'动漫');
commitcreate table tb_news
(nid number(20) primary key,ntid number(20) references tb_news_theme(tid),ntitle varchar2(100),nauthor   varchar2(20) ,nsummary varchar2(200),ncontent varchar2(2000)
)insert into tb_news values
(1,2,'毒瘤爱上女总裁1','张三','这是一个怎样的故事1?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');
insert into tb_news values
(2,2,'毒瘤爱上女总裁2','李四','这是一个怎样的故事2?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');
insert into tb_news values
(3,2,'毒瘤爱上女总裁3','张无忌','这是一个怎样的故事3?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');
insert into tb_news values
(4,2,'毒瘤爱上女总裁4','渣渣辉','这是一个怎样的故事4?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');commit;select * from tb_news_theme
select * from tb_news

① 用户登录

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>项目发布系统-管理员登录</title>
<!-- 引入login.css -->
<link rel="stylesheet" type="text/css" href="css/login.css"/>
<!-- JavaScript 验证表单区域 -->
<script type="text/javascript">var code = "";//保存验证码//验证的需求:利用随机数  +拼接+数组存储需要随机的字符var arr =['a','b','c','d','e','f','g','h','i','j','k','l','0','1','2','3','4','5','6','7','8','9'];function $(id){return document.getElementById(id);}//加载函数window.onload = function(){//设置username的焦点事件$("username").onblur = function(){var usernameValue = this.value;if(!usernameValue){alert('用户名不能为空')return false;}return true;}//设置password的焦点事件$("password").onblur = function(){var passwordValue = this.value;if(!passwordValue){alert('密码不能为空')return false;}return true; }//获取表单设置表单的阻止提交事件$("myForm").onsubmit = function(){if(!$("username").onblur() || !$("password").onblur() || !$("code").onblur()){return false;}return true;}//获取验证码进行匹配$("code").onblur = function(){//获取输入项中的验证码var inputCode = this.value;//获取span标签随机生成保留的验证码var spanCode = $("code_val").innerHTML;if(!inputCode){alert('验证码不能为空');return false;}else{//编写了验证码if(inputCode!=spanCode){alert('验证码输入错误');this.value = "";//重新生成return false;}}return true;};//问题:验证码的实现通过什么技术?//随机生成的验证码 有四个字母或者数字?    随机//javascript  随机器   Math.random()  0-1之间        //生成一个0-9的随机数/* var sj = Math.random()*10;// 向下取整 console.log(Math.floor(sj)); */setCode();/* 如果span中存储的验证码不清晰  需要重新修改  设置span的点击事件 */$("code_val").onclick = function(){setCode();}};//封装验证码生成function setCode(){//清空上一次保留的验证码code = "";//通过Math.random();产生一个随机数for(var i = 0;i<4;i++){/* 取范围 乘  数组的长度个数 */var sj = Math.floor(Math.random()*arr.length);//console.log(sj)//console.log(arr[sj]);  //根据随机数获取数组中的元素code+=arr[sj];}//获取存储验证码的span标签$("code_val").innerHTML = code;}</script>   </head><body><!-- 登录大容器 --><div id="login"><!-- 上 --><div id="top"><div id="top_left"><img src="data:images/login_03.gif" /></div><div id="top_center"></div></div><!-- 中 --><div id="center"><div id="center_left"></div><!-- 表单区域 --><div id="center_middle" style = "background:pink"><form id = "myForm" action = "doLogin.jsp" method = "post"><div id="user">用 户<input type="text" id= "username" name="username" /></div><div id="pwd">密 码<input type="password" id = "password" name="password" /></div><!-- 登录前需要验证码进行验证 --><div id = "yzm">验证码 <input type ="text" name = "code" id = "code"/><span id = "code_val">SBSB</span></div><div id="btn"><input type = "submit" value = "登录"/><input type = "reset" value = "清空"/></div></form></div><div id="center_right"></div></div><!-- 下 --><div id="down"><div id="down_left"><div id="inf"><span class="inf_text">版本信息</span><span class="copyright">管理信息系统 2008 v2.0</span></div></div><div id="down_center"></div></div></div></body>
</html>

② 登录中转站

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%//该页面作用:根据request对象获取登录表单提交的值进行数据库交互//1.设置编码request.setCharacterEncoding("utf-8");//2.获取表单提交的值//用户名String username = request.getParameter("username");//密码String password = request.getParameter("password");//3.数据库交互String uname = "";String pwd = "";//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接String url = "jdbc:oracle:thin:@localhost:1521:orcl";Connection conn = DriverManager.getConnection(url, "scott", "123");//sqlString sql = "select * from tb_news_users where username = ? and password = ?";PreparedStatement ps = conn.prepareStatement(sql);ps.setString(1,username);ps.setString(2,password);ResultSet rs = ps.executeQuery();if(rs.next()){//存在 就可以登录uname = rs.getString(1);pwd = rs.getString(2);}if(""!=uname && ""!=pwd){//转发到主页面request.getRequestDispatcher("admin.jsp").forward(request, response);}else{//out.println(js)response.sendRedirect("login.jsp");}%>

③ 项目后台主页

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>项目发布系统-后台主页</title><link rel="stylesheet" type="text/css" href="css/admin.css" /></head><body><div id="header"><div id="welcome">欢迎使用项目管理系统!</div><div id="nav"><div id="logo"><img src="data:images/logo.jpg" alt="中国" /></div><div id="a_b01"><img src="data:images/a_b01.gif" alt="" /></div></div></div><div id="admin_bar"><div id="status">管理员:<%=request.getParameter("username") %> 登录      <a href="#">login out</a></div><div id="channel"> </div></div><div id="main"><div id="opt_list"><ul><li><a href="admin.html">管&nbsp;&nbsp;理&nbsp;&nbsp;首&nbsp;&nbsp;页</a></li><li><a href="add_news.jsp">新&nbsp;&nbsp;闻&nbsp;&nbsp;发&nbsp;&nbsp;布</a></li><li><a href="admin_themeMaintain.html">主&nbsp;&nbsp;题&nbsp;&nbsp;维&nbsp;&nbsp;护</a></li><li><a href="admin_themeMaintain.html">评&nbsp;&nbsp;论&nbsp;&nbsp;管&nbsp;&nbsp;理</a></li><li><a style="color: red;" href="#">系统账号管理</a></li><li><a style="color: red;" href="#">注册用户管理</a></li></ul></div><div id="opt_area"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><script language="javascript">function clickdel() {return confirm("删除请点击确认");}</script><ul class="classlist"><li> <a href="admin_newsDetail.html">1     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 2     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 3     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 4     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 5     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li class='space'></li><li> 6     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 7 <span> 作者:news     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 8 <span> 作者:news     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 9<span> 作者:out     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 10 <span> 作者:news     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li class='space'></li><li> 11 <span> 作者:news     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 12 <span> 作者:news     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 13<span> 作者:out     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 14 <span> 作者:news     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li> 15 <span> 作者:news     <a href='admin_editNews.html'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li><li class='space'></li><p align="right"> 当前页数:[1/3]&nbsp; <a href="#">下一页</a> <a href="#">末页</a> </p></ul></div></div></body>
</html>

④ 项目后台发布管理

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新闻发布--管理后台</title><link rel="stylesheet" type="text/css" href="css/admin.css" /></head><body><div id="header"><div id="welcome">欢迎使用新闻管理系统!</div><div id="nav"><div id="logo"><img src="data:images/logo.jpg" alt="新闻中国" /></div><div id="a_b01"><img src="data:images/a_b01.gif" alt="" /></div></div></div><div id="admin_bar"><div id="status">管理员: 登录     <a href="#">退出</a></div><div id="channel"> </div></div><div id="main"><div id="opt_list"><ul><li><a href="admin.html">管&nbsp;&nbsp;理&nbsp;&nbsp;首&nbsp;&nbsp;页</a></li><li><a href="admin_addNews.html">新&nbsp;&nbsp;闻&nbsp;&nbsp;发&nbsp;&nbsp;布</a></li><li><a href="admin_themeMaintain.html">主&nbsp;&nbsp;题&nbsp;&nbsp;维&nbsp;&nbsp;护</a></li><li><a style="color: red;" href="#">系统账号管理</a></li><li><a style="color: red;" href="#">注册用户管理</a></li></ul></div><div id="opt_area"><h1 id="opt_type"> 添加新闻: </h1><form action="doAddNews.jsp" method="post"><p><label> 主题 </label><select name="ntid"><option value="1">国际</option><option value="2">美女</option><option value="3">游戏</option><option value="4">娱乐</option><option value="5">体育</option></select></p><p><label> 标题 </label><input name="ntitle" type="text" class="opt_input" /></p><p><label> 作者 </label><input name="nauthor" type="text" class="opt_input" /></p><p><label> 摘要 </label><textarea name="nsummary" cols="40" rows="3"></textarea></p><p><label> 内容 </label><textarea name="ncontent" cols="70" rows="10"></textarea></p><p><label> 上传图片 </label><input name="file" type="file" class="opt_input" /></p><input name="action" type="hidden" value="addnews"><input type="submit" value="提交" class="opt_sub" /><input type="reset" value="重置" class="opt_sub" /></form></div></div></body>
</html>

⑤ 项目后台发布管理中转站

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%//作用:获取新增表单的数据进行数据库交互//1.编码格式request.setCharacterEncoding("utf-8");//2.获取表单提交的数据//编号int nid = 0;//定义一个变量保存最终的id//链接数据库查询到最大的id   最后+1//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接String url = "jdbc:oracle:thin:@localhost:1521:orcl";Connection conn = DriverManager.getConnection(url, "scott", "123");String sql = "select nvl(max(nid),0) from tb_news";PreparedStatement ps = conn.prepareStatement(sql);ResultSet rs = ps.executeQuery();if(rs.next()){nid = rs.getInt(1)+1;}//新闻分类idString tid = request.getParameter("ntid");int ntid = Integer.valueOf(tid);//标题String ntitle = request.getParameter("ntitle");//作者String nauthor = request.getParameter("nauthor");//摘要String nsummary = request.getParameter("nsummary");//内容String ncontent = request.getParameter("ncontent");//新增新闻sql = "insert into tb_news(nid,ntid,ntitle,nauthor,nsummary,ncontent,ndate,ncount) values (?,?,?,?,?,?,sysdate,0)";ps = conn.prepareStatement(sql);ps.setInt(1, nid);ps.setInt(2,ntid);ps.setString(3,ntitle);ps.setString(4,nauthor);ps.setString(5,nsummary);ps.setString(6,ncontent);int n = ps.executeUpdate();if(n>0){out.print("<script>alert('发布成功');location.href='admin.jsp'</script>");}else{out.print("<script>alert('发布失败');location.href='add_news.jsp'</script>");}%>

JavaWEB-04 项目案例(1)相关推荐

  1. JavaWeb 项目案例(新能源汽车动力电池信息)

    项目案例 目录 项目案例 项目要求 页面要求 数据库设计 具体操作 项目编写 新建数据库 编写前端页面 编写 JavaBean 实现功能 显示所有 添加数据和表单验证 删除数据 修改数据 查询数据 项 ...

  2. 于.net开发平台项目案例集锦

    订阅 | 上一篇 | 下一篇 五味笔记 于.net开发平台项目案例集锦  作者:henq 日期:2007-09-14 字体大小: 小 中 大 基于.net开发平台项目案例集锦 经过微软.net Fra ...

  3. javaweb(04) xml

    javaweb(04) xml xml简介 什么是xml xml(eXtensible Markup Language) 是可扩展的标记性语言.xml的使命,就是以一个统一的格式,组织有关系的数据,为 ...

  4. 数据可视化-echarts入门、常见图表案例、超详细配置解析及项目案例

    文章目录 数据可视化-echarts入门.常见图表案例及项目案例 一.简介 一.数据可视化简介 二.echarts简介 三.echarts特点 四.ZRender介绍 二.Echarts的基本使用 一 ...

  5. 52套JavaEE项目案例实战大全视频课程

    目录: 第01项目:OA办公自动化项目(四套) 第02项目:CRM客户关系管理项目(两套) 第03项目:宅急送项目 第04项目:杰信商贸SSH版 第05项目:电力项目(两套) 第06项目:校内网项目 ...

  6. OpenCV-PyQT项目实战(5)项目案例01:图像模糊

    欢迎关注『OpenCV-PyQT项目实战 @ Youcans』系列,持续更新中 OpenCV-PyQT项目实战(1)安装与环境配置 OpenCV-PyQT项目实战(2)QtDesigner 和 PyU ...

  7. 世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?

    来自公众号:五分钟学算法 今天分享四个代码量很少,但很牛逼很经典的算法或项目案例. 1.no code 项目地址: https://github.com/kelseyhightower/nocode ...

  8. 大数据项目开发案例_大数据分析技术——项目案例2(房价数据分析上)

    1 二手房房价分析简述 在现在这个社会,房子成为绝大多数人心中难以抹去的痛:不仅在于它的价格高不可攀,也在于我们多少有些囊中羞涩.若不是得益于亲朋好友相助.父母相帮,估计依靠着我们这点微薄的薪水去购房 ...

  9. python小项目案例-拯救Python新手的几个项目实战

    原标题:拯救Python新手的几个项目实战 Python 做小游戏 实例一:24点游戏 项目名称:经典趣味24点游戏程序设计(python) 实例二:五子棋游戏 python学习关注我们企鹅qun: ...

  10. python项目开发实战网盘-《Python项目案例开发从入门到实战》PDF版百度网盘

    「教程分享:Python项目开发从入门到实列」 本书例子具有实用性,20个不同类型的完整列子,600分钟高品质配套教学视频,完整的源码和教学课件,让你对枯燥的Python语言学习充满乐趣. 编辑推荐 ...

最新文章

  1. matlab llc谐振电路,一个菜鸟对LLC谐振知识的渴望
  2. 第一个net-mvc程序
  3. 开源多年后,Facebook这个调试工具,再登Github热门榜
  4. 意法半导体STM32 ARM Cortex 32位微控制器
  5. publishing failed with multiple errors
  6. 理解Maven中的SNAPSHOT版本和正式版本
  7. 移动机器人建图与导航代码实现——3.Path Tracking
  8. UIImageView 上下和左右翻转 不是旋转
  9. WPF案例:如何设计历史记录查看UI
  10. 开学季|计算机专业的你看过来!
  11. php 设置多个html条件_PHP-FPM是个啥
  12. Access导入Sql 2008 R2 错误 0xc020801c
  13. 极客大学架构师训练营 性能优化 性能测试指标 性能测试 性能优化 CDN 网络 硬盘 缓存 异步 集群 第13课 听课总结
  14. java读取properties配置文件路径
  15. synaptics触摸板_使用Dell Synaptics触摸板修复Firefox滚动问题
  16. 正式赛1010 羊村村长选举
  17. ppt怎么制作抖音快手快闪效果的倒计时动画?
  18. NG Toolset开发笔记--5GNR Resource Grid(1)
  19. 波音737连续坠毁,AI要背锅?
  20. 按现在的政策灵活就业人员,还有没有必要每年自己缴纳养老保险?

热门文章

  1. C语言指针详解(初级)
  2. LightWave 3D 2019 for Mac(三维动画制作软件)
  3. linux socket 编程
  4. vue中activated和deactivated是什么
  5. 1838.最高频元素的频数
  6. cmd导入python模块_Python如何导入模块
  7. 【转】linux服务器的Gzip文件压缩方法
  8. 关于Python的静态变量
  9. delphi 两行代码实现合并多张图片生成mp4视频
  10. Camera | 3.瑞芯微平台MIPI摄像头常用调试命令