MYSQL数据库创建新闻表,用户登陆时使用SERVLET获取用户名,效验通过后直接跳转新闻列表页面,JSP使用EL显示新闻列表

1.首先创建数据库及用户、新闻表

CREATE DATABASE /*!32312 IF NOT EXISTS*/`NewsDB` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `NewsDB`;

/*Table structure for table `news` */

DROP TABLE IF EXISTS `news`;

CREATE TABLE `news` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) DEFAULT NULL,
`conetnt` VARCHAR(1000) DEFAULT NULL,
`author` VARCHAR(50) DEFAULT NULL,
`addtime` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*Data for the table `news` */ INSERT INTO `news`(`id`,`title`,`conetnt`,`author`,`addtime`) VALUES (1,'端午节的来源','端午节,又称端阳节、龙舟节、重午节、龙节、正阳节、天中节等,节期在农历五月初五,是中国民间的传统节日。端午节源自天象崇拜,由上古时代祭龙演变而来。仲夏端午,苍龙七宿飞升至正南中天,是龙飞天的日子,即如《易经·乾卦》第五爻的爻辞曰:“飞龙在天”。端午日龙星既“得中”又“得正”,乃大吉大利之象。端午节的起源涵盖了古老星象文化、人文哲学等方面内容,蕴含着深邃丰厚的文化内涵;在传承发展中杂揉了多种民俗为一体,节俗内容丰富。扒龙舟与食粽是端午节的两大礼俗,这两大礼俗在中国自古传承,至今不辍。','test','2020-06-25 10:19:42'); /*Table structure for table `user` */ DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (
`uid` INT(11) NOT NULL AUTO_INCREMENT,
`userName` VARCHAR(30) DEFAULT NULL,
`pw` VARCHAR(15) DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=gb2312; /*Data for the table `user` */ INSERT INTO `user`(`uid`,`userName`,`pw`) VALUES (1,'admin','admin');

2.新建web项目,项目名称为:JspNewsList   并添加JAR包依赖:mysql-connector-java-5.0.8-bin.jar  jstl.jar  standard.jar

最终项目结构为

首先新增分别新增login.jsp页面用户登录,failure.jsp用户显示登录出错信息,ShowNews.jsp用于显示新闻详情,ShowNewsList.jsp用于显示新闻列表

详情代码会可以参照码云仓库代码

3.新增Servlet : NewsController.java 并配置在WEB.XML中

<servlet>
<servlet-name>NewsController</servlet-name>
<servlet-class>servlet.NewsController</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>NewsController</servlet-name>
<url-pattern>/NewsController</url-pattern>
</servlet-mapping>

在NewsController.java 中doGet中重写doPost方法并在doPost方法中获取action参数,根据参数不同分别进行不同请求

关键代码:

4.创建service类   NewsService.java,在类中调用DAO中并返回新闻信息

public class NewsService {

    public List<NewsBean> query_all_news() {
NewsDao newsDao = new NewsDao(); return newsDao.query_all_news();
} public NewsBean getNews(String id) {
NewsDao newsDao = new NewsDao();
return newsDao.getNews(id);
}
}

5.新增DBUtils.java 及 NewsDao.java类

在DBUtils.java中添加连接数据库及关闭数据库代码

public static Connection getConnection(){
String dbUserName = "root";
String dbUserPasswd = "123456"; String dbURL = "jdbc:mysql://localhost:3406/NewsDB?serverTimezone=Asia/Shanghai";
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = (Connection) DriverManager.getConnection(dbURL,dbUserName,dbUserPasswd);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return conn;
} public static void closeConnection(Connection conn) { if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
public List<NewsBean> query_all_news() {
Connection conn = DBUtils.getConnection();
String sql = "select * from news";
ArrayList<NewsBean> results = new ArrayList<NewsBean>(); try {
PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery(); while(rs.next()){ NewsBean temp = new NewsBean();
temp.setId(rs.getString("id"));
temp.setTitle(rs.getString("title"));
temp.setConetnt(rs.getString("conetnt"));
temp.setAuthor(rs.getString("author"));
temp.setAddtime(rs.getDate("addtime"));
results.add(temp);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtils.closeConnection(conn);
}
return results;
} public NewsBean getNews(String id) {
Connection conn = DBUtils.getConnection();
String sql = "select * from news where id='"+id+"' ";
NewsBean result = new NewsBean(); try {
PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery(); while(rs.next()){ result.setId(rs.getString("id"));
result.setTitle(rs.getString("title"));
result.setConetnt(rs.getString("conetnt"));
result.setAuthor(rs.getString("author"));
result.setAddtime(rs.getDate("addtime"));
} rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtils.closeConnection(conn);
}
return result;
}

6.前端显示页面

<c:forEach items="${newsList }" var="ctxt">
<tr>
<td>
${ctxt.title } </td>
<td> ${ctxt.author } </td>
<td> ${ctxt.addtime } </td>
<td><a href="/JspNewsList/NewsController?action=toShowNews&id=${ctxt.id }">查看详情</a></td> </tr>
</c:forEach>

最后全部源码放在   https://gitee.com/lg_ui/JspNewsList.git  请有需要的同学参照

JSP新闻显示的更多相关文章

  1. JSP分页显示实例(基于Bootstrap)

    首先介绍一款简单利落的分页显示利器:bootstrap-paginator 效果截图: GitHub官方下载地址:https://github.com/lyonlai/bootstrap-pagina ...

  2. 转:jsp页面显示中文乱码解决方案

    jsp页面显示中文乱码: jsp页面的编码方式有两个地方需要设置: <%@ page language="java" import="java.util.*&quo ...

  3. 转:JSP 分页显示数据 (Oracle)

    JSP 分页显示数据 (Oracle) 标签: Oracle分页JSP分页 2013-11-19 20:40 3598人阅读 评论(1) 收藏 举报  分类: Web(11)  版权声明:本文为博主原 ...

  4. JSP 页面显示sql中数据。el

    存储数据库字段. package Bean; /** * Created by Administrator on 2017/5/24. */ public class info { private S ...

  5. 如何解决JSP页面显示乱码问题

    一.JSP页面显示乱码 下面的显示JSP页面(display.jsp)就出现乱码: <html> <head> <title>JSP的中文处理</title& ...

  6. 如何使用 JSP JSTL 显示/制作树(tree) 菜单

    JSTL里面并没有直接制作tree菜单的元素,因此递归是JSP JSTL显示/制作tree菜单的唯一方法. 以下详述如何制作tree菜单. 首先,在主页面里面增加包含制作树菜单的jsp,例如: 在my ...

  7. 简单的JSP分页显示

    1.mysql的limit关键字 (DAO) select * from tablename limit startPoint, numberPerPage; tablename 就是要分页显示的那张 ...

  8. 如何在jsp中显示数据库的内容

    用Eclipse tomcat新建一个JSP页面(一)介绍了如何创建一个web程序和第一个jsp页面,以及Eclipse需要的一些必要配置.今天,我们重点说一下如何从数据库中查询数据,并且在JSP页面 ...

  9. 通用分页jsp页面显示

    注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html  的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...

随机推荐

  1. 10 . Python之面向对象

    面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向对象初识别 面向过程v ...

  2. eclipse 界面复原

    Windows-----Perspective-----Reset perspective

  3. Java实现 蓝桥杯VIP 算法提高 3-2求存款

    算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...

  4. java实现哈密顿回路问题

    1 问题描述 什么是哈密顿回路? 引用自百度百科: 哈密顿图(哈密尔顿图)(英语:Hamiltonian path,或Traceable path)是一个无向图,由天文学家哈密顿提出,由指定的起点前往 ...

  5. java实现第四届蓝桥杯公式求值

    公式求值 输入n, m, k,输出图1所示的公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如图2所示. 输入的第一行包含一个整数n:第二行包含一 ...

  6. 循序渐进VUE+Element 前端应用开发(7)--- 介绍一些常规的JS处理函数

    在我们使用VUE+Element 处理界面的时候,往往碰到需要利用JS集合处理的各种方法,如Filter.Map.reduce等方法,也可以设计到一些对象属性赋值等常规的处理或者递归的处理方法,以前对 ...

  7. 基于Nginx实现访问控制、连接限制

    0 前言 Nginx自带的模块支持对并发请求数进行限制, 还有对请求来源进行限制.可以用来防止DDOS攻击.阅读本文须知道nginx的配置文件结构和语法. 1. 默认配置语法 nginx.conf作为 ...

  8. OO学习最终总结

    0.前言:本次主要是针对第三阶段的三次作业以及整个课程学习的总结,这三次作业主要是针对对程序进行重构使得程序可以对功能进行扩展的训练以及对类的设计,所以在此阐述在练习过程中的问题以及感悟. 1.作业总 ...

  9. 使用Java将阿拉伯数字转换为中文数字(适配小数转换)

    Java数字转换工具类 简介 该工具类可以将整数.小数.负数转换为中文的数字,如: 0 --> 零 1 --> 一 2.1 --> 二点一 -2.1 --> 负二点一 具体代码 ...

  10. 04.Java基础语法

    一.Java源程序结构与编程规范 一个完整的Java源程序应该包含下列部分 package语句,至多一句,必须放在源程序第一句 import语句,没有或者若干句,必须放在所有类定义前 public c ...