信息新闻发布代码 Java web
时间: 2023-06-25 16:04:59 浏览: 66
以下是一个简单的 Java Web 新闻发布系统的代码示例:
1. 数据库表结构设计
```
CREATE TABLE news (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
publish_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
```
2. 实体类 News.java
```
public class News {
private int id;
private String title;
private String content;
private Timestamp publishTime;
// getter 和 setter 方法
}
```
3. DAO 接口 NewsDao.java
```
public interface NewsDao {
void addNews(News news) throws SQLException;
List<News> getAllNews() throws SQLException;
}
```
4. DAO 实现类 NewsDaoImpl.java
```
public class NewsDaoImpl implements NewsDao {
private Connection conn;
public NewsDaoImpl(Connection conn) {
this.conn = conn;
}
@Override
public void addNews(News news) throws SQLException {
String sql = "INSERT INTO news (title, content) VALUES (?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, news.getTitle());
pstmt.setString(2, news.getContent());
pstmt.executeUpdate();
}
}
@Override
public List<News> getAllNews() throws SQLException {
List<News> newsList = new ArrayList<>();
String sql = "SELECT * FROM news ORDER BY publish_time DESC";
try (PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
News news = new News();
news.setId(rs.getInt("id"));
news.setTitle(rs.getString("title"));
news.setContent(rs.getString("content"));
news.setPublishTime(rs.getTimestamp("publish_time"));
newsList.add(news);
}
}
return newsList;
}
}
```
5. Servlet NewsServlet.java
```
public class NewsServlet extends HttpServlet {
private NewsDao newsDao;
@Override
public void init() throws ServletException {
super.init();
newsDao = new NewsDaoImpl(DBUtil.getConnection());
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String title = req.getParameter("title");
String content = req.getParameter("content");
News news = new News();
news.setTitle(title);
news.setContent(content);
try {
newsDao.addNews(news);
resp.sendRedirect(req.getContextPath() + "/news");
} catch (SQLException e) {
e.printStackTrace();
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
List<News> newsList = newsDao.getAllNews();
req.setAttribute("newsList", newsList);
req.getRequestDispatcher("/news.jsp").forward(req, resp);
} catch (SQLException e) {
e.printStackTrace();
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
}
}
```
6. JSP 页面 news.jsp
```
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>News</title>
</head>
<body>
<h1>News</h1>
<hr>
<form method="post" action="${pageContext.request.contextPath}/news">
<label for="title">Title:</label>
<input type="text" name="title" id="title" required>
<br>
<label for="content">Content:</label>
<textarea name="content" id="content" rows="10" required></textarea>
<br>
<input type="submit" value="Publish">
</form>
<hr>
<ul>
<c:forEach items="${newsList}" var="news">
<li>
<h3>${news.title}</h3>
<p>${news.content}</p>
<p>${news.publishTime}</p>
</li>
</c:forEach>
</ul>
</body>
</html>
```
以上是一个简单的 Java Web 新闻发布系统的代码示例,仅供参考。