JSP+MySQL校园新闻网站(7)–新闻发布功能开发-阿里云开发者社区

开发者社区> 程序员大阳> 正文

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

简介: 本文目录 0. 前言 1. 任务 2. 具体功能 3. 开发流程 3.1 查看admin.jsp 3.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足够简单,很容易理解,可以视为最初级的入门项目。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
什么是短视频app开发必备功能?一篇分析,满心通透
我国短视频APP发展之路是从工具性软件开始的,2013年,以美拍、快手等工具性短视频APP为起点,逐渐向社交软件发展,到2017年,以快手为代表的短视频应用获得资本的青睐,短视频这一娱乐方式逐渐受到人们的喜爱,终于,在17年,快手火了,18年,抖音火了,随之而来的,诸多软件公司也开始涉足短视频app开发行业。
1161 0
Jsp+JavaBean+Servlet实现模拟银行账户存取款等功能的网站(实习第4-8天)
本来想学J2EE的3个经典框架(Spring + Struts +Hibernate),奈何负责实习的老师只讲了Jsp+JavaBean+Servlet,项目时间还蛮紧的,所以只用JJS实现了这个项目,后面寒假有时间的话再用SSH实现并完善这个网站吧。前几天抽时间学了点前端的东西,感觉还是有点麻烦的,前端做既漂亮又有良好的兼容性不是件太容易的事情,所幸现在觉得能够静下来学技术做开发是件
1323 0
新功能初探 | RDS MySQL 8.0 支持 DML 语句 returning
MySQL 对于 statement 执行结果报文通常分为两类 Resultset 和 OK/ERR,针对 DML 语句则返回OK/ERR 报文,其中包括几个影响记录,扫描记录等属性。
6904 0
mysql连接数太小,导致网站报错mysql:Too many connections
mysql连接数太小,导致网站报错mysql:Too many connections
1658 0
+关注
程序员大阳
努力努力再努力
588
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载