首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jsp简单博客系统源码

JSP(JavaServer Pages)是一种基于Java技术的动态网页开发技术,它允许在HTML或XML等静态页面中嵌入Java代码,从而实现动态内容的生成。下面是一个简单的JSP博客系统的源码示例,包括基本的博客文章展示和评论功能。

项目结构

代码语言:txt
复制
blog-system/
├── src/
│   └── com/
│       └── example/
│           ├── Blog.java
│           ├── Comment.java
│           ├── BlogService.java
│           └── CommentService.java
├── web/
│   ├── index.jsp
│   ├── blog.jsp
│   ├── addBlog.jsp
│   └── addComment.jsp
├── WEB-INF/
│   └── web.xml
└── lib/
    └── mysql-connector-java.jar

数据库设计

假设我们有一个简单的数据库,包含两个表:blogscomments

代码语言:txt
复制
CREATE TABLE blogs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE comments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    blog_id INT,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (blog_id) REFERENCES blogs(id)
);

Java类

Blog.java

代码语言:txt
复制
package com.example;

import java.sql.Timestamp;

public class Blog {
    private int id;
    private String title;
    private String content;
    private Timestamp createdAt;

    // Getters and Setters
}

Comment.java

代码语言:txt
复制
package com.example;

import java.sql.Timestamp;

public class Comment {
    private int id;
    private int blogId;
    private String content;
    private Timestamp createdAt;

    // Getters and Setters
}

BlogService.java

代码语言:txt
复制
package com.example;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class BlogService {
    private Connection getConnection() throws SQLException {
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/blogdb", "username", "password");
    }

    public List<Blog> getAllBlogs() {
        List<Blog> blogs = new ArrayList<>();
        try (Connection conn = getConnection();
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM blogs")) {
            while (rs.next()) {
                Blog blog = new Blog();
                blog.setId(rs.getInt("id"));
                blog.setTitle(rs.getString("title"));
                blog.setContent(rs.getString("content"));
                blog.setCreatedAt(rs.getTimestamp("created_at"));
                blogs.add(blog);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return blogs;
    }

    // Other methods for adding, updating, deleting blogs
}

CommentService.java

代码语言:txt
复制
package com.example;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class CommentService {
    private Connection getConnection() throws SQLException {
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/blogdb", "username", "password");
    }

    public List<Comment> getCommentsByBlogId(int blogId) {
        List<Comment> comments = new ArrayList<>();
        try (Connection conn = getConnection();
             PreparedStatement stmt = conn.prepareStatement("SELECT * FROM comments WHERE blog_id = ?")) {
            stmt.setInt(1, blogId);
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                Comment comment = new Comment();
                comment.setId(rs.getInt("id"));
                comment.setBlogId(rs.getInt("blog_id"));
                comment.setContent(rs.getString("content"));
                comment.setCreatedAt(rs.getTimestamp("created_at"));
                comments.add(comment);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return comments;
    }

    // Other methods for adding, updating, deleting comments
}

JSP页面

index.jsp

代码语言:txt
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Blog System</title>
</head>
<body>
    <h1>Welcome to My Blog</h1>
    <a href="addBlog.jsp">Add New Blog</a>
    <ul>
        <% List<Blog> blogs = new BlogService().getAllBlogs();
           for (Blog blog : blogs) { %>
            <li><a href="blog.jsp?id=<%= blog.getId() %>"><%= blog.getTitle() %></a></li>
        <% } %>
    </ul>
</body>
</html>

blog.jsp

代码语言:txt
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.example.Blog" %>
<%@ page import="com.example.Comment" %>
<%@ page import="java.util.List" %>
<%@ page import="com.example.BlogService" %>
<%@ page import="com.example.CommentService" %>

<html>
<head>
    <title><%= request.getParameter("title") %></title>
</head>
<body>
    <h1><%= request.getParameter("title") %></h1>
    <p><%= request.getParameter("content") %></p>
    <a href="addComment.jsp?id=<%= request.getParameter("id") %>">Add Comment</a>
    <ul>
        <% List<Comment> comments = new CommentService().getCommentsByBlogId(Integer.parseInt(request.getParameter("id")));
           for (Comment comment : comments) { %>
            <li><%= comment.getContent() %> - <%= comment.getCreatedAt() %></li>
        <% } %>
    </ul>
    <a href="index.jsp">Back to Home</a>
</body>
</html>

addBlog.jsp

代码语言:txt
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Add New Blog</title>
</head>
<body>
    <h1>Add New Blog</h1>
    <form action="addBlog" method="post">
        Title: <input type="text" name="title"><br>
        Content: <textarea name="content"></textarea><br>
        <input type="submit" value="Add Blog">
    </form>
</body>
</html>

addComment.jsp

代码语言:txt
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Add Comment</title>
</head>
<body>
    <h1>Add Comment</h1>
    <form action="addComment" method="post">
        Blog ID: <%= request.getParameter("id") %><br>
        Content: <textarea name="content"></textarea><br>
        <input type="submit" value="Add Comment">
    </form>
</body>
</html>

web.xml

代码语言:txt
复制
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">
    <servlet>
        <servlet-name>addBlog</servlet-name>
        <servlet-class>com.example.AddBlogServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>addBlog</servlet-name>
        <url-pattern>/addBlog</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>addComment</servlet-name>
        <servlet-class>com.example.AddCommentServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>addComment</servlet-name>
        <url-pattern>/addComment</url-pattern>
    </servlet-mapping>
</web-app>

注意事项

  1. 数据库连接:确保数据库连接字符串、用户名和密码正确。
  2. 依赖库:将 mysql-connector-java.jar 添加到项目的 lib 目录中。
  3. 安全性:在生产环境中,应使用预编译语句防止SQL注入,并考虑使用连接池管理数据库连接。

这个示例展示了一个简单的JSP博客系统的基本结构和功能。你可以根据需要进一步扩展和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1分21秒

JSP博客管理系统myeclipse开发mysql数据库mvc结构java编程

10分33秒

【玩转 WordPress】使用腾讯云Severless简单搭建自己的Wordpress博客

7.5K
2分11秒

计算机毕设个人博客小程序源码

1分59秒

27_DataX_源码分析_切分简单了解

7分33秒

【玩转腾讯云】腾讯云-搭建个人博客系统(wordpress)

18.5K
3分29秒

【玩转 WordPress】3分钟搭建 wordpress 博客系统 !

14.9K
27秒

JSP美容管理系统系统myeclipse开发mysql数据库web结构java编程

31分2秒

从头到尾跑起来一个springboot的博客系统

4分20秒

JSP编程专题-47-sms系统的登录页面定义

12分6秒

JSP编程专题-49-sms系统的loginServlet的跳转

1分46秒

JSP编程专题-51-sms系统的Dao的定义

12分15秒

JSP编程专题-53-sms系统的Dao的实现

领券