基于Javaweb的公告咨询功能代码
时间: 2023-12-14 12:04:39 浏览: 30
以下是一个基于Javaweb的公告咨询功能的示例代码:
1. 创建一个公告实体类,包含标题和内容属性:
```
public class Announcement {
private String title;
private String content;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
```
2. 创建一个公告服务类,用于管理公告的增删改查操作:
```
public class AnnouncementService {
private List<Announcement> announcements = new ArrayList<Announcement>();
public void addAnnouncement(Announcement announcement) {
announcements.add(announcement);
}
public void deleteAnnouncement(int index) {
announcements.remove(index);
}
public void updateAnnouncement(int index, Announcement announcement) {
announcements.set(index, announcement);
}
public List<Announcement> getAllAnnouncements() {
return announcements;
}
public Announcement getAnnouncement(int index) {
return announcements.get(index);
}
}
```
3. 创建一个公告控制器类,用于处理用户的请求:
```
@WebServlet("/announcement")
public class AnnouncementController extends HttpServlet {
private AnnouncementService announcementService = new AnnouncementService();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Announcement> announcements = announcementService.getAllAnnouncements();
request.setAttribute("announcements", announcements);
request.getRequestDispatcher("/announcement.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if ("add".equals(action)) {
String title = request.getParameter("title");
String content = request.getParameter("content");
Announcement announcement = new Announcement();
announcement.setTitle(title);
announcement.setContent(content);
announcementService.addAnnouncement(announcement);
} else if ("delete".equals(action)) {
int index = Integer.parseInt(request.getParameter("index"));
announcementService.deleteAnnouncement(index);
} else if ("update".equals(action)) {
int index = Integer.parseInt(request.getParameter("index"));
String title = request.getParameter("title");
String content = request.getParameter("content");
Announcement announcement = new Announcement();
announcement.setTitle(title);
announcement.setContent(content);
announcementService.updateAnnouncement(index, announcement);
}
response.sendRedirect(request.getContextPath() + "/announcement");
}
}
```
4. 创建一个公告页面,用于展示公告列表和提供添加、删除、修改操作:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>公告咨询</title>
</head>
<body>
<h1>公告列表</h1>
<table>
<thead>
<tr>
<th>标题</th>
<th>内容</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${announcements}" var="announcement" varStatus="status">
<tr>
<td>${announcement.title}</td>
<td>${announcement.content}</td>
<td>
<form method="post" action="${pageContext.request.contextPath}/announcement">
<input type="hidden" name="action" value="delete">
<input type="hidden" name="index" value="${status.index}">
<input type="submit" value="删除">
</form>
<form method="post" action="${pageContext.request.contextPath}/announcement">
<input type="hidden" name="action" value="update">
<input type="hidden" name="index" value="${status.index}">
<input type="text" name="title" value="${announcement.title}">
<input type="text" name="content" value="${announcement.content}">
<input type="submit" value="更新">
</form>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<hr>
<h2>添加公告</h2>
<form method="post" action="${pageContext.request.contextPath}/announcement">
<input type="hidden" name="action" value="add">
<label>标题:</label><input type="text" name="title"><br>
<label>内容:</label><textarea name="content"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
以上是一个基于Javaweb的公告咨询功能的示例代码,你可以根据实际需求进行调整和修改。