基于javaweb+mysql的ssm新闻管理系统(java+ssm+js+jsp+mysql)

基于javaweb+mysql的ssm新闻管理系统(java+ssm+js+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SSM新闻管理系统(java+ssm+js+jsp+mysql)

项目介绍

管理员角色包含以下功能: 管理员登录,新闻管理,类别管理,用户管理,管理员管理,广告管理等功能。 用户角色包含以下功能: 新闻主页,新闻分类查看,查看新闻细节,用户登录,评论新闻等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
		req.getSession().setAttribute("newsjunshihotlist", list1);
		list1=getnews.findnewByhotType(0, 3);
		req.getSession().setAttribute("newstiyuhotlist", list1);
		list1=getnews.findnewByhotType(0, 4);
		req.getSession().setAttribute("newsyulehotlist", list1);
		url="redirect:index.jsp";
		return url;
	}
	
	
	
}
*/

/**
 * 
 */

@Controller
public class kaishi {

@Controller
public class uploadfiles {
	@Autowired
	SourceService sourceService;
	
	
	@RequestMapping("uploadfiles")
	public String test1(HttpServletRequest request) throws Exception{
		MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request;
		List<MultipartFile> files = mrequest.getFiles("duofile");//通过获取页面中文件域的name属性,得到对应的文件对象 ,装载成一个List集合
		//调用自己写的文件上传工具类 FileUploadUtils 的upLoadFile方法实现多文件上传到服务器的某个路径下
//		upLoadFile   param1  request对象 ,为了获取服务url路径的某些信息
//					param2   上传的多个文件对象
//			 		param3  上传的路径
		Map<String, UploadFile> upLoadFile = FileUploadUtils.upLoadFile(request,files , "newsimg");
		System.out.println(upLoadFile);
		for(Map.Entry<String, UploadFile> imgs :upLoadFile.entrySet()){
			System.out.println(imgs.getKey());
			System.out.println(imgs.getValue().getFileSize());
			System.out.println(imgs.getValue().getFileType());
			System.out.println(imgs.getValue().getNewFileName());
			System.out.println(imgs.getValue().getNewFilePath());
			System.out.println(imgs.getValue().getNewFileUrl());
			String url=imgs.getValue().getNewFileUrl();
			Source source=new Source();
			source.setSrc(url.replace("newsimg","ssm_news_system/newsimg"));
			source.setType(1);
			source.setNid(Integer.parseInt(request.getParameter("nid")));
		if (request.getParameter("pageNum") == null
				|| "".equals(request.getParameter("page"))) {
			pageNum = 1;
		} else {
			pageNum = Integer.parseInt(request.getParameter("pageNum"));
		}
		ModelAndView modelAndView = new ModelAndView();
		
		String title=(String)request.getSession().getAttribute("title");
		System.out.println("======"+title+"======");
		List<News> listByNtid = newsMapper.listBysearchTitle(title);// 首先进行条件查询,返回一个news的list
		for(News n:listByNtid){
			System.out.println("==="+n.getTitle()+"===");
		}
		List<News> listByNtid1 = getnews.list(pageNum, listByNtid).getList();// 对该条件查询返回一个分页后的list链表
		pageNum = getnews.list(pageNum, listByNtid).getPageNum();
		int totalPage1 = getnews.list(pageNum, listByNtid).getPages();
		request.getSession().setAttribute("pageNum", pageNum);// 在session对象中传递当前页数
		request.getSession().setAttribute("totalPage", totalPage1);// 总页数
		modelAndView.addObject("itemsList", listByNtid1);//放入到模型对象中
		modelAndView.setViewName("searchByTitle.jsp");// 进行jsp页面的跳转

		return modelAndView;
		
		
	}
	
	@RequestMapping("searchByTitle1")
	//该方法实现了新闻按标题查询概览的显示功能
	public String  searchByTitle1(
			@RequestParam(value = "pn", defaultValue = "1") Integer pn,
			Model model,HttpServletRequest request){
		// 从第一条开始 每页查询五条数据
		PageHelper.startPage(pn, 5);
		String title=request.getParameter("title");
		request.setAttribute("title", title);
		ModelAndView modelAndView = new ModelAndView();
		List<News> list = newsMapper.listBysearchTitle(title.replace("'", ""));// 首先进行条件查询,返回一个news的list
		PageInfo page = new PageInfo(list, 5);
		model.addAttribute("pageInfo", page);
		return "searchByTitle1.jsp";

@Controller
public class uploadfiles {
	@Autowired
	SourceService sourceService;
	
	
	@RequestMapping("uploadfiles")
	public String test1(HttpServletRequest request) throws Exception{
		MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request;
		List<MultipartFile> files = mrequest.getFiles("duofile");//通过获取页面中文件域的name属性,得到对应的文件对象 ,装载成一个List集合
		//调用自己写的文件上传工具类 FileUploadUtils 的upLoadFile方法实现多文件上传到服务器的某个路径下
//		upLoadFile   param1  request对象 ,为了获取服务url路径的某些信息
//					param2   上传的多个文件对象
//			 		param3  上传的路径
		Map<String, UploadFile> upLoadFile = FileUploadUtils.upLoadFile(request,files , "newsimg");
		System.out.println(upLoadFile);
		for(Map.Entry<String, UploadFile> imgs :upLoadFile.entrySet()){
			System.out.println(imgs.getKey());
			System.out.println(imgs.getValue().getFileSize());
			System.out.println(imgs.getValue().getFileType());
			System.out.println(imgs.getValue().getNewFileName());
			System.out.println(imgs.getValue().getNewFilePath());
			System.out.println(imgs.getValue().getNewFileUrl());
			String url=imgs.getValue().getNewFileUrl();
			Source source=new Source();
			source.setSrc(url.replace("newsimg","ssm_news_system/newsimg"));
			source.setType(1);
			source.setNid(Integer.parseInt(request.getParameter("nid")));
			int i=sourceService.insert(source);
			System.out.println("============"+i);
			//request.setAttribute("url", url);

public class FileUploadUtils {
	// 这个文件上传类主要是配合SpringMVC框架的

	// 这里主要是把文件上传到本地Tomcat服务器的webapp下面 ,并返回web的文件访问地址

	/**
	 * 文件上传
	 * 
	 * @param request
	 *            HTTP请求
	 * @param files
	 *            上传的文件
	 * @param folder
	 *            要建立的文件夹的名字
	 * @return
	 */
	public static Map<String, UploadFile> upLoadFile(
			HttpServletRequest request, List<MultipartFile> files, String folder) {
		Map<String, UploadFile> map = new HashMap<String, UploadFile>();
		if (files != null && files.size() > 0) {
			// 1.获取绝对路径
			// request.getSession().getServletContext().getRealPath("/")==>
			// E:\apache-tomcate-7.0\webapps\项目名
			// getParentFile() ==>E:\apache-tomcate-7.0\webapps
			File root = new File(request.getSession().getServletContext()
					.getRealPath("/"))/*.getParentFile()*/;
			// 2.定义图片保存在服务器的那个位置
			// ==>E:\apache-tomcate-7.0\webapps\floder(你指定的文件夹名字)
			File loaclFilePath = new File(root, folder);
			// 3.通过http协议访问的路径 http://localhost:8080/floder(你指定的文件夹名字)
			String webFileUrl = request.getScheme() + "://"
					+ request.getServerName() + ":" + request.getServerPort()
					+ "/" + folder;
			try {
				for (MultipartFile file : files) {

/**
 * 
 */
@Controller
public class UserHandler {
	@Autowired
	UserService userService;
	@Autowired
	ManagerService managerService;
	User loginUser;
	Manager loginManager;

	@RequestMapping("register")
	// 用户注册
	public String register(HttpServletRequest req)
			throws UnsupportedEncodingException {
		req.setCharacterEncoding("utf-8");
		String url = "";
		System.out.println("=================");
		String username = req.getParameter("username");
		String password = req.getParameter("password");
		String phone_number = req.getParameter("phone_number").substring(0, 10);
		String email = req.getParameter("email");
		User existUser = userService.findUserByName(username);
		if (null != existUser) {
			req.getSession().setAttribute("mesg1", "该用户名已注册!");
			return "redirect:register.jsp";
		}
		User u = new User();
		u.setUname(username);
		u.setPwd(password);
		System.out.println("==============" + phone_number);
		u.setTel(Integer.parseInt(phone_number));
		u.setEmail(email);
		int i = userService.addUser(u);
		String code = req.getParameter("code");
		if (code.length() != 4) {
			req.getSession().setAttribute("mesg1", "验证码错误!");
			url = "redirect:register.jsp";
		} else {
			if (i > 0) {
				url = "redirect:login.jsp";
			System.out.println(imgs.getValue().getNewFilePath());
			System.out.println(imgs.getValue().getNewFileUrl());
			String url=imgs.getValue().getNewFileUrl();
			Source source=new Source();
			source.setSrc(url.replace("newsimg","ssm_news_system/newsimg"));
			source.setType(1);
			source.setNid(Integer.parseInt(request.getParameter("nid")));
			int i=sourceService.insert(source);
			System.out.println("============"+i);
			//request.setAttribute("url", url);
			request.getSession().setAttribute("url", url);
			System.out.println(imgs.getValue().getOriginalFileName());
			
			
		}
		return "redirect:houtai/file.jsp";
	}
}

@Controller
/**
		u.setTel(Integer.parseInt(phone_number));
		u.setEmail(email);
		int i = userService.addUser(u);
		String code = req.getParameter("code");
		if (code.length() != 4) {
			req.getSession().setAttribute("mesg1", "验证码错误!");
			url = "redirect:register.jsp";
		} else {
			if (i > 0) {
				url = "redirect:login.jsp";
			} else
				url = "redirect:register.jsp";
		}
		return url;

	}

	@RequestMapping("login")
	// 用户登录
	public String login(HttpServletRequest req, HttpServletResponse response)
			throws IOException {
		req.setCharacterEncoding("utf-8");
		System.out.println("=========");
		String url = "";
		String u_name = req.getParameter("username");
		String pwd = req.getParameter("password");
		User u = new User();
		u.setUname(u_name);
		u.setPwd(pwd);
		System.out.println(u.toString());
		loginUser = userService.findUser(u);
		if (loginUser == null) {
			req.getSession().setAttribute("mesg", "用户名或密码错误!");
			url = "redirect:login.jsp";
		} else {
			req.getSession().setAttribute("loginUser", loginUser);
			url = "index.jsp";
		}
		return url;
	}

	@RequestMapping("Managerlogin")
		req.getSession().setAttribute("newszhenzhihotlist", list1);
		list1=getnews.findnewByhotType(0, 2);
		req.getSession().setAttribute("newsjunshihotlist", list1);
		list1=getnews.findnewByhotType(0, 3);
		req.getSession().setAttribute("newstiyuhotlist", list1);
		list1=getnews.findnewByhotType(0, 4);
		req.getSession().setAttribute("newsyulehotlist", list1);
		url="redirect:index.jsp";
		return url;
	}
	
	
	
}
*/

/**
 * 
	    		 return "manager/ManagerInfo";
	    	}
	    	
	    	else {
	    		return "houtai/index.jsp";
	    				
	    	}
	    }
}

/**
 * 验证码
 */
public class AuthImage extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("imge/jpeg");       
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");

		}
		if(i==0){
			req.getSession().setAttribute("shibai", 1);
		}
		url="tpchshihua?flag=2";
		return url;
	}
	@RequestMapping("insertnt")
	public String insertnt(HttpServletRequest req) throws UnsupportedEncodingException{
		String url="";
		String ntname= req.getParameter("tpname");
		ntname=new String(ntname);
		News_type r=new News_type();
		r.setNtname(ntname);
		int i= getnt.insertnt(r);
		url="tpchshihua?flag=1";
		return url;
	}
	
	//分类关键字查询
	@RequestMapping("searchNews")
	public String searchNews(HttpServletRequest request) throws UnsupportedEncodingException{
		
		String title=request.getParameter("title");
		String type=request.getParameter("search-sort");
		List<News> list ;
		if(type.equals("0")){
			 list = getnews.listBysearchTitle_noPage(title);
		}
		else{
			try {
				int temp = Integer.parseInt(type);
				list = getnews.findByTypeandTitle(temp, title);
			} catch (Exception e) {
				title = "的";
				 list = getnews.listBysearchTitle_noPage(title);
			}
			
		}
		
					String dir = loaclFilePath.getAbsolutePath()
							+ dateFileDirectory();
					// 重新创建新的本地文件的路径
					// E:\apache-tomcate-7.0\webapps\floder(你指定的文件夹名字)\2017\02\25\29e6c3676c23466c8735bcc4d157ee08.xxx
					String newFilePath = dir + newFileName;
					// 重新创建新的http协议访问文件的路径
					// http://localhost:8080/floder(你指定的文件夹名字)\2017\02\25\29e6c3676c23466c8735bcc4d157ee08.xxx
					String newFileUrl = webFileUrl + dateFileDirectory()
							+ newFileName;
					// 创建文件路径
					File saveFileDirectory = new File(dir);
					if (!saveFileDirectory.exists()) {
						saveFileDirectory.mkdirs();
					}
					// 新建文件
					File createFiles = new File(newFilePath);
					long fileSize = file.getSize();
					String fileType = file.getContentType();
					
					//通过上面的代码实现了文件属性的拼接,生成操作,最后利用UploadFile,实例化一个文件对象
					UploadFile uploadFile = new UploadFile(originalFileName,
							newFileName, newFilePath, newFileUrl, fileType,
							fileSize);
					
					//将文件对象放入map集合 
					map.put(originalFileName, uploadFile);
					
					//上传文件spring框架提供的功能
					file.transferTo(createFiles);
				}
			} catch (IllegalStateException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return map;
	}

	/**
	 * 随机分配文件名
	 * 
	 * @return 29e6c3676c23466c8735bcc4d157ee08
			HttpServletResponse response) throws IOException {
		req.setCharacterEncoding("utf-8");
		String url = "";
		String name = req.getParameter("username");
		String pwd = req.getParameter("password");
		Manager m = new Manager();
		m.setMname(name);
		m.setPwd(pwd);
		loginManager = managerService.findManager(m);

		if (loginManager == null) {
			/* req.getSession().setAttribute("mesg", "用户名或密码错误!"); */
			url = "redirect:houtai/admin_login.jsp?mesg=Name or Password Error!";
		} else {
			req.getSession().setAttribute("loginManager", loginManager);
			url = "redirect:houtai/index.jsp";
		}
		return url;
	}

	@RequestMapping("loginout")
	// 注销
	public String loginout(HttpServletRequest req, HttpServletResponse response)
			throws IOException {
		req.getSession().invalidate();
		return "redirect:index.jsp";
	}

	@RequestMapping("toHoutai")
	// 转到后台
	public String toHoutai(HttpServletRequest req) throws IOException {
		req.getSession().invalidate();
		return "redirect:houtai/admin_login.jsp";
	}

	@RequestMapping("modify")
	public String modify(HttpServletRequest request,
			HttpServletResponse response) throws IOException {

		PrintWriter out = response.getWriter();
		url="tpchshihua?flag=1";
		return url;
	}
	@RequestMapping("delnt")
	public String delnt(HttpServletRequest req){
		String url="";
		int i;
		int ntid=Integer.parseInt(req.getParameter("ntid"));
		List<News> list = getnews.findnewntid(ntid);
		if(list.size()==0){
			i=getnt.delnt(ntid);}
		else{
			i=0;
		}
		if(i==0){
			req.getSession().setAttribute("shibai", 1);
		}
		url="tpchshihua?flag=2";
		return url;
	}
	@RequestMapping("insertnt")
	public String insertnt(HttpServletRequest req) throws UnsupportedEncodingException{
		String url="";
		String ntname= req.getParameter("tpname");
		ntname=new String(ntname);
		News_type r=new News_type();
		r.setNtname(ntname);
		int i= getnt.insertnt(r);
		url="tpchshihua?flag=1";
		return url;
	}
	
	//分类关键字查询
	@RequestMapping("searchNews")
	public String searchNews(HttpServletRequest request) throws UnsupportedEncodingException{
		
		String title=request.getParameter("title");
		String type=request.getParameter("search-sort");
		List<News> list ;
		if(type.equals("0")){
			 list = getnews.listBysearchTitle_noPage(title);
		}
		else{
			try {
				int temp = Integer.parseInt(type);
/**
 * 
 *	实现对管理员的管理
 */
@Controller
@RequestMapping("manager")
public class ManagerHandler{
	
	 @Autowired
	    ManagerService managerService;

	     // 添加管理员并重定向  
	    @RequestMapping("addManager") 
	    public String addManager(HttpServletRequest req){
	    	String  name=req.getParameter("managerName");
	    	String pwd=req.getParameter("managerPassword");
	    	Manager manager=new Manager();
	    	manager.setMname(name);
	    	manager.setPwd(pwd);
	        if(manager != null){
	        	managerService.saveManager(manager);
	        }
	        return "redirect:ManagerInfo";
	    }

	     
	    
	     // 修改管理员信息
	    @RequestMapping("editManager")  
	    public String editUser(HttpServletRequest req){
	           String id=req.getParameter("editManagerid");
	           String pwd=req.getParameter("editPassword");
	          String name=req.getParameter("editManagername");
	          Manager manager = managerService.findUserById(Integer.parseInt(id));
	       
	          manager.setMname(name);
	          manager.setPwd(pwd);
	          managerService.updateUser(manager);
	          //managerService.deleteManager(Integer.parseInt(id));
	          
	         return "redirect:ManagerInfo";  
	    }

	 
	     // 查询所有管理员
	  
	    @RequestMapping("getAllManager")  
	    public String getAllUser(Model model){
	        List<Manager> manager = managerService.findAll();
	        model.addAttribute("managerList",manager);
	        return "houtai/allManager.jsp";
	    }
	}
}

/**
 * 
 */
@Controller
public class UserHandler {
	@Autowired
	UserService userService;
	@Autowired
	ManagerService managerService;
	User loginUser;
	Manager loginManager;

	@RequestMapping("register")
	// 用户注册
	public String register(HttpServletRequest req)
			throws UnsupportedEncodingException {
		req.setCharacterEncoding("utf-8");
		String url = "";
/**
 * 
 *后台新闻管理和分类管理
 */
@Controller
public class kaihoutai {
	@Autowired
	getNewtype getnt;
	@Autowired
	getNews getnews;
	@Autowired
	getReview getr;
	
	NewsMapper newsMapper;
	@RequestMapping("xinwenguanli")

	public String xinwenguanli(HttpServletRequest req){
		String rul="";
		List<News> list=getnews.selectNews();
		req.getSession().setAttribute("newslist", list);
		List<News_type> list1=getnt.getnewstype();
		List<News_type> list2=getnt.getnewstype();
		req.getSession().setAttribute("newstypelist1", list1);
		req.getSession().setAttribute("newstypelist2", list2);
		String flag = req.getParameter("flag");
		if(flag==null)
		rul="redirect:houtai/design.jsp";
		else rul="redirect:design.jsp";
		return rul;
	}
	@RequestMapping("gainews")
	public String gainews(HttpServletRequest req){
		String rul="";
		List<News_type> list1=getnt.getnewstype();
		req.getSession().setAttribute("newstypelist1", list1);
		int nid=Integer.parseInt(req.getParameter("flag"));
		News n=getnews.findnewsByID(nid);
		req.getSession().setAttribute("gainews", n);

/**
 * 验证码
 */
public class AuthImage extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("imge/jpeg");       
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");

		int width= 300;  
		int height = 50;
		int count = 4;
		String codes="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";//娴犲酣鍣烽棃銏犲絿閺侊拷
		String codeValues = "";
		BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
		Graphics2D g = image.createGraphics();
		g.setColor(Color.WHITE);
		g.fillRect(0, 0, width, height);

		g.setColor(Color.blue);
		g.drawRect(0, 0, width, height);
		Random random = new Random();
		int segment = width/count;  
		for(int i=0;i<count;i++){
			int red =random.nextInt(255)+1;
			int blue = random.nextInt(255)+1;
			int green = random.nextInt(255)+1;
}

/**
 * 
 * 
 */
@Controller
public class pageHandler {
	@Autowired
	getNews getnews; // 获取到一个news的service
	@Resource
	NewsMapper newsMapper;

	@RequestMapping("queryAllItems")
	//该方法实现了新闻分类标题概览的分类显示功能
	public ModelAndView Limitlist(HttpServletRequest request) {
		String ntId=request.getParameter("ntid");
		System.out.println("===NTID====="+ntId);
		//request.getSession().setAttribute("ntid", Integer.parseInt(ntId));
		request.getSession().setAttribute("ntid", Integer.parseInt(ntId));
		int pageNum = 1;
		if (request.getParameter("pageNum") == null
				|| "".equals(request.getParameter("page"))) {
			pageNum = 1;
		} else {
			pageNum = Integer.parseInt(request.getParameter("pageNum"));
		}
		ModelAndView modelAndView = new ModelAndView();
		
		Integer ntid=(Integer)request.getAttribute("ntid");

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值