博客系统-博客详细内容
2017-03-15 21:12
274 查看
业务流程:点击主页面的分页链接,跳转到博客详细页面,并且显示相关内容,代码部分需要高亮显示,并且访问量增加1,标题改为博客内容详细页面。
1.点击链接进入后台,更急SpringMvc拦截机制实现伪静态
2.根据链接参数参训数据库,获得对应的博客信息,
3.获取对应博客的阅读量属性,该属性值增加1,存入数据库
4.modelAmdVie转发地址、参数
5.在页面显示参数
代码:
mapper:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.java1234.dao.BlogDao">
<resultMap type="Blog" id="BlogResult">
<result property="id" column="id"/>
<result property="title" column="title"/>
<result property="summary" column="summary"/>
<result property="releaseDate" column="releaseDate"/>
<result property="clickHit" column="clickHit"/>
<result property="replyHit" column="replyHit"/>
<result property="content" column="content"/>
<result property="keyWord" column="keyWord"/>
<association property="blogType" column="typeId" select="com.java1234.dao.BlogTypeDao.findById"></association>
</resultMap>
<select id="countList" resultMap="BlogResult">
SELECT DATE_FORMAT(releaseDate,'%Y年%m月') AS releaseDateStr,COUNT(*) AS blogCount FROM t_blog GROUP BY DATE_FORMAT(releaseDate,'%Y年%m月') ORDER BY DATE_FORMAT(releaseDate,'%Y年%m月') DESC;
</select>
<select id="list" parameterType="Map" resultMap="BlogResult">
select * from t_blog
<where>
<if test="typeId!=null and typeId!='' ">
and typeId=#{typeId}
</if>
<if test="releaseDateStr!=null and releaseDateStr!='' ">
and DATE_FORMAT(releaseDate,'%Y年%m月')=#{releaseDateStr}
</if>
</where>
order by releaseDate desc
<if test="start!=null and size!=null">
limit #{start},#{size}
</if>
</select>
<select id="getTotal" parameterType="Map" resultType="Long">
select count(*) from t_blog
<where>
<if test="typeId!=null and typeId!='' ">
and typeId=#{typeId}
</if>
<if test="releaseDateStr!=null and releaseDateStr!='' ">
and DATE_FORMAT(releaseDate,'%Y年%m月')=#{releaseDateStr}
</if>
</where>
</select>
<select id="findById" parameterType="Integer" resultMap="BlogResult">
select * from t_blog where id=#{id}
</select>
<update id="update" parameterType="Blog">
update t_blog
<set>
<if test="clickHit!=null">
clickHit=#{clickHit},
</if>
</set>
where id=#{id}
</update>
</mapper>
2.dao:
package com.java1234.dao;
import java.util.List;
import java.util.Map;
import com.java1234.entity.Blog;
/**
* 博客Dao接口
* @author Administrator
*
*/
public interface BlogDao {
/**
* 根据日期分月分组查询
* @return
*/
public List<Blog> countList();
/**
* 分页查询博客
* @param map
* @return
*/
public List<Blog> list(Map<String,Object> map);
/**
* 获取总记录数
* @param map
* @return
*/
public Long getTotal(Map<String,Object> map);
/**
* 根据id查找实体
* @param id
* @return
*/
public Blog findById(Integer id);
/**
* 更新博客信息
* @param blog
* @return
*/
public Integer update(Blog blog);
}
service:
package com.java1234.service;
import java.util.List;
import java.util.Map;
import com.java1234.entity.Blog;
/**
* 博客Service接口
* @author Administrator
*
*/
public interface BlogService {
/**
* 根据日期分月分组查询
* @return
*/
public List<Blog> countList();
/**
* 分页查询博客
* @param map
* @return
*/
public List<Blog> list(Map<String,Object> map);
/**
* 获取总记录数
* @param map
* @return
*/
public Long getTotal(Map<String,Object> map);
/**
* 根据id查找实体
* @param id
* @return
*/
public Blog findById(Integer id);
/**
* 更新博客信息
* @param blog
* @return
*/
public Integer update(Blog blog);
}
serviceImpl:
package com.java1234.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.java1234.dao.BlogDao;
import com.java1234.entity.Blog;
import com.java1234.service.BlogService;
/**
* 博客Service实现类
* @author Administrator
*
*/
@Service("blogService")
public class BlogServiceImpl implements BlogService{
@Resource
private BlogDao blogDao;
public List<Blog> countList() {
return blogDao.countList();
}
public List<Blog> list(Map<String, Object> map) {
return blogDao.list(map);
}
public Long getTotal(Map<String, Object> map) {
return blogDao.getTotal(map);
}
public Blog findById(Integer id) {
return blogDao.findById(id);
}
public Integer update(Blog blog) {
return blogDao.update(blog);
}
}
controller:
package com.java1234.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.java1234.entity.Blog;
import com.java1234.service.BlogService;
/**
* 博客Controller层
* @author Administrator
*
*/
@Controller
@RequestMapping("/blog")
public class BlogController {
@Resource
private BlogService blogService;
/**
* 请求博客详细信息
* @param id
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/articles/{id}")
public ModelAndView details(@PathVariable("id") Integer id,HttpServletRequest request)throws Exception{
ModelAndView mav=new ModelAndView();
Blog blog=blogService.findById(id);
mav.addObject("blog",blog);
blog.setClickHit(blog.getClickHit()+1);
blogService.update(blog);
mav.addObject("pageTitle", blog.getTitle()+"java开源博客系统");
mav.addObject("mainPage", "foreground/blog/view.jsp");
mav.setViewName("mainTemp");
return mav;
}
}
页面:
<script type="text/javascript" src="${pageContext.request.contextPath}/static/ueditor/third-party/SyntaxHighlighter/shCore.js"></script>
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css">
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<div class="data_list">
<div class="data_list_title">
<img src="/static/images/blog_show_icon.png"/>
博客信息
</div>
<div>
<div class="blog_title"><h3><strong>${blog.title }</strong></h3></div>
<div class="blog_info">
发布时间:『 <fmt:formatDate value="${blog.releaseDate }" type="date" pattern="yyyy-MM-dd HH:mm"/>』 博客类别:${blog.blogType.typeName } 阅读(${blog.clickHit }) 评论(${blog.replyHit })
</div>
<div class="blog_content">
${blog.content }
</div>
</div>
</div>
1.点击链接进入后台,更急SpringMvc拦截机制实现伪静态
2.根据链接参数参训数据库,获得对应的博客信息,
3.获取对应博客的阅读量属性,该属性值增加1,存入数据库
4.modelAmdVie转发地址、参数
5.在页面显示参数
代码:
mapper:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.java1234.dao.BlogDao">
<resultMap type="Blog" id="BlogResult">
<result property="id" column="id"/>
<result property="title" column="title"/>
<result property="summary" column="summary"/>
<result property="releaseDate" column="releaseDate"/>
<result property="clickHit" column="clickHit"/>
<result property="replyHit" column="replyHit"/>
<result property="content" column="content"/>
<result property="keyWord" column="keyWord"/>
<association property="blogType" column="typeId" select="com.java1234.dao.BlogTypeDao.findById"></association>
</resultMap>
<select id="countList" resultMap="BlogResult">
SELECT DATE_FORMAT(releaseDate,'%Y年%m月') AS releaseDateStr,COUNT(*) AS blogCount FROM t_blog GROUP BY DATE_FORMAT(releaseDate,'%Y年%m月') ORDER BY DATE_FORMAT(releaseDate,'%Y年%m月') DESC;
</select>
<select id="list" parameterType="Map" resultMap="BlogResult">
select * from t_blog
<where>
<if test="typeId!=null and typeId!='' ">
and typeId=#{typeId}
</if>
<if test="releaseDateStr!=null and releaseDateStr!='' ">
and DATE_FORMAT(releaseDate,'%Y年%m月')=#{releaseDateStr}
</if>
</where>
order by releaseDate desc
<if test="start!=null and size!=null">
limit #{start},#{size}
</if>
</select>
<select id="getTotal" parameterType="Map" resultType="Long">
select count(*) from t_blog
<where>
<if test="typeId!=null and typeId!='' ">
and typeId=#{typeId}
</if>
<if test="releaseDateStr!=null and releaseDateStr!='' ">
and DATE_FORMAT(releaseDate,'%Y年%m月')=#{releaseDateStr}
</if>
</where>
</select>
<select id="findById" parameterType="Integer" resultMap="BlogResult">
select * from t_blog where id=#{id}
</select>
<update id="update" parameterType="Blog">
update t_blog
<set>
<if test="clickHit!=null">
clickHit=#{clickHit},
</if>
</set>
where id=#{id}
</update>
</mapper>
2.dao:
package com.java1234.dao;
import java.util.List;
import java.util.Map;
import com.java1234.entity.Blog;
/**
* 博客Dao接口
* @author Administrator
*
*/
public interface BlogDao {
/**
* 根据日期分月分组查询
* @return
*/
public List<Blog> countList();
/**
* 分页查询博客
* @param map
* @return
*/
public List<Blog> list(Map<String,Object> map);
/**
* 获取总记录数
* @param map
* @return
*/
public Long getTotal(Map<String,Object> map);
/**
* 根据id查找实体
* @param id
* @return
*/
public Blog findById(Integer id);
/**
* 更新博客信息
* @param blog
* @return
*/
public Integer update(Blog blog);
}
service:
package com.java1234.service;
import java.util.List;
import java.util.Map;
import com.java1234.entity.Blog;
/**
* 博客Service接口
* @author Administrator
*
*/
public interface BlogService {
/**
* 根据日期分月分组查询
* @return
*/
public List<Blog> countList();
/**
* 分页查询博客
* @param map
* @return
*/
public List<Blog> list(Map<String,Object> map);
/**
* 获取总记录数
* @param map
* @return
*/
public Long getTotal(Map<String,Object> map);
/**
* 根据id查找实体
* @param id
* @return
*/
public Blog findById(Integer id);
/**
* 更新博客信息
* @param blog
* @return
*/
public Integer update(Blog blog);
}
serviceImpl:
package com.java1234.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.java1234.dao.BlogDao;
import com.java1234.entity.Blog;
import com.java1234.service.BlogService;
/**
* 博客Service实现类
* @author Administrator
*
*/
@Service("blogService")
public class BlogServiceImpl implements BlogService{
@Resource
private BlogDao blogDao;
public List<Blog> countList() {
return blogDao.countList();
}
public List<Blog> list(Map<String, Object> map) {
return blogDao.list(map);
}
public Long getTotal(Map<String, Object> map) {
return blogDao.getTotal(map);
}
public Blog findById(Integer id) {
return blogDao.findById(id);
}
public Integer update(Blog blog) {
return blogDao.update(blog);
}
}
controller:
package com.java1234.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.java1234.entity.Blog;
import com.java1234.service.BlogService;
/**
* 博客Controller层
* @author Administrator
*
*/
@Controller
@RequestMapping("/blog")
public class BlogController {
@Resource
private BlogService blogService;
/**
* 请求博客详细信息
* @param id
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/articles/{id}")
public ModelAndView details(@PathVariable("id") Integer id,HttpServletRequest request)throws Exception{
ModelAndView mav=new ModelAndView();
Blog blog=blogService.findById(id);
mav.addObject("blog",blog);
blog.setClickHit(blog.getClickHit()+1);
blogService.update(blog);
mav.addObject("pageTitle", blog.getTitle()+"java开源博客系统");
mav.addObject("mainPage", "foreground/blog/view.jsp");
mav.setViewName("mainTemp");
return mav;
}
}
页面:
<script type="text/javascript" src="${pageContext.request.contextPath}/static/ueditor/third-party/SyntaxHighlighter/shCore.js"></script>
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css">
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<div class="data_list">
<div class="data_list_title">
<img src="/static/images/blog_show_icon.png"/>
博客信息
</div>
<div>
<div class="blog_title"><h3><strong>${blog.title }</strong></h3></div>
<div class="blog_info">
发布时间:『 <fmt:formatDate value="${blog.releaseDate }" type="date" pattern="yyyy-MM-dd HH:mm"/>』 博客类别:${blog.blogType.typeName } 阅读(${blog.clickHit }) 评论(${blog.replyHit })
</div>
<div class="blog_content">
${blog.content }
</div>
</div>
</div>
相关文章推荐
- 微软放出首款开源博客内容管理系统Oxite
- Dreamweaver MX 2004做信息公告系统(4)详细内容页设计
- 博客系统-详细类容补充
- 【基于SSH框架的个人博客系统01】Eclipse搭建SSH框架详细流程
- 一个基于Vue.js+Mongodb+Node.js的博客内容管理系统
- SmartSoft技术管理系统论坛之最新更新,详细内容请登录论坛
- Vue.js实践:一个Node.js+mongoDB+Vue.js的博客内容管理系统
- 软件工程 - 个人博客系统 - 概要设计与详细设计文档
- 在mac系统安装Apache Tomcat的详细步骤(转载自himi的博客,修改了错误添加了图片)
- 粒子滤波器原理介绍-----本博客部分内容源自西安交大蔡远利教授的随机系统滤波与控制课程讲义
- 贝叶斯递推滤波器原理 -----本博客内容来自西安交大蔡远利教授的随机系统滤波与控制课件,特此声明
- 博客和内容管理系统WordPress手动安装指南
- 5【学校教学系统】获取通知详细内容
- 从博客采集到RSS订阅--选秀榜selectop.com网站内容管理系统之七
- 在mac系统安装Apache Tomcat的详细步骤(转载自himi的博客,修改了错误添加了图片)
- 在mac系统安装Apache Tomcat的详细步骤(转载自himi的博客,修改了错误添加了图片)
- 【基于SSH框架的个人博客系统01】Eclipse搭建SSH框架详细流程
- 在mac系统安装Apache Tomcat的详细步骤(转载自himi的博客,修改了错误添加了图片)
- Vue.js实践:一个Node.js+mongoDB+Vue.js的博客内容管理系统
- Google 协作平台 博客和内容管理系统 跟踪代码设置 GA谷歌分析