CMS系统学习笔记

CMS系统

    • 第一天学习

第一天学习

CMS:内容(文章)管理系统
它类似的项目CMS管理系统:新闻发布系统、博客blog管理系统、QQ空间

.1. Maven:结构 它可以帮我们自动导包,自动编译,规范代码,…;

                 - src/main/java -> Java代码的存放位置
      				src/main/resources -> 资源文件的存放位置
      				src/test/java -> 测试代码的位置
      				src/test/resources -> 代码资源文件的位置

. 2.项目搭建的常规操作

			 - 数据库建表:t_image
				 建三层架构:dao(持久层),service(业务层),controller(控制层)
				 spring和springMVC环境配置:
				 (1)导包
				 (2)配置文件

web.xml:




  cms
 
	
		contextConfigLocation
		classpath:applicationContext.xml
	
	
	
		dispatcher
		org.springframework.web.servlet.DispatcherServlet
		
			
			contextConfigLocation
			classpath:applicationContext-mvc.xml
		
		
		1
	
	
		dispatcher
		
		/
	
	
	
		org.springframework.web.context.ContextLoaderListener
	

	
	
 
   CharacterEncodingFilter
   org.springframework.web.filter.CharacterEncodingFilter
   
     encoding
     utf-8
   
 
 
   CharacterEncodingFilter
   /*
 

applicationContext.xml:












	
	
	
	



 
 	
 



applicationContext-mvc.xml



	
  
	
	
	
	
	
	
	
	
		
		
	
	
	
		
			2000000000
		
	  


.3.搞定页面(凡是WEB-INF中的页面都要通过Controller访问)
SystemController -> 进入后台的主页面

package cn.itsource.cms.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/system")
public class SystemController {
	
		@RequestMapping("/index")//配置访问路径
		public String index(){
			return "index";
			
		}
}

ImagesController -> 进入轮播图(CRUD)管理页面

package cn.itsource.cms.web.controller;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import cn.itsource.cms.domain.Images;
import cn.itsource.cms.service.IImagesService;

@Controller//Controller 就相当于你的bean已经配置好了
@RequestMapping("/images")
public class ImagesController {
	
	@Autowired//自动注入
	private IImagesService imageService;

	@RequestMapping("/query")
	public String query(Model model){//使用Model传参
	//绑定参数
		model.addAttribute("imageList",imageService.findAll());
		return "main";
	}
	
	
	/**
	 * 添加或者修改的跳转
	 * @return
	 */
	@RequestMapping("/input")
	public String input(){
		return "main_add";
	}
	
	/**
	 * 添加或者修改功能
	 * @return
	 * @throws IOException 
	 * @throws IllegalStateException 
	 */
	@RequestMapping("/save")
	public String save(Images images,HttpServletRequest req) throws Exception{
		//一.解决上传的名称问题
		//1.拿到相应的文件
		MultipartFile fileImg = images.getFileImg();
		//2.拿到文件名称
		String fileName = fileImg.getOriginalFilename();
		//3.拿到文件的扩展名
		String extName = FilenameUtils.getExtension(fileName);
		//4.获取随机名称
		String uuid = UUID.randomUUID().toString();
		//5.拼接一个新的名称
		String newFileName = uuid+"."+extName;
		//二.解决上传的路径问题
		//2.1获取真实路径
		String realPath = req.getServletContext().getRealPath("/upload");
		//2.2创建文件
		File file = new File(realPath,newFileName);
		//2.3创建父文件路径(装file的文件夹路径)
		File parentFile = file.getParentFile();
		if(!parentFile.exists()){//判断有没有文件夹,没有就创建
			parentFile.mkdirs();
		}
		//三.保存文件  transferTo:保存文件的方法
		fileImg.transferTo(file);
		
		//添加数据
		//1.添加名称
		images.setStorename(fileName);
		//2.添加地址
		images.setStorepath("/upload/"+newFileName);
		imageService.save(images);
		
		return "redirect:/images/query";
	}
	
}

.4. 和前端合作

  • (1)前端会把html做好,然后我们把他做的页面搞到我们的项目中来(图片,js,css的引入路径都要进行修改)

  • (2) iframe -> 可以把其它的页面直接放入到页面中来(src="…")

  • (3)注意点:如果咱们配置有上下文路径:所有跳转的路径前加:${pageContext.request.contextPath }
    .5.完成图片上传

  • (1)form中需要配置 method=“post” enctype=“multipart/form-data”

  • (2)后台要根据上传的文件名进行接收
    ①.修改名称 ②.获取路径 ③.保存图片(fileImg.transferTo(file))
    ④.保存Images对象(绝对路径的地址,名称)

你可能感兴趣的:(CMS系统学习笔记)