基于jsp+servlet实现的简单博客系统实例(附源码)
发布时间:2020-12-14 19:56:56 所属栏目:Java 来源:网络整理
导读:本篇章节讲解基于jsp+servlet实现的简单博客系统。供大家参考研究。具体如下: 没有用框架写的 小博客, 代码大量重复。 个人感觉重复代码对于新手还是有好处的,我也是新手,见谅。 完整实例代码点击此处本站下载。 1. servlet /* * To change this
本篇章节讲解基于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; } List<BlogBean> 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,IOException { processRequest(request,response); } @Override protected void doPost(HttpServletRequest 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 ArrayList<BlogBean> bloglist; private Set<String> tagSet; private Set<String> categorySet; private Map<String,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); } 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); } refreshCache(); return out; } @Override public List<BlogBean> ListAllBlog() { bloglist = new ArrayList<BlogBean>(); 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,ss,rs); } return bloglist; } @Override public List listBlogByKey(String keyword) { List<BlogBean> list = new ArrayList<BlogBean>(); 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,rs); } return list; } @Override public List listBlogByContent(String keyword) { List<BlogBean> list = new ArrayList<BlogBean>(); 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,rs); } return list; } public Set listAllTags() { tagSet = new HashSet<String>(); 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,rs); } return tagSet; } public List listBlogByTag(String keyword) { List<BlogBean> list = new ArrayList<BlogBean>(); 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,rs); } return list; } public List listBlogByDate(String keyword) { List<BlogBean> list = new ArrayList<BlogBean>(); 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,rs); } return list; } public Set listAllCategory() { categorySet = new HashSet<String>(); 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,rs); } return categorySet; } public List listBlogByCategory(String keyword) { List<BlogBean> list = new ArrayList<BlogBean>(); 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,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 HashMap<String,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,rs); } } public void test(){ for(Map.Entry<String,Integer> dd: dateMap.entrySet()){ dd.getKey(); dd.getValue(); } } public void refreshCache() { ListAllBlog(); listAllTags(); listAllCategory(); fillDateMap(); } public ArrayList<BlogBean> getBloglist() { return bloglist; } public Set<String> getTagSet() { return tagSet; } public Set<String> getCategorySet() { return categorySet; } public Map<String,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程序设计有所帮助。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |