在当今互联网时代,社交网络和在线相册已经成为人们日常生活中不可或缺的一部分。表白墙和在线相册作为社交网络中的两个重要功能,不仅能够帮助用户表达情感,还能记录生活中的美好瞬间。本文将详细介绍如何使用JavaWeb技术实现一个简单的表白墙和在线相册系统。
本项目旨在实现一个基于JavaWeb的表白墙和在线相册系统。用户可以通过该系统发布表白信息、上传图片、查看他人发布的表白和图片,并进行评论和点赞。系统将提供用户注册、登录、表白发布、图片上传、评论、点赞等功能。
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 用户ID |
username | VARCHAR(50) | 用户名 |
password | VARCHAR(50) | 密码 |
VARCHAR(100) | 邮箱 | |
created_at | DATETIME | 创建时间 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 表白ID |
user_id | INT | 用户ID |
content | TEXT | 表白内容 |
created_at | DATETIME | 创建时间 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 评论ID |
confession_id | INT | 表白ID |
user_id | INT | 用户ID |
content | TEXT | 评论内容 |
created_at | DATETIME | 创建时间 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 点赞ID |
confession_id | INT | 表白ID |
user_id | INT | 用户ID |
created_at | DATETIME | 创建时间 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 相册ID |
user_id | INT | 用户ID |
name | VARCHAR(100) | 相册名称 |
created_at | DATETIME | 创建时间 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 图片ID |
album_id | INT | 相册ID |
user_id | INT | 用户ID |
url | VARCHAR(255) | 图片URL |
description | TEXT | 图片描述 |
created_at | DATETIME | 创建时间 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 评论ID |
photo_id | INT | 图片ID |
user_id | INT | 用户ID |
content | TEXT | 评论内容 |
created_at | DATETIME | 创建时间 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 点赞ID |
photo_id | INT | 图片ID |
user_id | INT | 用户ID |
created_at | DATETIME | 创建时间 |
用户注册与登录是系统的基础功能,用户需要通过注册账号并登录后才能使用表白墙和在线相册功能。
user
表中。// UserServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setEmail(email);
UserService userService = new UserService();
userService.register(user);
response.sendRedirect("login.jsp");
}
// UserServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserService userService = new UserService();
User user = userService.login(username, password);
if (user != null) {
HttpSession session = request.getSession();
session.setAttribute("user", user);
response.sendRedirect("index.jsp");
} else {
request.setAttribute("error", "用户名或密码错误");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
用户登录后可以发布表白信息。
confession
表中。// ConfessionServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
String content = request.getParameter("content");
Confession confession = new Confession();
confession.setUserId(user.getId());
confession.setContent(content);
ConfessionService confessionService = new ConfessionService();
confessionService.addConfession(confession);
response.sendRedirect("confessionWall.jsp");
}
用户可以在表白墙页面查看所有用户发布的表白信息。
// ConfessionServlet.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ConfessionService confessionService = new ConfessionService();
List<Confession> confessions = confessionService.getAllConfessions();
request.setAttribute("confessions", confessions);
request.getRequestDispatcher("confessionWall.jsp").forward(request, response);
}
用户可以对表白信息进行评论。
confession_comment
表中。// ConfessionCommentServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
int confessionId = Integer.parseInt(request.getParameter("confessionId"));
String content = request.getParameter("content");
ConfessionComment comment = new ConfessionComment();
comment.setConfessionId(confessionId);
comment.setUserId(user.getId());
comment.setContent(content);
ConfessionCommentService commentService = new ConfessionCommentService();
commentService.addComment(comment);
response.sendRedirect("confessionWall.jsp");
}
用户可以对表白信息进行点赞。
confession_like
表中。// ConfessionLikeServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
int confessionId = Integer.parseInt(request.getParameter("confessionId"));
ConfessionLike like = new ConfessionLike();
like.setConfessionId(confessionId);
like.setUserId(user.getId());
ConfessionLikeService likeService = new ConfessionLikeService();
likeService.addLike(like);
response.sendRedirect("confessionWall.jsp");
}
用户可以创建和管理自己的相册。
album
表中。// AlbumServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
String name = request.getParameter("name");
Album album = new Album();
album.setUserId(user.getId());
album.setName(name);
AlbumService albumService = new AlbumService();
albumService.addAlbum(album);
response.sendRedirect("albumManagement.jsp");
}
用户可以在相册中上传图片并查看。
photo
表中。// PhotoServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
int albumId = Integer.parseInt(request.getParameter("albumId"));
String description = request.getParameter("description");
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
String filePath = "uploads/" + fileName;
// 保存文件到服务器
filePart.write(getServletContext().getRealPath("") + filePath);
Photo photo = new Photo();
photo.setAlbumId(albumId);
photo.setUserId(user.getId());
photo.setUrl(filePath);
photo.setDescription(description);
PhotoService photoService = new PhotoService();
photoService.addPhoto(photo);
response.sendRedirect("album.jsp?id=" + albumId);
}
用户可以对图片进行评论和点赞。
photo_comment
表中,将点赞信息插入到photo_like
表中。// PhotoCommentServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
int photoId = Integer.parseInt(request.getParameter("photoId"));
String content = request.getParameter("content");
PhotoComment comment = new PhotoComment();
comment.setPhotoId(photoId);
comment.setUserId(user.getId());
comment.setContent(content);
PhotoCommentService commentService = new PhotoCommentService();
commentService.addComment(comment);
response.sendRedirect("photo.jsp?id=" + photoId);
}
// PhotoLikeServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
return;
}
int photoId = Integer.parseInt(request.getParameter("photoId"));
PhotoLike like = new PhotoLike();
like.setPhotoId(photoId);
like.setUserId(user.getId());
PhotoLikeService likeService = new PhotoLikeService();
likeService.addLike(like);
response.sendRedirect("photo.jsp?id=" + photoId);
}
表白墙页面主要展示所有用户发布的表白信息,并提供发布表白、评论、点赞等功能。
<!-- confessionWall.jsp -->
<!DOCTYPE html>
<html>
<head>
<title>表白墙</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1>表白墙</h1>
<div class="row">
<div class="col-md-8">
<form action="confession" method="post">
<div class="form-group">
<textarea class="form-control" name="content" rows="3" placeholder="写下你的表白..."></textarea>
</div>
<button type="submit" class="btn btn-primary">发布</button>
</form>
</div>
</div>
<div class="row">
<div class="col-md-8">
<c:forEach var="confession" items="${confessions}">
<div class="card mt-3">
<div class="card-body">
<h5 class="card-title">${confession.user.username}</h5>
<p class="card-text">${confession.content}</p>
<p class="card-text"><small class="text-muted">${confession.createdAt}</small></p>
<form action="confessionComment" method="post">
<input type="hidden" name="confessionId" value="${confession.id}">
<div class="form-group">
<textarea class="form-control" name="content" rows="2" placeholder="写下你的评论..."></textarea>
</div>
<button type="submit" class="btn btn-secondary">评论</button>
</form>
<form action="confessionLike" method="post">
<input type="hidden" name="confessionId" value="${confession.id}">
<button type="submit" class="btn btn-success">点赞</button>
</form>
</div>
</div>
</c:forEach>
</div>
</div>
</div>
</body>
</html>
在线相册页面主要展示用户创建的相册和上传的图片,并提供图片上传、评论、点赞等功能。
”`html <!DOCTYPE html>