JSP新闻显示
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新闻显示的更多相关文章
- JSP分页显示实例(基于Bootstrap)
首先介绍一款简单利落的分页显示利器:bootstrap-paginator 效果截图: GitHub官方下载地址:https://github.com/lyonlai/bootstrap-pagina ...
- 转:jsp页面显示中文乱码解决方案
jsp页面显示中文乱码: jsp页面的编码方式有两个地方需要设置: <%@ page language="java" import="java.util.*&quo ...
- 转:JSP 分页显示数据 (Oracle)
JSP 分页显示数据 (Oracle) 标签: Oracle分页JSP分页 2013-11-19 20:40 3598人阅读 评论(1) 收藏 举报 分类: Web(11) 版权声明:本文为博主原 ...
- JSP 页面显示sql中数据。el
存储数据库字段. package Bean; /** * Created by Administrator on 2017/5/24. */ public class info { private S ...
- 如何解决JSP页面显示乱码问题
一.JSP页面显示乱码 下面的显示JSP页面(display.jsp)就出现乱码: <html> <head> <title>JSP的中文处理</title& ...
- 如何使用 JSP JSTL 显示/制作树(tree) 菜单
JSTL里面并没有直接制作tree菜单的元素,因此递归是JSP JSTL显示/制作tree菜单的唯一方法. 以下详述如何制作tree菜单. 首先,在主页面里面增加包含制作树菜单的jsp,例如: 在my ...
- 简单的JSP分页显示
1.mysql的limit关键字 (DAO) select * from tablename limit startPoint, numberPerPage; tablename 就是要分页显示的那张 ...
- 如何在jsp中显示数据库的内容
用Eclipse tomcat新建一个JSP页面(一)介绍了如何创建一个web程序和第一个jsp页面,以及Eclipse需要的一些必要配置.今天,我们重点说一下如何从数据库中查询数据,并且在JSP页面 ...
- 通用分页jsp页面显示
注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html 的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...
随机推荐
- upload-labs通关手册
最近在练习文件上传,所以记录一下自己练习的过程,既能帮助自己以后复习,同时也能帮到初学者. 主要用到的工具是Burpsuite.首先我们应该明白上传文件的目的是什么,通过上传文件将web后门上传并被成 ...
- No grammar constraints (DTD or XML Schema) referenced in the document.的两种解决办法
方法一:常用方法 关闭XML验证 工具栏:windows => preferences => xml => xml files => validation => Indi ...
- golang内存逃逸
golang程序变量会携带油一组校验数据,用来证明它的整个生命周期是否在运行时完全可知.如果变量通过了这些校验,它就可以在栈上分配.否则就说它逃逸了,必须在堆上分配 能引起变量逃逸到堆上的典型 ...
- Java实现 蓝桥杯 算法训练 约数个数
算法提高 约数个数 时间限制:1.0s 内存限制:512.0MB 输入一个正整数N (1 样例输入 12 样例输出 6 样例说明 12的约数包括:1,2,3,4,6,12.共6个 import jav ...
- Java实现 LeetCode 152 乘积最大子序列
152. 乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] ...
- Java实现 蓝桥杯 历届试题 剪格子
问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |10* 1|52| +--****--+ |20|30* 1| *******--+ | 1| 2| 3| +--+ ...
- java解决poi导出excel文字水印,导出excel不可操作问题
首先需求是用户提出导出excel数据需使用水印备注其用途: 其实就是在导出excel的同时带有自定义文字水印的导出. 那么我们首先想到的肯定是以一个什么样的思路去解决该问题,首先查找poi导出exce ...
- 6.keras-基于CNN网络的Mnist数据集分类
keras-基于CNN网络的Mnist数据集分类 1.数据的载入和预处理 import numpy as np from keras.datasets import mnist from keras. ...
- FTP配置多用户多目录多权限
环境介绍 根据开发的需求 要求创建FTP服务器,把前端和后端分开用不同的FTP账号 系统环境 centos 7.4 selinux 关闭 防火墙关闭 安装FTP 很简单就一条命令 yum instal ...
- PyQt5 对话框示例
import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * class Example(QMainWindow): def _ ...