打造校园新闻网站的第7步:发布新闻功能实现
最编程
2024-08-11 08:46:20
...
<%@ 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>