package com.zr.interceptor;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Longinterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (request.getSession().getAttribute("user")==null){
response.sendRedirect("/admin");
return false;
}
return true;
}
}
package com.zr.interceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new Longinterceptor()).addPathPatterns("/admin/**").excludePathPatterns("/admin/login").excludePathPatterns("/admin");
}
}
package com.zr.po;
public class BlogQuery {
private String title;
private Long typeId;
private Boolean recommend;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Long getTypeId() {
return typeId;
}
public void setTypeId(Long typeId) {
this.typeId = typeId;
}
public Boolean getRecommend() {
return recommend;
}
public void setRecommend(Boolean recommend) {
this.recommend = recommend;
}
@Override
public String toString() {
return "BlogQuery{" +
"title='" + title + '\'' +
", typeId=" + typeId +
", recommend=" + recommend +
'}';
}
}
package com.zr.web;
import com.zr.po.Blog;
import com.zr.po.Tag;
import com.zr.po.Type;
import com.zr.service.IBlogService;
import com.zr.service.ITagService;
import com.zr.service.ITypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
public class IndexController {
@Autowired
private IBlogService blogService;
@Autowired
private ITypeService typeService;
@Autowired
private ITagService tagService;
@RequestMapping("/")
public String index(@PageableDefault(size = 5,sort = {"updateTime"},direction = Sort.Direction.DESC) Pageable pageable, Model model){
Page<Blog> page = blogService.listBlog(pageable);
List<Type> types=typeService.listTypeTop(6);
List<Tag> tags=tagService.listTypeTop(6);
List<Blog> blogs=blogService.listRecommendBlogTop(3);
model.addAttribute("page",page);
model.addAttribute("types",types);
model.addAttribute("tags",tags);
model.addAttribute("recommendBlogs",blogs);
return "index";
}
@GetMapping("/footer/newblog")
public String newblogs(Model model){
List<Blog> blogs = blogService.listRecommendBlogTop(3);
model.addAttribute("newblogs",blogs);
return "_fragments :: newblogList";
}
@PostMapping("/search")
public String search(@PageableDefault(size = 5,sort = {"updateTime"},direction = Sort.Direction.DESC) Pageable pageable, @RequestParam String query, Model model){
Page<Blog> page=blogService.listBlog(query,pageable);
model.addAttribute("page",page);
return "search";
}
@GetMapping("blog/{id}")
public String blog(@PathVariable Long id,Model model){
model.addAttribute("blog",blogService.getBlog(id));
return "blog";
}
@RequestMapping("about")
public String about(){
return "about";
}
}
package com.zr.web;
import com.zr.po.Blog;
import com.zr.po.Tag;
import com.zr.service.IBlogService;
import com.zr.service.ITagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@Controller
public class TagShowController {
@Autowired
private ITagService tagService;
@Autowired
private IBlogService blogService;
@RequestMapping("tags/{id}")
public String tags(@PageableDefault(size = 5,sort = {"updateTime"},direction = Sort.Direction.DESC)Pageable pageable, @PathVariable Long id, Model model){
List<Tag> tags = tagService.listTypeTop(50);
if (id==-1){
id=tags.get(0).getId();
}
Page<Blog> page=blogService.listBlog(id,pageable);
model.addAttribute("page",page);
model.addAttribute("tags",tags);
return "tags";
}
}
package com.zr.web;
import com.zr.po.Blog;
import com.zr.po.BlogQuery;
import com.zr.po.Type;
import com.zr.service.IBlogService;
import com.zr.service.ITypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
@Controller
public class TypesShowController {
@Autowired
private ITypeService typeService;
@Autowired
private IBlogService blogService;
@GetMapping("types/{id}")
public String types(@PageableDefault(size = 5,sort = {"updateTime"},direction = Sort.Direction.DESC) Pageable pageable, @PathVariable Long id, Model model){
List<Type> types = typeService.listTypeTop(50);
BlogQuery blogQuery = new BlogQuery();
if (id==-1){
id=types.get(0).getId();
}
blogQuery.setTypeId(id);
Page<Blog> page = blogService.listBlog(pageable,blogQuery);
model.addAttribute("types",types);
model.addAttribute("page",page);
return "types";
}
}
index.email=82398369@qq.com
index.qq=82398369
index.blogDescription=This is my blog