• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于jsp+servlet实现的简单博客系统实例(附源码)

    本文实例讲述了基于jsp+servlet实现的简单博客系统。分享给大家供大家参考。具体如下:

    没有用框架写的 小博客, 代码大量重复。

    个人感觉重复代码对于新手还是有好处的,我也是新手,见谅。

    完整实例代码点击此处本站下载。

    1. servlet

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package Servlet;
    import blog.BlogBean;
    import blog.BlogRepositoryJDBC;
    import blog.PagerUtil;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.net.URLDecoder;
    import java.util.List;
    import javax.enterprise.context.RequestScoped;
    import javax.enterprise.context.SessionScoped;
    import javax.inject.Inject;
    import javax.inject.Named;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    @WebServlet(name = "PageListServlet", urlPatterns = {"/page/*", ""})
    public class ListAllServlet extends HttpServlet {
      @Inject
      private BlogRepositoryJDBC blogdao;
      @Inject
      private PagerUtil pagerUtil;
      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
        int pg;
        String s = request.getRequestURI();
        String searchContent = request.getParameter("search");
        if (s.matches(request.getContextPath() + "/page/" + "\\d")) {
          String pgnum = s.replaceAll(request.getContextPath() + "/page/", "");
          pg = Integer.parseInt(pgnum);
        } else if (s.matches(request.getContextPath() + "/")) {
          pg = 1;
        } else {
          getServletContext().getRequestDispatcher("/errorpage.jsp").forward(request, response);
          return;
        }
        ListBlogBean> bloglist;
        boolean isNullRequest = (searchContent == null || "".equals(searchContent));
        if (isNullRequest) {
          bloglist = blogdao.getBloglist();
        } else {
          bloglist = blogdao.listBlogByKey(searchContent);
        }
        if (!pagerUtil.isValidPg(bloglist, pg)) {
          getServletContext().getRequestDispatcher("/errorpage.jsp").forward(request, response);
          return;
        }
        pagerUtil.fillValue(bloglist, pg);
        String pageURLBase = getServletContext().getContextPath();
        String pageURLparam = isNullRequest ? "" : "?search=" + searchContent;
        request.setAttribute("pageURLBase", pageURLBase);
        request.setAttribute("pageURLparam", pageURLparam);
        request.setAttribute("bloglist", bloglist);
        getServletContext().getRequestDispatcher("/blog.jsp").forward(request, response);
      }
      @Override
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
        processRequest(request, response);
      }
      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
        processRequest(request, response);
      }
      @Override
      public String getServletInfo() {
        return "Short description";
      }// /editor-fold>
    }
    
    

    2. dao

    package blog;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.annotation.PostConstruct;
    import javax.annotation.Resource;
    import javax.enterprise.context.ApplicationScoped;
    import javax.inject.Inject;
    import javax.inject.Named;
    import javax.sql.DataSource;
    @ApplicationScoped
    @Named
    public class BlogRepositoryJDBC implements BlogRepository {
      @Resource(lookup = "jdbc/sample")
      private DataSource ds;
      private ArrayListBlogBean> bloglist;
      private SetString> tagSet;
      private SetString> categorySet;
      private MapString,Integer> dateMap;
      @PostConstruct
      private void init() {
        refreshCache();
      }
      @Override
      public int addBlog(BlogBean blogi) {
        String sql = "INSERT INTO POSTS VALUES (?,?,?,?,?)";
        Connection conn = null;
        PreparedStatement ps = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, blogi.getBlogTitle());
          ps.setString(2, blogi.getCategory());
          ps.setString(3, blogi.getTag());
          ps.setDate(4, new java.sql.Date(blogi.getPostDate().getTime()));
          ps.setString(5, blogi.getContent());
          out = ps.executeUpdate();
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, null);
        }
        refreshCache();
        return out;
      }
      @Override
      public int deleteBlog(String blogName) {
        String sql = "DELETE FROM POSTS WHERE HEAD = ?";
        Connection conn = null;
        PreparedStatement ps = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, blogName);
          out = ps.executeUpdate();
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, null);
        }
        refreshCache();
        return out;
      }
      @Override
      public int updateBlog(BlogBean blog, String oldhead) {
        String sql = "UPDATE POSTS SET HEAD=?,CATEGORY=?,TAG=?,POSTDATE=?,CONTENT=? WHERE HEAD=?";
        PreparedStatement ps = null;
        Connection conn = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, blog.getBlogTitle());
          ps.setString(2, blog.getCategory());
          ps.setString(3, blog.getTag());
          ps.setDate(4, new java.sql.Date(blog.getPostDate().getTime()));
          ps.setString(5, blog.getContent());
          ps.setString(6, oldhead);
          out = ps.executeUpdate();
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, null);
        }
        refreshCache();
        return out;
      }
      @Override
      public ListBlogBean> ListAllBlog() {
        bloglist = new ArrayListBlogBean>();
        BlogBean blog;
        String sql = "SELECT * FROM POSTS ORDER BY POSTDATE DESC";
        Connection conn = null;
        Statement ss = null;
        ResultSet rs = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ss = conn.createStatement();
          rs = ss.executeQuery(sql);
          while (rs.next()) {
            blog = new BlogBean();
            blog.setBlogTitle(rs.getString(1));
            blog.setCategory(rs.getString(2));
            blog.setTag(rs.getString(3));
            blog.setPostDate(rs.getDate(4));
            blog.setContent(rs.getString(5));
            bloglist.add(blog);
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ss, rs);
        }
        return bloglist;
      }
      @Override
      public List listBlogByKey(String keyword) {
        ListBlogBean> list = new ArrayListBlogBean>();
        BlogBean blog;
        String sql = "SELECT * FROM POSTS WHERE HEAD LIKE ? ORDER BY POSTDATE DESC";
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, "%" + keyword + "%");
          rs = ps.executeQuery();
          while (rs.next()) {
            blog = new BlogBean();
            blog.setBlogTitle(rs.getString(1));
            blog.setCategory(rs.getString(2));
            blog.setTag(rs.getString(3));
            blog.setPostDate(rs.getDate(4));
            blog.setContent(rs.getString(5));
            list.add(blog);
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, rs);
        }
        return list;
      }
      @Override
      public List listBlogByContent(String keyword) {
        ListBlogBean> list = new ArrayListBlogBean>();
        BlogBean blog;
        String sql = "SELECT * FROM POSTS WHERE CONTENT LIKE ? ORDER BY POSTDATE DESC";
        PreparedStatement ps = null;
        ResultSet rs = null;
        Connection conn = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, "%" + keyword + "%");
          rs = ps.executeQuery();
          while (rs.next()) {
            blog = new BlogBean();
            blog.setBlogTitle(rs.getString(1));
            blog.setCategory(rs.getString(2));
            blog.setTag(rs.getString(3));
            blog.setPostDate(rs.getDate(4));
            blog.setContent(rs.getString(5));
            list.add(blog);
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, rs);
        }
        return list;
      }
      public Set listAllTags() {
        tagSet = new HashSetString>();
        String sql = "SELECT TAG FROM POSTS ";
        Connection conn = null;
        Statement ss = null;
        ResultSet rs = null;
        try {
          conn = ds.getConnection();
          ss = conn.createStatement();
          rs = ss.executeQuery(sql);
          while (rs.next()) {
            String tags = rs.getString(1);
            String[] Arraytags = tags.split(",");
            tagSet.addAll(Arrays.asList(Arraytags));
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ss, rs);
        }
        return tagSet;
      }
      public List listBlogByTag(String keyword) {
        ListBlogBean> list = new ArrayListBlogBean>();
        BlogBean blog;
        String sql = "SELECT * FROM POSTS WHERE TAG LIKE ? ORDER BY POSTDATE DESC";
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, "%" + keyword + "%");
          rs = ps.executeQuery();
          while (rs.next()) {
            blog = new BlogBean();
            blog.setBlogTitle(rs.getString(1));
            blog.setCategory(rs.getString(2));
            blog.setTag(rs.getString(3));
            blog.setPostDate(rs.getDate(4));
            blog.setContent(rs.getString(5));
            list.add(blog);
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, rs);
        }
        return list;
      }
        public List listBlogByDate(String keyword) {
        ListBlogBean> list = new ArrayListBlogBean>();
        BlogBean blog;
        String sql = "SELECT * FROM POSTS WHERE POSTDATE = ? ORDER BY POSTDATE DESC";
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, keyword );
          rs = ps.executeQuery();
          while (rs.next()) {
            blog = new BlogBean();
            blog.setBlogTitle(rs.getString(1));
            blog.setCategory(rs.getString(2));
            blog.setTag(rs.getString(3));
            blog.setPostDate(rs.getDate(4));
            blog.setContent(rs.getString(5));
            list.add(blog);
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, rs);
        }
        return list;
      }
      public Set listAllCategory() {
        categorySet = new HashSetString>();
        String sql = "SELECT CATEGORY FROM POSTS";
        Connection conn = null;
        Statement ss = null;
        ResultSet rs = null;
        try {
          conn = ds.getConnection();
          ss = conn.createStatement();
          rs = ss.executeQuery(sql);
          while (rs.next()) {
            String category = rs.getString(1);
            categorySet.add(category);
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ss, rs);
        }
        return categorySet;
      }
      public List listBlogByCategory(String keyword) {
        ListBlogBean> list = new ArrayListBlogBean>();
        BlogBean blog;
        String sql = "SELECT * FROM POSTS WHERE CATEGORY LIKE ?";
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        int out = 0;
        try {
          conn = ds.getConnection();
          ps = conn.prepareStatement(sql);
          ps.setString(1, "%" + keyword + "%");
          rs = ps.executeQuery();
          while (rs.next()) {
            blog = new BlogBean();
            blog.setBlogTitle(rs.getString(1));
            blog.setCategory(rs.getString(2));
            blog.setTag(rs.getString(3));
            blog.setPostDate(rs.getDate(4));
            blog.setContent(rs.getString(5));
            list.add(blog);
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ps, rs);
        }
        return list;
      }
      private void fillDateMap(){
        String sql = "SELECT POSTDATE,COUNT(POSTDATE) FROM POSTS GROUP BY POSTDATE";
         Connection conn = null;
        Statement ss = null;
        ResultSet rs = null;
        dateMap = new HashMapString,Integer>();
        try {
          conn = ds.getConnection();
          ss = conn.createStatement();
           rs=ss.executeQuery(sql);  
          while (rs.next()) {
            dateMap.put(rs.getString(1), rs.getInt(2));
          }
        } catch (SQLException ex) {
          Logger.getLogger(BlogRepositoryJDBC.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
          closeEverything(conn, ss, rs);
        }
      }
      public void test(){
            for(Map.EntryString,Integer> dd: dateMap.entrySet()){
               dd.getKey();
               dd.getValue();
            }
      }
      public void refreshCache() {
        ListAllBlog();
        listAllTags();
        listAllCategory();
        fillDateMap();
      }
      public ArrayListBlogBean> getBloglist() {
        return bloglist;
      }
      public SetString> getTagSet() {
        return tagSet;
      }
      public SetString> getCategorySet() {
        return categorySet;
      }
      public MapString, Integer> getDateMap() {
        return dateMap;
      }
      private void closeEverything(Connection conn, Statement ps, ResultSet rs) {
        if (rs != null) {
          try {
            rs.close();
          } catch (SQLException ex) {
          }
        }
        if (ps != null) {
          try {
            ps.close();
          } catch (SQLException ex) {
          }
        }
        if (conn != null) {
          try {
            conn.close();
          } catch (SQLException ex) {
          }
        }
      }
    }
    
    

    3. 运行效果截图:

    希望本文所述对大家的JSP程序设计有所帮助。

    您可能感兴趣的文章:
    • jsp页面中获取servlet请求中的参数的办法详解
    • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
    • Servlet+Jsp实现图片或文件的上传功能具体思路及代码
    • JSP+Servlet制作Java Web登录功能的全流程解析
    • JSP与Servlet的介绍说明
    • Servlet与JSP间的两种传值情况
    • jsp和servlet中实现页面跳转的方式实例总结
    • JSP+Servlet+JavaBean实现登录网页实例详解
    • 基于JSP HttpServlet的详细介绍
    • JSP、Servlet中get请求和post请求的区别总结
    • Servlet+JavaBean+JSP打造Java Web注册与登录功能
    • jsp+servlet+javabean实现数据分页方法完整实例
    • jsp+servlet+jdbc实现对数据库的增删改查
    • 在jsp中用bean和servlet联合实现用户注册、登录
    • jsp和servlet操作mysql中文乱码问题的解决办法
    • JSP使用Servlet作为控制器实现MVC模式实例详解
    • 访问JSP文件或者Servlet文件时提示下载的解决方法
    • jsp引用servlet生成的验证码代码演示
    • javascript与jsp发送请求到servlet的几种方式实例
    上一篇:jsp简单实现页面之间共享信息的方法
    下一篇:JSP入门教程之客户端验证、常用输出方式及JSTL基本用法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    基于jsp+servlet实现的简单博客系统实例(附源码) 基于,jsp+servlet,实现,的,