Javaweb新闻管理系统01
目录
预备操作:
1.导包:
2.开启Oracle数据库服务&配置监听
3.创建数据库
(1)用户表
(2)新闻表
一,登录
1.界面(login)
2.登录验证(doLogin)
二,注册
1 界面(regiest)
2.注册处理(doRegiest)
三,主页
界面(index)
四,增加
1.界面(add)
2.增加新闻处理(doAdd)
五,注意事项
预备操作:
1.导包:
将准备好的素材文件以及jar包导入到项目中
tip:不要把文件位置放错了,素材必须是在webapp目录下,而jar包则是要在WEB-INF中的lib中
2.开启Oracle数据库服务&配置监听
具体操作:https://blog.csdn.net/m0_67376124/article/details/123797159
3.创建数据库
(1)用户表
CREATE TABLE T_USER(
USER_ID NUMBER PRIMARY KEY,--用户编号
USER_NAME VARCHAR2(30) NOT NULL,--用户姓名
USER_PASSWORD VARCHAR(30) NOT NULL,--用户密码
USER_SEX VARCHAR(3) NOT NULL CHECK(USER_SEX='男'OR USER_SEX='女'),--用户性别
USER_AGE NUMBER NOT NULL--用户年龄
);
(2)news表
create table t_news(news_id number primary key ,--IDnews_title varchar2(255) not null,--标题news_topic number not null,--类型news_author varchar2(255) not null,--作者news_publisher varchar2(255) not null,--发布时间news_content long not null--内容
);
一,登录
1.界面(login)
代码如下:
<%@ 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>
<style>
* {outline: none !important;
}html, body {background:#1abe9c;
}form {width: 300px;background: #ebeff2;box-shadow: 0px 0px 50px rgba(0, 0, 0, .5);border-radius: 5px;padding: 20px;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);
}.btn-group {width: 100%;
}.btn-group button {width: 50%;
}
</style>
</head><body><!-- methid的方式有两种:1.get(直接显示在状态栏上的) 2.post(不会显示在状态栏上的数据) --><form action="doLogin.jsp" method="post" id="myForm"><h3 class="text-center">欢迎使用一麟新闻管理</h3><div class="form-group"><input name="name" type="text" id="username" class="form-control" placeholder="请输入您的姓名"></div><div class="form-group"><input name="password" type="password" id="password" class="form-control" placeholder="请输入您的密码"></div><div class="btn-group"><button type="submit" class="btn btn-primary">登录</button><button type="button" class="btn btn-danger" onclick='location=href="regiest.jsp"'>没有账号?</button><!-- 没有账号就跳转到注册的界面 --></div></form><script type="text/javascript">//表单的提交验证//tip:这里只是做了非空判断,这里能使用很多方式做验证,比如jQuery插件,JavaScript验证,jQuery验证$("#myForm").submit(()=>{if($("#username").val().lenght==0){alert("用户名不能为空");return false;//return false;这个时候表单是不提交的}if($("#password").val().lenght==0){alert("密码不能为空");return false;}})</script>
</body>
</html>
2.登录验证(doLogin)
代码如下:
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%
/**
*登录数据库处理
*/
request.setCharacterEncoding("UTF-8");//设置编码语言,避免乱码
String name = request.getParameter("name");//从登录界面通过输入框中的name属性获取用户姓名
String pwd = request.getParameter("password");//从登录界面通过输入框中的name属性获取用户密码
//导包
//OracleDriver(alt+/)
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//定义连接字符串
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";//可以封装成类
//获得连接
Connection con = DriverManager.getConnection(URL, "scott", "sa123");
//获取执行对象
PreparedStatement ps = con.prepareStatement("select * from t_user where user_name=? and user_password=?");
//占位符设值
ps.setString(1, name);
ps.setString(2, pwd);
//获得结果集
ResultSet rs = ps.executeQuery();
//判断结果
if (rs.next()) {request.getRequestDispatcher("/news/index.jsp").forward(request, response);/**在下述讲解中,我们就会发现我们的/news/index.jsp路径在页面中的跳转也是能够成功的,那么问题来了,按照理论知识来讲是不能进行跳转的,而且路径也该会变成localhost:8080/news/index.jsp其实原因很简单:我们的转发是属于服务器行为,而重定向则不然,是属于客户端行为,注意两者的区别!说到这里,我们就不难理解了,因为在此无论如何都是以项目为主的,就会跳转到我们项目的根目录,路径应该是localhost:8080/web04/news/index.jsp**/
} else {//重定向/**跳转的时候有两种情况:(1)a.jsp 跳转到当前路径下的a.jsp,假如当前路径是localhost:8080/web04,那么就会跳转到localhost:8080/web04/a.jsp(2)../a.jsp 跳转到上一级路径下的a.jsp 就上述路径而言,就会跳转到localhost:8080/a.jsp(3)/a.jsp 根目录的a.jsp 就上述路径而言,根目录是localhost:8080那么就会跳转到loaclhost:8080/a.jsp**/response.sendRedirect("${pageContext.request.contextPath}/login.jsp");//或者路径为login.jsp,因为是同级目录
}
//关闭资源
if (con != null && !con.isClosed()) {con.close();
}
if (ps != null) {ps.close();
}
if (rs != null) {rs.close();
}
%>
二,注册
1 界面(regiest)
代码如下:
<%@ 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><style>* {outline: none !important;}html,body {background: #1abe9c;}form {width: 300px;background: #ebeff2;box-shadow: 0px 0px 50px rgba(0, 0, 0, .5);border-radius: 5px;padding: 20px;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);}.btn-group {width: 100%;margin-bottom: 15px;}.btn-group > * {width: 50%;}</style>
</head><body>
<form action="doRegiest.jsp" method="post" id="myForm"><h3 class="text-center">欢迎注册</h3><div class="form-group"><input name="name" type="name" required id="username" class="form-control" placeholder="请输入您的姓名"></div><div class="form-group"><input name="password" type="password" required id="userpwd" class="form-control" placeholder="请输入您的密码"></div><div class="btn-group" data-toggle="buttons"><label class="btn btn-primary active">男<input type="radio" value="男" name="sex" checked></label><label class="btn btn-primary">女<input type="radio" value="女" name="sex"></label><!-- 性别是默认为男的 --></div><div class="form-group"><!-- 年龄在18-150之间 --><input name="age" type="number" required id="age" min="18" max="150" class="form-control" placeholder="请输入您的年龄"></div><div class="btn-group"><button type="submit" class="btn btn-primary">注册</button><button type="button" class="btn btn-danger" onclick='location=href="login.jsp"'>已有账号?</button><!-- 有账号就跳转到登录界面 --></div>
</form>
<script type="text/javascript">//表单的提交验证//tip:这里只是做了非空判断,这里能使用很多方式做验证,比如jQuery插件,JavaScript验证,jQuery验证$("#myForm").submit(()=>{if($("#username").val().lenght==0){//用户名alert("用户名不能为空");return false;//return false;这个时候表单是不提交的}if($("#password").val().lenght==0){//密码alert("密码不能为空");return false;}//性别因为是默认的,所以不需要做判断if($("#age").val().lenght==0){//年龄alert("年龄不能为空");return false;}})
</body></html>
2.注册处理(doRegiest)
代码如下:
<%@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"%>
<%
request.setCharacterEncoding("utf-8");//防止乱码//从注册界面接收用户注册的数据
//以下都是根据输入框的name属性进行取值
String name = request.getParameter("name");//姓名
String pwd = request.getParameter("password");//密码
String sex = request.getParameter("sex");//性别
String age = request.getParameter("age");//年龄//导包
//OracleDriver//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//定义连接字符串
//jdbc:oracle:thin:@localhost:1521:orcl
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
//获得连接
Connection con = DriverManager.getConnection(URL, "scott", "sa123");//主键不能不填
//主键没有自增的选项(触发器+序列)
//获得执行对象[数据插入之前,先把主键查询出来]
PreparedStatement ps = con.prepareStatement("select nvl(max(user_id),0) from t_user");
//获得结果集
ResultSet rs = ps.executeQuery();int id = 0;
if (rs.next()) {id = rs.getInt(1);//获取最大ID
}
id++; //避免主键重复//增加用户
ps = con.prepareStatement("insert into t_user(user_id, user_name, user_password, user_sex, user_age) values(?,?,?,?,?)");
//赋值(注意:数据一定要一一对应)
ps.setInt(1, id);
ps.setString(2, name);
ps.setString(3, pwd);
ps.setString(4, sex);
ps.setInt(5, Integer.parseInt(age));//执行结果
int n = ps.executeUpdate();//判断结果
if (n > 0) {//表示注册成功了out.print("<script>alert('注册成功');location.href='${pageContext.request.contextPath}/news/index.jsp'</script>");
} else {//增加失败out.print("<script>alert('注册失败');location.href='${pageContext.request.contextPath}/news/index.jsp'</script>");
}
//资源的关闭
if (con != null && !con.isClosed()) {con.close();
}
if (ps != null) {ps.close();
}
if (rs != null) {rs.close();
}
%>
三,主页
界面(index)
代码如下:
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><title>bootstrap</title><meta content="width=device-width, initial-scale=1" name="viewport"><link href="/web04/bootstrap-3.3.7-dist/css/bootstrap.css" rel="stylesheet"><script src="/web04/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script><script src="/web04/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.html" 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="/web04/news/add.jsp">新闻发布</a></li><li class="divider"></li><li><a href="#">类别管理</a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li><a><%=request.getParameter("name") %></a></li><li><a href="#">退出<span class="glyphicon glyphicon-off"></span></a></li></ul></div>
</nav><ol class="breadcrumb"><li>您当前的位置是</li><li>新闻发布系统</li><li class="active">首页</li>
</ol><form class="form-inline" style="margin: 0px auto 20px;"><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"><span class="input-group-btn"><button class="btn btn-primary" type="submit">搜索
Javaweb新闻管理系统01相关推荐
- Javaweb新闻管理系统02
目录 数据库的更新(oracle) 一,主页(index) 二,阅读界面(read) 三,修改(update&doUpdate) 四,删除新闻(doDelete) 数据库的更新(oracle) ...
- javaweb新闻管理系统03
目录 数据库更新 一,主页(实现模糊功能)index.jsp 二,实现评论功能 1增加评论(doAddPl.jsp) 2.删除评论(doDelPl.jsp) 三,阅读界面(点击量的实现)read.js ...
- javaweb JSP JAVA 新闻发布系统源码(新闻管理系统)jsp新闻发布系统
javaweb JSP JAVA 新闻发布系统源码(新闻管理系统)jsp新闻发布系统 常见的Javaweb题材有 理财系统,就业管理系统,汽车租赁,简易网盘,疫情数据查看,在线招标房,屋租赁,教务管理 ...
- javaweb JSP JAVAJSP 新闻发布系统源码(JSP新闻管理系统)JSP新闻系统
javaweb JSP JAVAJSP 新闻发布系统源码(JSP新闻管理系统)JSP新闻系统 protected void doGet(HttpServletRequest req, HttpServ ...
- 基于javaweb的新闻管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的新闻管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecli ...
- javaWeb项目之新闻管理系统
javaWeb项目之新闻管理系统 这是csdn保存的源码,如有需要,可自行下载:https://download.csdn.net/download/fzt12138/11776339 另外,根据各位 ...
- 基于javaweb的超简单新闻管理系统
一.系统简介 本项目采用eclipse工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具. 系统一共分为2个角色分别是:管理员,用户 管理 1.登 ...
- 新闻管理系统-javaWeb -大作业-更新版(之前的存在问题)
引言 本文中的新闻管理系统主要的涉及的功能是新闻的浏览.新闻的发布.主题的编辑.用户信息管理.用户评论管理等.主要角色为:管理员.游客.用户(注册),其中游客可以浏览本网站的新闻,但是不能评论,登录网 ...
- Bootstrap4+MySQL前后端综合实训-Day08-PM【ajax获取表单标签内容、根据“栏目信息”添加“新闻信息”、新闻管理系统-项目展示】
[Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目 录 ajax获取表单标签内容 ajax根据数据库加载select下来列 ...
最新文章
- 卡耐基梅隆大学专家谈核心技术市场化:「AI 周边相关机遇最大」
- spring与memcache的集成
- [转]C#遍历局域网的几种方法及比较
- 即时通讯:XMPP基础
- Entity Framework Core 之数据库迁移
- oracle中scn(系统改变号)
- 【转载】ORM的概念
- Python OpenCV学习笔记之:灰度图像的直方图计算
- 基于高光谱技术的农作物常见病害监测研究
- 神舟战神怎么装win11系统
- code1068 乌龟棋
- Linux 目录结构及主要内容 2
- 机械革命Z3 Pro测试,从开箱到翻车到上岸到发烧(多图预警)
- python学习笔记_week19
- 说说 PWA 和微信小程序--Progressive Web App
- 01背包问题——大背包:
- xbox360链接pc_如何在Windows PC上使用Xbox 360控制器
- talib.AROON指标详解
- 抖音小店无货源玩法分享(五)抖店类目该如何选择
- 揭秘TPM安全芯片技术及加密应用
热门文章
- 又一所“理工大学”,来了!深圳理工大学(筹)首批将建设六大学院。
- 2022年中国冰晶石价格走势及进出口贸易情况分析[图]
- 笔记本wifi与台式机、内网服务器共网、共享wifi详细教程
- 中文分词word2vec和doc2vec句向量的理解
- windows 2012 重置开机密码
- 计算机主机不启动的原因,电脑开不了机怎么办 电脑不能开机的原因与解决办法 (全文)...
- 赞:凤凰卫视之黄永玉访谈
- 我遇到的在VS2019中使用Android设备管理器创建模拟器点击启动后提示 系统映像不完整,无法启动 问题的解决办法
- TMS320C6678 PLL时钟配置
- StackOverflowError问题