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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文目录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足够简单,很容易理解,可以视为最初级的入门项目。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL】根据binlog日志获取回滚sql的一个开发思路
【MySQL】根据binlog日志获取回滚sql的一个开发思路
|
6天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
4月前
|
自然语言处理 关系型数据库 MySQL
mysql 全文搜索功能优缺点
mysql 全文搜索功能优缺点
|
15天前
|
关系型数据库 MySQL PHP
PHP与MySQL的无缝集成:构建动态网站的艺术####
本文将深入探讨PHP与MySQL如何携手合作,为开发者提供一套强大的工具集,以构建高效、动态且用户友好的网站。不同于传统的摘要概述,本文将以一个生动的案例引入,逐步揭示两者结合的魅力所在,最终展示如何通过简单几步实现数据驱动的Web应用开发。 ####
|
1月前
|
前端开发 Oracle 关系型数据库
关于使用SSM+JSP开发时setter、getter隐式调用问题的小结
本文主要分享了在使用SSM+JSP进行网站开发时,因忽视setter、getter的隐式调用问题而导致的常见bug及其解决方法。详细介绍了setter和getter的隐式调用时机,并给出了具体示例,帮助开发者避免类似问题。
42 11
|
23天前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
13天前
|
关系型数据库 MySQL PHP
PHP与MySQL的深度整合:构建高效动态网站####
在当今这个数据驱动的时代,掌握如何高效地从数据库中检索和操作数据是至关重要的。本文将深入探讨PHP与MySQL的深度整合方法,揭示它们如何协同工作以优化数据处理流程,提升网站性能和用户体验。我们将通过实例分析、技巧分享和最佳实践指导,帮助你构建出既高效又可靠的动态网站。无论你是初学者还是有经验的开发者,都能从中获得宝贵的见解和实用的技能。 ####
16 0
|
2月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。
|
1月前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
41 0