JSP+MySQL校园新闻网站(7)–新闻发布功能开发

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 本文目录0. 前言1. 任务2. 具体功能3. 开发流程3.1 查看admin.jsp3.2 添加发布新闻的表单3.3 开发publish.jsp页面4. 测试5. 小结

0. 前言

系列文章目录、演示网站、源码参见:项目实战系列文章


1. 任务

之前已经实现了:


新闻列表浏览

新闻内容展示

登录成功后跳转管理后台页面

登录失败后跳转错误信息页面

本篇在登录成功后管理后台页面admin.jsp,添加发布新闻的功能。


2. 具体功能

可以输入新闻标题、内容等信息后,点击发布,则数据库内新增一条新闻。


此时如果打开新闻列表浏览页,能看到新增的新闻信息。


3. 开发流程

3.1 查看admin.jsp

之前admin.jsp页面已经具备检测用户是否登录的功能,只有登录的才能在admin.jsp页面停留,没登录的会自动跳转到错误页面。

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>管理页面</title>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
<body>
  <%
    //支持中文编码
    request.setCharacterEncoding("utf-8");
    //获取表单输入的用户名
    String inputUsername = request.getParameter("username");
    //获取表单输入的密码
    String inpputPassword = request.getParameter("password");
    //如果没输入用户名密码,则跳转错误页
    if (inputUsername == null || "".equals(inputUsername) || inpputPassword == null
        || "".equals(inpputPassword)) {
      request.getRequestDispatcher("error_nologin.jsp").forward(request, response);
      return;
    }
    //配置数据库
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/schoolnews?useUnicode=true&characterEncoding=utf8";
    String username = "root";
    String password = "Easy@0122";
    Connection conn = DriverManager.getConnection(url, username, password);
    //设置sql,查询是否存在用户名和密码都匹配的用户信息
    String sql = "select * from user where username=? and password=?";
    PreparedStatement st = conn.prepareStatement(sql);// 在此次传入,进行预编译
    st.setString(1, inputUsername);
    st.setString(2, inpputPassword);
    //执行sql查询
    ResultSet rs = st.executeQuery();
    //如果查询结果不存在,则表示用户名密码错误,跳转到错误页
    if (rs.next() == false) {
      request.getRequestDispatcher("error_nologin.jsp").forward(request, response);
      return;
    }
  %>
  <div class="header-bar">
    <span class="header-title">SchoolNews--管理后台</span> <a
      class="header-button" href="#">欢迎您:<%=rs.getString("username")%></a>
  </div>
  <h1 class="article-title">发布新闻</h1>
</body>
</html>
3.2 添加发布新闻的表单
我们在body区域添加表单,以便让管理员输入新闻的标题、内容等信息。
当我们点击提交时,会把内容提交给publish.jsp页面,同时类型、标题、时间、内容等信息会按照指定的name属性传递给publish.jsp页面。
<h1 class="article-title">发布新闻</h1>
  <form action="publish.jsp" method="post">
    <div>
      类型:<input name="type" type="text" />
    </div>
    <div>
      标题:<input name="title" type="text" />
    </div>
    <div>
      时间:<input name="time" type="date" />
    </div>
    <div>
      内容:<br>
      <textarea name="content" rows="10" cols="100">
      </textarea>
    </div>
    <div>
      <input type="submit" value="提交">
    </div>
  </form>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
3.3 开发publish.jsp页面
我们在publish.jsp页面接受admin.jsp提交的表单信息,然后插入数据库,并显示发布成功提示信息。
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>管理页面</title>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
<body>
  <%
    // 设置中文编码
    request.setCharacterEncoding("utf-8");
    // 连接数据库
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/schoolnews?useUnicode=true&characterEncoding=utf8";
    String username = "root";
    String password = "Easy@0122";
    Connection conn = DriverManager.getConnection(url, username, password);
    // 准备执行插入sql语句
    String sql = "insert into news(type,title,time,content)values(?,?,?,?)";
    PreparedStatement st = conn.prepareStatement(sql);// 在此次传入,进行预编译
    // 将表单传递过来的数据,放入sql语句指定位置
    st.setString(1, request.getParameter("type"));
    st.setString(2, request.getParameter("title"));
    st.setString(3, request.getParameter("time"));
    st.setString(4, request.getParameter("content"));
    // 执行sql
    st.execute();
  %>
  <div class="header-bar">
    <span class="header-title">SchoolNews--管理后台</span>
  </div>
  <h1>发布成功</h1>
</body>
</html>

image.png

image.png

image.png

5. 小结

所有功能都完毕了,JSP+MySQL足够简单,很容易理解,可以视为最初级的入门项目。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
前端开发 关系型数据库 MySQL
基于python+mysql的宠物领养网站系统
基于python+mysql的宠物领养网站系统
36 2
|
2月前
|
前端开发 Oracle 关系型数据库
关于使用SSM+JSP开发时setter、getter隐式调用问题的小结
关于使用SSM+JSP开发时setter、getter隐式调用问题的小结
38 3
|
3月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
49 0
|
3月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
49 0
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
|
1天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
6 0
|
5天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
8天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
1月前
|
存储 安全 前端开发
ssm226基于jsp的快递管理系统的开发
ssm226基于jsp的快递管理系统的开发