基于JSP实现新闻管理系统攻略
介绍
本攻略将会介绍如何使用JSP(Java Server Pages)实现一个简单的新闻管理系统,并提供完整的源码。
使用JSP是因为它可以将Java代码和HTML标记混合在同一个页面中,同时也可以使用标准的Java类库和框架。
开始
- 首先,搭建一个Java Web开发环境,如Tomcat。确保你已经会使用Eclipse或者IntelliJ IDEA等Java开发工具。
- 创建一个新的Java Web项目。
- 在项目中创建以下文件夹:
WEB-INF
: 存放JSP页面和在web.xml文件中定义的配置文件。src
: 存放Java源代码。lib
: 存放依赖的第三方Java库。- 在src目录下创建一个名为
News.java
的Java类,用于代表新闻对象并存储到数据库中。以下是示例代码:
public class News {
private int id;
private String title;
private String content;
private Date date;
public News(int id, String title, String content, Date date) {
this.id = id;
this.title = title;
this.content = content;
this.date = date;
}
// getter 和 setter 方法省略...
}
- 连接数据库
在src
文件夹下创建DBManager.java
文件,用于连接数据库。以下是一个简单的示例:
public class DBManager {
private final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private final String DB_URL = "jdbc:mysql://localhost:3306/news";
private final String USER = "username";
private final String PASSWORD = "password";
public Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName(JDBC_DRIVER);
Connection conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
return conn;
}
// 关闭数据库连接,省略...
}
- 创建JSP页面
在WEB-INF
目录下创建index.jsp
文件,用于显示新闻列表。
为此需要在项目中添加mysql-connector-java.jar
文件,这个文件可以在官网下载。
以下是一个简单的示例:
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.example.News" %>
<html>
<head>
<title>新闻管理</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>标题</th>
<th>日期</th>
<th>操作</th>
</tr>
<%
DBManager db = new DBManager();
Connection conn = db.getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM news");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) { %>
<tr>
<td><%= rs.getInt("id") %></td>
<td><%= rs.getString("title") %></td>
<td><%= rs.getDate("date") %></td>
<td><a href="edit.jsp?id=<%= rs.getInt("id") %>">编辑</a></td>
</tr>
<% } %>
</table>
</body>
</html>
- 添加新闻
在WEB-INF
目录下继续创建add.jsp
文件,用于添加新闻。以下是一个示例:
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.example.News" %>
<html>
<head>
<title>添加新闻</title>
</head>
<body>
<form action="news.jsp?action=add" method="post">
<label for="title">标题:</label>
<input type="text" name="title" id="title"><br>
<label for="content">内容:</label>
<textarea name="content" id="content"></textarea><br>
<input type="submit" name="submit" value="保存">
</form>
</body>
</html>
在news.jsp
文件中添加以下代码,用于处理添加新闻的逻辑:
String action = request.getParameter("action");
if (action != null && action.equals("add")) {
String title = request.getParameter("title");
String content = request.getParameter("content");
DBManager db = new DBManager();
Connection conn = db.getConnection();
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO news(title, content, date) VALUES(?, ?, ?)");
pstmt.setString(1, title);
pstmt.setString(2, content);
pstmt.setDate(3, new java.sql.Date(new Date().getTime()));
pstmt.executeUpdate();
response.sendRedirect("index.jsp");
}
- 编辑新闻
在WEB-INF
目录下继续创建edit.jsp
文件,用于编辑新闻。以下是一个示例:
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.example.News" %>
<html>
<head>
<title>编辑新闻</title>
</head>
<body>
<%
int id = Integer.parseInt(request.getParameter("id"));
DBManager db = new DBManager();
Connection conn = db.getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM news WHERE id = ?");
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();
rs.next();
News news = new News(rs.getInt("id"), rs.getString("title"), rs.getString("content"), rs.getDate("date"));
%>
<form action="news.jsp?action=update" method="post">
<input type="hidden" name="id" value="<%= news.getId() %>">
<label for="title">标题:</label>
<input type="text" name="title" value="<%= news.getTitle() %>" id="title"><br>
<label for="content">内容:</label>
<textarea name="content" id="content"><%= news.getContent() %></textarea><br>
<input type="submit" name="submit" value="保存">
</form>
</body>
</html>
在news.jsp
文件中添加以下代码,用于处理更新新闻的逻辑:
String action = request.getParameter("action");
if (action != null && action.equals("update")) {
int id = Integer.parseInt(request.getParameter("id"));
String title = request.getParameter("title");
String content = request.getParameter("content");
DBManager db = new DBManager();
Connection conn = db.getConnection();
PreparedStatement pstmt = conn.prepareStatement("UPDATE news SET title = ?, content = ? WHERE id = ?");
pstmt.setString(1, title);
pstmt.setString(2, content);
pstmt.setInt(3, id);
pstmt.executeUpdate();
response.sendRedirect("index.jsp");
}
样例说明
示例1:添加新闻
在浏览器中输入http://localhost:8080/项目名/add.jsp
,即可进入添加新闻页面。输入新闻标题和内容,点击保存即可在数据库中添加一条新闻。
示例2:编辑新闻
在浏览器中输入http://localhost:8080/项目名/index.jsp
,即可进入新闻列表页面。点击编辑按钮进入编辑页面,输入新闻标题和内容,点击保存即可在数据库中更新当前新闻。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于jsp实现新闻管理系统 附完整源码 - Python技术站