java ee实验新闻_JAVAEE第四次作业-JSP显示新闻

JAVAEE第四次作业-JSP显示新闻

一、任务

使用mysql创建新闻表

用户登录时,用servlet获取用户名密码,查询数据库是否存在

如果是正确的用户名密码,查询新闻表,将新闻数据传给JSP首页

JSP首页用EL表达式显示新闻标题列表

二、任务1实验过程

使用mysql创建新闻表

2.1 Mysql新建新闻表+插入相应数据

USE users;

CREATE TABLE News (

NewID VARCHAR(20),

Title VARCHAR(50) NOT NULL,

NewsContent VARCHAR(100) NOT NULL,

Author VARCHAR(20) NOT NULL,

NewsDate VARCHAR(50) NOT NULL,

PRIMARY KEY(NewID)

);

INSERT INTO News VALUES (

'1','思政教育“不下线”','计科院成立湖北籍学生临时团支部','湖北团支部','2020-06-10'

);

INSERT INTO News VALUES (

'2','硕士研究生招生考试1','工作圆满结束1','计科院1','2020-06-11'

);

INSERT INTO News VALUES (

'3','硕士研究生招生考试2','工作圆满结束2','计科院2','2020-06-12'

);

INSERT INTO News VALUES (

'4','硕士研究生招生考试3','工作圆满结束3','计科院3','2020-06-13'

);

SELECT * FROM News;

2.2 Mysql新建用户信息表+插入相应数据

CREATE DATABASE USERS;

USE USERS;

CREATE TABLE USERS_INFO (

UID VARCHAR(20) NOT NULL,

UNAME VARCHAR(20) NOT NULL,

UPWD VARCHAR(20) NOT NULL,

PRIMARY KEY(UID)

);

INSERT INTO USERS_INFO VALUES (

'111','Sonny','123'

);

INSERT INTO USERS_INFO VALUES (

'222','Jason','123'

);

INSERT INTO USERS_INFO VALUES (

'333','Spider','123'

);

SELECT * FROM USERS_INFO;

2.3 查看添加的数据结果

1. 新闻表

8b0a0341ee18a97f2fd242849d191269.png

2. 用户信息表

ee39f9553c0ac7df1aa951df3f35cc62.png

三、任务2实验过程

用户登录时,用servlet获取用户名密码,查询数据库是否存在

3.1 创建UserInfo 实体类

利用实体类来返回数据库的查询结果,这样使程序的可读性更高。

5539399766a63d2a0d1191b0895a43c4.png

3.2 使用MVC模式,分离业务模式

编写SqlHelper类,用于返回所有查询结果

//select

public static ResultSet executeQuery(String SQL)

{

try

{

Connection conn=getConnection();

Statement stmt=conn.createStatement();

ResultSet rs=stmt.executeQuery(SQL);

return rs;

} catch (SQLException e) {

e.printStackTrace();

System.out.println("查询失败!");

return null;

}

}

//insert update delete

public static boolean executeUpdate(String SQL)

{

try

{

Connection conn=getConnection();

Statement stmt=conn.createStatement();

int rs=stmt.executeUpdate(SQL);

if (rs>0)

return true;

else

return false;

} catch (SQLException e) {

e.printStackTrace();

System.out.println("更新失败!");

return false;

}

}

编写具体的查询业务,获取查询结果

public boolean QueryUsers(UserInfo user) throws SQLException {

//验证用户名存在性

String sql = "select * from users_info where UNAME='" + user.getuName() + "' and UPWD='" + user.getuPwd() + "'";

ResultSet rs = SqlHelper.executeQuery(sql);

if (rs.next()) {

return true;

}

return false;

}

编写Servlet,将查询结果返回前端

//获取form中的数据

UserInfo user = new UserInfo();

user.setuName(request.getParameter("username"));

user.setuPwd(request.getParameter("password"));

System.out.println(user.getuName() + ": " + user.getuPwd() +"!!!!!!!!!!!!!!!!!!!!!!!!");

//验证用户名密码

UsersService usersService = new UsersService();

//确认数据库是否存在

boolean isHasUser = usersService.QueryUsers(user);

//存在则将结果存到Cookie

if (isHasUser) {

int saveyTime = 60 * 60 * 24 * 30; //保存的时间

//保存账号

Cookie cookieUserName = new Cookie("username", user.getuName());

cookieUserName.setMaxAge(saveyTime);

response.addCookie(cookieUserName);

//保存密码

Cookie cookieUserPwd = new Cookie("password", user.getuPwd());

cookieUserName.setMaxAge(saveyTime);

response.addCookie(cookieUserPwd);

//重定向值index.html界面

response.sendRedirect("page/index.html");

} else {

//重定向值login.html界面

response.sendRedirect("login.html");

}

}

3.3 登录账号,进入管理后台

89fb03e07ad0d2e759ab4cb2862b3650.png

a0927338c78cb9868b81fd58c764553e.png

四、任务3实验过程

如果是正确的用户名密码,查询新闻表,将新闻数据传给JSP首页

4.1 创建News实体类

利用实体类来返回数据库的查询结果,这样使程序的可读性更高。

3fbd83f95df0b7b9be9a581493515d39.png

4.2 返回数据库中的新闻查询结果

public List findNews() throws SQLException {

String sql = "Select * from news";

ResultSet rs = SqlHelper.executeQuery(sql);

List newsList = new ArrayList();

while (rs.next()) {

News news = new News();

news.setNewsId(rs.getInt("NewID"));

news.setTitle(rs.getString("Title"));

news.setNewsContent(rs.getString("NewsContent"));

news.setAuthor(rs.getString("Author"));

news.setNewsDate(rs.getDate("NewsDate"));

newsList.add(news);

}

return newsList;

}

4.3 编写Servlet,显示查询结果至jsp中

request.setCharacterEncoding("utf-8");

NewsService newsService=new NewsService();

try {

List newsList=newsService.findNews();

request.setAttribute("News",newsList);

request.getRequestDispatcher("ShowNewsList.jsp").forward(request,response);

} catch (SQLException e) {

e.printStackTrace();

}

五、任务4实验过程

JSP首页用EL表达式显示新闻标题列表

5.1 EL表达式显示新闻标题列表

ID标题内容作者时间操作
${n.newsId}${n.title}${n.newsContent} ${n.author}${n.newsDate}

编辑

查看

删除

5.2 效果展示

94346a2e1ed11f2e40065c4eac836395.png

六、码云地址

a7ad78c2658f384131aef139889adca1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql数据库连接不上本地数据库的解决办法

如果sql数据库连接本地的sql数据库连接不上即用.连接不上了,错误内容为: 可以执行一下以下操作:开始-sql—配置工具—sql server 外围应用配置器—服务和连接的外围应用配置器—如果服务状态为:已停止,则启动一下即可。…

python2 unicode编码_如何优雅解决python2.x的unicode编码优雅输出?

python2.x字符编码有一个这样的问题,类似下面这样:>>> d {usubType: u\u5f55\u97f3\u5ba4\u7248,uname: u\u5468\u6770\u4f26\u7684\u5e8a\u8fb9\u6545\u4e8b}>>> print d{usubType: u\u5f55\u97f3\u5ba4\u7248,uname: u\u5468\u6770…

在load事件中关闭窗体

protected override void OnVisibleChanged(EventArgs e) { base.OnVisibleChanged(e); if (isFormClose) { this.Close(); } } 转载于:https://www.cnblogs.com/zhuzhuxia/archive/2012/10/25/2739063.html

java js中 function函数报错_浅析JS中对函数function的理解(基础篇)

正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法。因此,函数名实际上是指向函数对象的指针,不与某个函数绑定。在常见的两…

前端学习(576):margin无效情形之内联特性导致无效

当负值到达一定情况开始失效 内联的特性受到限制

jstl tag

<% taglib prefixfn urihttp://java.sun.com/jsp/jstl/functions %> ${fu:length(xxxList)}转载于:https://www.cnblogs.com/adolfmc/archive/2012/10/26/2740675.html

java windows so文件_windows下编译使用NDK,调用SO文件 | 学步园

下载后把压缩包解压出来&#xff0c;例如&#xff1a;D:\ndk&#xff0c;目录下的ndk-build.cmd就是用来编译的批处理命令。这里以D:\ndk\samples\hello-jni为例&#xff0c;打开D:\ndk\samples\hello-jni\jni\hello-jni.c查看代码&#xff1a;/** Copyright (C) 2009 The Andr…

Discuz! 防御CC攻击的设置办法

防御 CC 攻击 Discuz!5.5 在以往抗 CC 的基础上又加了两种方法&#xff0c;可以根据实际遭受攻击的情况&#xff0c;通过配置组合出适合的抵抗方法。限于篇幅&#xff0c;不详细阐述对抗原理&#xff0c;现将配置方法做下简要说明。配置文件 config.inc.php $attackevasive 0…

php 注销session_php浏览器关闭页面怎么注销session

php浏览器关闭session的方法&#xff1a;首先使用“session_start();”开启session&#xff1b;然后清空session信息&#xff1b;接着清除客户端sessionid&#xff1b;最后通过“session_destroy();”彻底销毁session即可。1、每个页面都必须开启session_start()后才能在每个页…

static的作用

static的作用 在C语言中&#xff0c;static的字面意思很容易把我们导入歧途&#xff0c;其实它的作用有三条。 &#xff08;1&#xff09;先来介绍它的第一条也是最重要的一条&#xff1a;隐藏。 当我们同时编译多个文件时&#xff0c;所有未加static前缀的全局变量和函数都具有…

一道算法题跟大家分享

无意中看到一道算法题&#xff0c;拿出我的解法与大家分享。 题目&#xff1a;输出1,2,3,4四个数字能组成的互不相同且无重复的三位数并统计满足条件的三位数个数 大家先想想&#xff0c;再看答案吧。 View Code 1 /// <summary>2 /// 计算1,2,3,4产生的组成互…

docker php示例,Docker PHP 例子

docker可以执行任何应用程序。本章我们将创建一个Php应用&#xff0c;并使用docker运行它。1. 创建项目目录我们会把这个项目的相关文件&#xff0c;集中放到一个目录docker-php&#xff1a;[rootqikegu demo]# mkdir docker-php2. 创建PHP文件在docker-php目录下&#xff0c;创…

php gzip 关闭,Thinkphp 关闭Gzip header输出问题

Thinkphp默认开启gzip压缩OUTPUT_ENCODE > true, // 页面压缩输出需求是这样的在一个Action里面&#xff0c;用header输出一个图片问题由于thinkphp使用了Ob_start// 页面压缩输出支持 if(C(OUTPUT_ENCODE)){ $zlib ini_get(zlib.output_compression); if(empty($zlib)) ob…

NSTimer 与 Run loop Modes

一.NSRunLoop 在Cocoa中&#xff0c;每个线程(NSThread)对象中内部都有一个run loop&#xff08;NSRunLoop&#xff09;对象用来循环处理输入事件&#xff0c;处理的事件包括两类&#xff0c;一是来自Input sources的异步事件&#xff0c;一是来自Timer sources的同步事件;run …

游戏软件提示d3dcompiler_43.dll的五个解决方法,亲测靠谱

在使用电脑进行工作&#xff0c;玩游戏的时候&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“D3DCompiler_43.dll丢失”的提示。D3DCompiler_43.dll是一个非常重要的动态链接库文件。它是由DirectX SDK提供的&#xff0c;用于编译和优化DirectX着色器代码的…