使用JSP做一个小小的新闻项目(END)

  • 用户主页:
    • show.jsp:用户的一个浏览界面
  • 管理员主页:
    • index.jsp:管理员主页(完全版,没多大变化,完善了一些机制)
  • 新闻阅读:
    • read.jsp:阅读主界面(同样是老面孔,但是变强了)
  • 新闻增加:
    • add.jsp:加了一点机制
  • 新闻修改:
    • upd.jsp:加了一点机制
  • 新闻的删除:此功能在阅读界面实现
    • doDel:处理删除新闻的请求
  • 评论的操作:此功能在阅读界面实现
    • doAddComment.jsp:处理增加评论的请求
    • doDelComment.jsp:处理删除评论的请求
  • 完整的源码:

项目我将会放在文章结尾处分享给大家,大家下载之后解压就可以了,数据库的建表语句和关系图我也一并放在压缩包里面了。
数据库的表格存在部分问题,主要是在缺少性别和年龄两个属性,有两个方法可以解决:一种是将doRegister.jsp中的增加语句修改一下,第二种就是修改数据库的表格。
还有就是增加语句有一点小小的问题,增加一个用户需要一个ID,可以在Oracle里面增加一个触发器,也可以再写一个查询最大ID的方法(SQL语句使用MAX),还可以手动修改

用户主页:

show.jsp:用户的一个浏览界面

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>Document</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/css/bootstrap.css"><script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script><script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
</head><body><nav class="navbar navbar-default hidden-sm hidden-xs"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" style="font-size: 25px;">当前是新闻首页</a></div><ul class="nav navbar-nav navbar-right" style="margin-right: 20px;"><li><a href="${pageContext.request.contextPath}/login.jsp">返回管理员登录界面<span class="glyphicon glyphicon-road"></span></a></li></ul></div></nav><div class="container" style="margin: 10px auto;"><div class="btn-group btn-group-justified"><%String topicId=request.getParameter("topicId");//导入驱动(sqlserver,oracle,mysql),一定要执行 build path,且需要导入对应的jar包//OracleDriverClass.forName("oracle.jdbc.driver.OracleDriver");//这里使用的是oracle的驱动//编写连接语句String URL="jdbc:oracle:thin:@localhost:1521:orcl";//获得连接Connection con=DriverManager.getConnection(URL, "scott", "tiger");//获得预编译对象(执行对象)PreparedStatement ps=con.prepareStatement("SELECT * FROM T_TOPIC");//获得结果集ResultSet rs=ps.executeQuery();while(rs.next()){if(topicId!=null){%><a href="show.jsp?topicId=<%=rs.getInt(1) %>" type="button" class="btn btn-success <%=rs.getInt(1)==Integer.parseInt(topicId)?"active":"" %>"><%=rs.getString(2)%></a><%}else{%>    <a href="show.jsp?topicId=<%=rs.getInt(1) %>" type="button" class="btn btn-success"><%=rs.getString(2)%></a><%}}%></div></div><div class="container"><ul class="list-group"><%String sql="SELECT * FROM T_NEWS";if(topicId!=null){sql+=" WHERE NEWS_TOPIC="+topicId;//这里需要在语句前面加上一个空格}ps=con.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){%><li class="list-group-item"><h4 class="list-group-item-heading"><a href="${pageContext.request.contextPath}/news/read.jsp?newsId=<%=rs.getInt(1) %>&userId=<%=request.getParameter("userId") %>" data-placement="bottom" data-toggle="tooltip" title="<%=rs.getString(2) %>"><%=rs.getString(2) %></a></h4><p class="list-group-item-text text-right"><span class="glyphicon glyphicon-user"><code><%=rs.getString(4) %></code></span><span class="glyphicon glyphicon-eye-open"><code><%=rs.getInt(8) %></code></span><span class="glyphicon glyphicon-tag"><code><%=rs.getInt(9) %></code></span><span class="glyphicon glyphicon-time"><code><%=rs.getString(5) %></code></span></p></li><%}%></ul></div>
</body>
</html>

效果如下:

管理员主页:

index.jsp:管理员主页(完全版,没多大变化,完善了一些机制)

<%@page import="java.nio.charset.StandardCharsets"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">
<%
String userId=request.getParameter("userId");
//判断是否为管理员,不是则返回登录界面
if(userId.equals("null")){out.print("<script>location.href='../login.jsp'</script>");return;
}
%>
<head><meta charset="UTF-8"><title>主页</title><meta content="width=device-width, initial-scale=1" name="viewport"><%--底下三行是导入的外部样式 --%><link href="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/css/bootstrap.css" rel="stylesheet"><script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script><script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/bootstrap.js"></script><%--自定义的样式 --%><style>* {outline: none !important;}body,html {background: #7f8d90;}nav,.breadcrumb {border-radius: 0px !important;margin-bottom: 0px !important;}.breadcrumb {margin-bottom: 20px !important;background: #36485c;color: white;}li h4 {width: 300px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}.breadcrumb .active {color: yellow;}</style>
</head><body>
<nav class="navbar navbar-default hidden-sm hidden-xs"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" href="index.jsp?userId=<%=request.getParameter("userId") %>" style="font-size: 25px;">虚空</a></div><ul class="nav navbar-nav"><li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown"> 新闻管理<span class="caret"></span></a><ul class="dropdown-menu"><li><a href="${pageContext.request.contextPath}/news/add.jsp?userId=<%=request.getParameter("userId") %>">新闻发布</a></li><li class="divider"></li><li><a href="${pageContext.request.contextPath}/news/show.jsp">前端新闻主页</a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li><a><%=request.getParameter("userId") %></a></li><li><a href="${pageContext.request.contextPath }/login.jsp">退出<span class="glyphicon glyphicon-off"></span></a></li></ul></div>
</nav><ol class="breadcrumb"><li>您当前的位置是</li><li>新闻发布系统</li><li class="active">首页</li>
</ol><form action="${pageContext.request.contextPath}/news/index.jsp" class="form-inline" style="margin: 0px auto 20px;"><input type="hidden" name="userId" value="<%=request.getParameter("userId") %>"><div class="form-group" style="display: block;text-align: center;"><div class="input-group"><div class="input-group-addon">新闻标题</div><input class="form-control" placeholder="请在此输入搜索的关键字" type="text" name="newsName"><span class="input-group-btn"><button class="btn btn-primary" type="submit">搜索												

使用JSP做一个小小的新闻项目(END)相关推荐

  1. 艾伟也谈项目管理,如何做一个合格的项目经理

    项目经理这个角色说大不大,说小也不小.在大公司,项目经理这样的角色可能存在不计其数,他们很多都是寄托于项目的存在而生,项目的完成而终:但对于一些小作坊的软件公司,项目经理一职很多时候是一个长期持有的过 ...

  2. 教你做一个优秀的项目经理

    教你做一个优秀的项目经理 如何做个好的项目经理?项目经理应该做什么?不应该做什么?这个问题涉及的范围很广,我只能就以前的一些项目经验谈谈个人的体会.难免有以偏盖全的地方,还请大家多提意见. 1.项目经 ...

  3. 使用Trinamic TMC2300步进驱动器做一个迪斯科灯项目

    从RoadTest发布,Trinamic TMC2300-loT-REF步进驱动器+电机看起来很优秀,使其成为机电远程控制应用的理想选择.出于对评估它的功能和建立一个迪斯科灯项目的兴趣,我申请了这个实 ...

  4. 做一个聪明的项目参与者--制订WBS清单

    前段时间,团队开始实施一个新项目.这个项目有着中国IT行业的三个共同特点:需求繁.工期紧.资源缺. 虽然从目前情况来看,它还有希望不会沦为"死亡项目",但如果实施过程中不小心翼翼. ...

  5. 使用vue做一个“淘宝“项目——3

    做出分类页面 前言:做出首页,详细请看前两篇文章 1.使用vue做一个"淘宝"项目(做出首页) 2.使用vue做一个"淘宝"项目(显示商品栏) 目录: 创建项目 ...

  6. FANUC机器人_通过ROBOGUIDE从零开始做一个离线仿真项目(1)

    FANUC机器人_通过ROBOGUIDE从零开始做一个离线仿真项目(1) 打开ROBOGUIDE软件,如下图所示,然后点击新建工作单元, 如下图所示,选择"HandlingPRO" ...

  7. 字串处理 expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。

    expr在linux中是一个功能非常强大的命令.通过学习做一个小小的总结. 1.计算字符串的长度.我们可以用awk中的length(s)进行计算.我们也可以用echo中的echo ${#string} ...

  8. 解决创业型公司项目研发流程的痛点,如何做一个高效的项目团队管理?

    现有项目管理流程痛点 需求管理:由于迭代更新速度较快,需求没有进行有效的管理,即迭代完成后:迭代需求完成情况确认,是否有遗留或流转至下一个迭代再实现 测试管理: 设计测试用例工作的缺失,多少因为需求理 ...

  9. 做一个优秀的项目/产品经理

    1.工作中,在时间.质量.成本三者之间找到平衡,带领团队成功研发并上线项目. 解决好以下细节问题,就达到一个合格IT项目经理了: 项目的由来,为什么要建立这么一个系统? 项目有计划吗? 项目的需求是什 ...

最新文章

  1. 嵌入式linux学习步骤(三)
  2. php如何写一个能让外部访问的接口,如何写一个接口供外界访问
  3. 关于防止sql注入的几种手段
  4. 初中生学计算机应用有什么好方面,计算机有哪些专业 初中毕业学习相关专业有发展吗...
  5. 移动手机病毒的进化历程
  6. Xshell5 注册码 ,Xftp5 注册码,Xmanager5注册码
  7. 【分享】使用快递鸟接入圆通电子面单详解
  8. maven项目中:java.io.IOException: java.io.FileNotFoundException--- (文件名、目录名或卷标语法不正确。)
  9. pytest系列教程——4、fixture详解
  10. flex的dataGrid:用checkbook和弹出窗口修改,返回修改本行
  11. 强子对撞机下午3时半开始一次全轨道试验,如果产生黑洞,人类将在今日消失
  12. 如何才能高效学习,99%的人不知道的高效学习法
  13. HTML、css、js 特殊字符(空格符号)
  14. 使用python实现短信,邮箱的功能
  15. 奇(异或)偶(同或)校验
  16. Fuchsia 系统的编译和探索
  17. 用LangChain构建大语言模型应用
  18. pythonreshape函数三个参数_Python Numpy中reshape函数参数-1的含义
  19. Spring Cloud Alibaba - 01漫谈传统架构和微服务架构
  20. 无电子设备的课堂也可拥有完美反馈—Plickers+OneNote教学模式探索

热门文章

  1. 如何快速生成一个web.xml 文件
  2. 4GU优盘只能看到2G空间,另外2G不见了?! 解决!
  3. 链游开发需要什么成本
  4. CST2018学习笔记:六、构建喇叭模型
  5. IP 地址及其应用(计算机网络)
  6. 反编译apk获得源代码
  7. Android逆向移花接木之添加注册机制
  8. 为什么像Photoshop这种如此复杂难懂的软件,可以垄断图像编辑领域20年?
  9. 【半年总结】——2015.08
  10. Android系统输入法框架