基于javaweb+mysql的springboot新闻发布系统(java+springboot+ssm+mysql+maven+jsp)

这是一个基于JavaWeb、MySQL、SpringBoot、SSM、Maven和JSP的新闻发布系统。适用于课程设计、大作业等场景。系统功能包括管理员用户管理、新闻操作、用户评论、注册登录和信息修改等。
摘要由CSDN通过智能技术生成

基于javaweb+mysql的springboot新闻发布系统(java+springboot+ssm+mysql+maven+jsp)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SpringBoot新闻发布系统(java+springboot+ssm+mysql+maven+jsp)

一、项目简述

功能: 区分为管理员用户和普通用户,管理员用户能删除评论, 调整新闻显示/隐藏,修改新闻,删除普通用户,普通用户能 登陆浏览,新用户可以注册基本功能实现了新闻增加,新 闻删除,新闻修改,新闻搜索其他功能:用户评论,管理 员删除差评,新闻分类,前台分类显示新闻,用户注册, 登录,个人信息修改等等功能。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP + SpringBoot + Servlert + htm l+ css + JavaScript + ECharts+ JQuery + Maven 等等


    @RequestMapping("/search")
    public String search(){
        String search = request.getParameter("search");

        request.setAttribute("searchStr", search);

        List<News> newsList = newsDao.queryAll();
        newsList=newsList.stream().filter(x -> x.getTitle().contains(search)).collect(Collectors.toList());

        newsList=	newsList.stream().map(x->{

            String title = x.getTitle();

            /*			String[] split = title.split(search);
             */
			/*if(split.length>=2){
				for(int i=0;i<split.length-1;i++){
			title=split[i]+"<font color='red'>"+search+"</font>"+split[i+1];

				}
			}else{
				title=split[0]+"<font color='red'>"+search+"</font>";
			}*/
            title=title.replace(search, "<font color='red'>"+search+"</font>");

            System.out.println(title);

            x.setTitle(title);

            return x;
        }).collect(Collectors.toList());

        request.setAttribute("list",newsList
        );
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("categoryList",
                categoryList.stream().filter(x -> x.getState().equals("1")).collect(Collectors.toList()));

        List<Users> list = usersDao.getUsers();
        request.setAttribute("list", list);
        return "listusers";

    }
}

@Controller
@RequestMapping("CategoryServlet")
public class CategoryController {
    @Autowired
    private HttpServletRequest request;
    private CategoryDao categoryDao=new CategoryDao();

    @RequestMapping("/listforadmin")
    public String listforadmin(){
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("list", categoryList);
        return "listcategory";
    }
    @RequestMapping("/show")
    public String show(){
        List<Category> categoryList = categoryDao.queryAll();
        categoryList=categoryList.stream().filter(x->x.getState().equals("1")).collect(Collectors.toList());

        if(categoryList.size()>=5)
        {

            request.setAttribute("list", categoryDao.queryAll());
            request.setAttribute("msg","设置栏目显示失败,前台栏目最多显示5个");
            } else if (createTypeFlag[0].equals("nl")) {
                // 截取数字和字母的组合
                return createRandomChar(g, baseNumLetter);
            } else if (createTypeFlag[0].equals("n")) {
                // 截取数字
                return createRandomChar(g, baseNum);
            } else if (createTypeFlag[0].equals("l")) {
                // 截取字母
                return createRandomChar(g, baseLetter);
            }
        } else {
            // 默认截取数字和字母的组合
            return createRandomChar(g, baseNumLetter);
        }

        return "";
    }

    /**
     * 创建随机字符
     *
     * @param g
     * @param baseChar
     * @return 随机字符
     */
    private String createRandomChar(Graphics2D g, String baseChar) {
        StringBuffer sb = new StringBuffer();
        int x = 5;
        String ch = "";
        // 控制字数
        for (int i = 0; i < 4; i++) {
            // 设置字体旋转角度
            int degree = new Random().nextInt() % 30;
            ch = baseChar.charAt(new Random().nextInt(baseChar.length())) + "";
            sb.append(ch);
            // 正向角度
            g.rotate(degree * Math.PI / 180, x, 20);
            g.drawString(ch, x, 20);
            // 反向角度
            g.rotate(-degree * Math.PI / 180, x, 20);
            x += 30;
        }
        return sb.toString();
    }
}

        news.setPbdate(new Date());
        news.setPbdeptid(deptid);
        news.setPublisher(usersId);
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setTitle(title);
        newsDao.save(news);
        return "redirect:listforadmin";
    }

    @RequestMapping("/listforadmin")
    public String listforadmin(){
        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList);
        return "listnews";
    }

    @RequestMapping("/toaddnews")
    public String toaddnews(){
        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList);
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("categoryList", categoryList);
        return "addnews";
    }

    @RequestMapping("/edit")
    public String edit(){
        String title = request.getParameter("title");
        String content = request.getParameter("content");
        String categoryid = request.getParameter("categoryid");

        News news = new News();
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setContent(content);
        news.setPbdate(new Date());
        news.setId(Integer.parseInt(request.getParameter("id")));

        news.setTitle(title);
        newsDao.edit(news);
        return "redirect:listforadmin";
    }

    @RequestMapping("/del")
        // 设置颜色
        g.setColor(Color.WHITE);
        // 填充区域
        g.fillRect(0, 0, WIDTH, HEIGHT);
    }

    /**
     * 设置图片的边框
     *
     * @param g
     */
    private void setBorder(Graphics g) {
        // 设置边框颜色
        g.setColor(Color.BLUE);
        // 边框区域
        g.drawRect(1, 1, WIDTH - 2, HEIGHT - 2);
    }

    /**
     * 在图片上画随机线条
     *
     * @param g
     */
    private void drawRandomLine(Graphics g) {
        // 设置颜色
        g.setColor(Color.GREEN);
        // 设置线条个数并画线
        for (int i = 0; i < 5; i++) {
            int x1 = new Random().nextInt(WIDTH);
            int y1 = new Random().nextInt(HEIGHT);
            int x2 = new Random().nextInt(WIDTH);
            int y2 = new Random().nextInt(HEIGHT);
            g.drawLine(x1, y1, x2, y2);
        }
    }

    /**
     * 画随机字符
     *
     * @param g
            return "listusers";

    }
    @RequestMapping("/del")
    public String del(Integer id) {

        usersDao.del(id);

        List<Users> list = usersDao.getUsers();
        request.setAttribute("list", list);
        return "listusers";

    }
}

@Controller
@RequestMapping("CategoryServlet")
public class CategoryController {
    @Autowired
    private HttpServletRequest request;
    private CategoryDao categoryDao=new CategoryDao();

    @RequestMapping("/listforadmin")
    public String listforadmin(){
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("list", categoryList);
        return "listcategory";
    }
    @RequestMapping("/show")
    public String show(){
        List<Category> categoryList = categoryDao.queryAll();
        categoryList=categoryList.stream().filter(x->x.getState().equals("1")).collect(Collectors.toList());

        if(categoryList.size()>=5)
        {

            request.setAttribute("list", categoryDao.queryAll());
            request.setAttribute("msg","设置栏目显示失败,前台栏目最多显示5个");
            return "listcategory";
        }else {
            categoryDao.show(Integer.parseInt(request.getParameter("id")));
            return "redirect:listforadmin";
        }
                request.setAttribute("error", "注册失败,该用户名已存在!");
                return "reg";

            } else {
                usersDao.reg(username, account, password, email);
                request.setAttribute("error", "注册成功!");

                return "reg";
            }
        }

    }

    @RequestMapping("/listforadmin")
    public String listforadmin() {

            List<Users> list = usersDao.getUsers();
            request.setAttribute("list", list);
            return "listusers";

    }
    @RequestMapping("/del")
    public String del(Integer id) {

        usersDao.del(id);

        List<Users> list = usersDao.getUsers();
        request.setAttribute("list", list);
        return "listusers";

    }
}

        String username = request.getParameter("username");
        String password = request.getParameter("password");
        Users users = usersDao.login(username, password);

        if (users != null) {
            request.getSession().setAttribute("loginUsers", users);
            return "admin_index";

        } else {
            request.setAttribute("msg", "登录失败,账号密码不匹配");
            return "admin_login";

        }

    }

    @RequestMapping("/userlogin")
    public String userlogin() {
        String userName = request.getParameter("username");
        String password = request.getParameter("password");
        String clientCheckcode = request.getParameter("validateCode");
        String serverCheckcode = (String) request.getSession().getAttribute("checkcode");
        if (clientCheckcode.equalsIgnoreCase(serverCheckcode)) {
            // 2. 去访问dao , 看看是否满足登录。

            Users Users = usersDao.userlogin(userName, password);

            // 3. 针对dao的返回结果,做出响应
            if (Users != null) {

                request.getSession().setAttribute("usersLogin", Users);
                CategoryDao categoryDao = new CategoryDao();
                List<Category> categoryList = categoryDao.queryAll();
                request.setAttribute("categoryList", categoryList.stream().filter(x -> x.getState().equals("1")).collect(Collectors.toList()));
                return "index";

            } else {
                request.setAttribute("error", "用户名或密码错误!");
                return "login";

            }
        } else {
            request.setAttribute("error", "登录失败,验证码不正确!");
            return "login";

        }
    }

    @RequestMapping("/userreg")
    public String userreg() {

@Controller
@RequestMapping("CategoryServlet")
public class CategoryController {
    @Autowired
    private HttpServletRequest request;
    private CategoryDao categoryDao=new CategoryDao();

    @RequestMapping("/listforadmin")
    public String listforadmin(){
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("list", categoryList);
        return "listcategory";
    }
    @RequestMapping("/show")
    public String show(){
        List<Category> categoryList = categoryDao.queryAll();
        categoryList=categoryList.stream().filter(x->x.getState().equals("1")).collect(Collectors.toList());

        if(categoryList.size()>=5)
        {

            request.setAttribute("list", categoryDao.queryAll());
            request.setAttribute("msg","设置栏目显示失败,前台栏目最多显示5个");
            return "listcategory";
        }else {
            categoryDao.show(Integer.parseInt(request.getParameter("id")));
            return "redirect:listforadmin";
        }
    }
    @RequestMapping("/hidden")
    public String hidden(){

        categoryDao.hidden(Integer.parseInt(request.getParameter("id")));
        return "redirect:listforadmin";
    }
    @RequestMapping("/add")
    public String add(){
        String name=request.getParameter("name");
        String state=request.getParameter("state");
        Category category=new Category();
        category.setName(name);
        category.setState(state);

        Users users = (Users) request.getSession().getAttribute("loginUsers");
        Integer usersId = users.getId();

        Integer deptid = users.getDeptid();

        News news = new News();
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setClicks(0);
        news.setContent(content);
        news.setPbdate(new Date());
        news.setPbdeptid(deptid);
        news.setPublisher(usersId);
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setTitle(title);
        newsDao.save(news);
        return "redirect:listforadmin";
    }

    @RequestMapping("/listforadmin")
    public String listforadmin(){
        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList);
        return "listnews";
    }

    @RequestMapping("/toaddnews")
    public String toaddnews(){
        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList);
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("categoryList", categoryList);
        return "addnews";
    }


        Users users = (Users) request.getSession().getAttribute("loginUsers");
        Integer usersId = users.getId();

        Integer deptid = users.getDeptid();

        News news = new News();
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setClicks(0);
        news.setContent(content);
        news.setPbdate(new Date());
        news.setPbdeptid(deptid);
        news.setPublisher(usersId);
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setTitle(title);
        newsDao.save(news);
        return "redirect:listforadmin";
    }

    @RequestMapping("/listforadmin")
    public String listforadmin(){
        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList);
        return "listnews";
    }

    @RequestMapping("/toaddnews")
    public String toaddnews(){
        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList);
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("categoryList", categoryList);
        return "addnews";
    }

    @RequestMapping("/edit")
    public String edit(){
        String title = request.getParameter("title");
        String content = request.getParameter("content");
        String categoryid = request.getParameter("categoryid");

        String title = request.getParameter("title");
        String content = request.getParameter("content");
        String categoryid = request.getParameter("categoryid");

        News news = new News();
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setContent(content);
        news.setPbdate(new Date());
        news.setId(Integer.parseInt(request.getParameter("id")));

        news.setTitle(title);
        newsDao.edit(news);
        return "redirect:listforadmin";
    }

    @RequestMapping("/del")
    public String del(){
        newsDao.deleteById(Integer.parseInt(request.getParameter("id")));
        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList);
        return "listnews";

    }

    @RequestMapping("/toeditnews")
    public String toeditnews(){
        News news = newsDao.queryByid(Integer.parseInt(request.getParameter("id")));
        request.setAttribute("v", news);
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("categoryList", categoryList);
        return "editnews";
    }

    @RequestMapping("/queryByType")
    public String queryByType(){
        String categoryid = request.getParameter("categoryid");

        List<News> newsList = newsDao.queryAll();
        request.setAttribute("list", newsList.stream()
                .filter(x -> x.getCategoryid().equals(Integer.parseInt(categoryid))).collect(Collectors.toList()));
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("categoryList",
                categoryList.stream().filter(x -> x.getState().equals("1")).collect(Collectors.toList()));

        return "typenews";
    }

    public String del(Integer id) {

        usersDao.del(id);

        List<Users> list = usersDao.getUsers();
        request.setAttribute("list", list);
        return "listusers";

    }
}

@Controller
@RequestMapping("CategoryServlet")
public class CategoryController {
    @Autowired
    private HttpServletRequest request;
    private CategoryDao categoryDao=new CategoryDao();

    @RequestMapping("/listforadmin")
    public String listforadmin(){
        List<Category> categoryList = categoryDao.queryAll();
        request.setAttribute("list", categoryList);
        return "listcategory";
    }
    @RequestMapping("/show")
    public String show(){
        List<Category> categoryList = categoryDao.queryAll();
        categoryList=categoryList.stream().filter(x->x.getState().equals("1")).collect(Collectors.toList());

        String email = request.getParameter("email");
        String password2 = request.getParameter("password2");
        if (!password.equals(password2)) {
            request.setAttribute("error", "注册失败,密码与确认密码不一致!");
            return "reg";
        } else {

            boolean isSuccess = usersDao.isReg(account);

            if (!isSuccess) {

                request.setAttribute("error", "注册失败,该用户名已存在!");
                return "reg";

            } else {
                usersDao.reg(username, account, password, email);
                request.setAttribute("error", "注册成功!");

                return "reg";
            }
        }

    }

    @RequestMapping("/listforadmin")
    public String listforadmin() {

            List<Users> list = usersDao.getUsers();
            request.setAttribute("list", list);
            return "listusers";

    }
    @RequestMapping("/del")
    public String del(Integer id) {

        usersDao.del(id);

        List<Users> list = usersDao.getUsers();
        request.setAttribute("list", list);
        return "listusers";

    }
}

    }
}

@Controller
@RequestMapping("NewsServlet")
public class NewsController {
    @Autowired
    private HttpServletRequest request;
    private NewsDao newsDao = new NewsDao();
    private CategoryDao categoryDao = new CategoryDao();
    private CommentsDao commentsDao = new CommentsDao();
    @RequestMapping("/publish")
    public String publish(){
        String title = request.getParameter("title");
        String content = request.getParameter("content");
        String categoryid = request.getParameter("categoryid");

        Users users = (Users) request.getSession().getAttribute("loginUsers");
        Integer usersId = users.getId();

        Integer deptid = users.getDeptid();

        News news = new News();
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setClicks(0);
        news.setContent(content);
        news.setPbdate(new Date());
        news.setPbdeptid(deptid);
        news.setPublisher(usersId);
        news.setCategoryid(Integer.parseInt(categoryid));
        news.setTitle(title);
        newsDao.save(news);
    }

    @RequestMapping("/userlogin")
    public String userlogin() {
        String userName = request.getParameter("username");
        String password = request.getParameter("password");
        String clientCheckcode = request.getParameter("validateCode");
        String serverCheckcode = (String) request.getSession().getAttribute("checkcode");
        if (clientCheckcode.equalsIgnoreCase(serverCheckcode)) {
            // 2. 去访问dao , 看看是否满足登录。

            Users Users = usersDao.userlogin(userName, password);

            // 3. 针对dao的返回结果,做出响应
            if (Users != null) {

                request.getSession().setAttribute("usersLogin", Users);
                CategoryDao categoryDao = new CategoryDao();
                List<Category> categoryList = categoryDao.queryAll();
                request.setAttribute("categoryList", categoryList.stream().filter(x -> x.getState().equals("1")).collect(Collectors.toList()));
                return "index";

            } else {
                request.setAttribute("error", "用户名或密码错误!");
                return "login";

            }
        } else {
            request.setAttribute("error", "登录失败,验证码不正确!");
            return "login";

        }
    }

    @RequestMapping("/userreg")
    public String userreg() {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String account = request.getParameter("account");
        String email = request.getParameter("email");
        String password2 = request.getParameter("password2");
        // String random = drawRandomNum((Graphics2D) g,"nl");//生成数字和字母组合的验证码图片
        // String random = drawRandomNum((Graphics2D) g,"n");//生成纯数字的验证码图片
        // String random = drawRandomNum((Graphics2D) g,"l");//生成纯字母的验证码图片
        String random = drawRandomNum((Graphics2D) g, createTypeFlag);// 根据客户端传递的createTypeFlag标识生成验证码图片
        // 7.将随机数存在session中
        request.getSession().setAttribute("checkcode", random);
        // 8.设置响应头通知浏览器以图片的形式打开
        response.setContentType("image/jpeg");// 等同于response.setHeader("Content-Type",
        // "image/jpeg");
        // 9.设置响应头控制浏览器不要缓存
        response.setDateHeader("expries", -1);
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        // 10.将图片写给浏览器
        ImageIO.write(bi, "jpg", response.getOutputStream());
    }

    /**
     * 设置图片的背景色
     *
     * @param g
     */
    private void setBackGround(Graphics g) {
        // 设置颜色
        g.setColor(Color.WHITE);
        // 填充区域
        g.fillRect(0, 0, WIDTH, HEIGHT);
    }

    /**
     * 设置图片的边框
     *
     * @param g
     */
    private void setBorder(Graphics g) {
        // 设置边框颜色
        g.setColor(Color.BLUE);
        // 边框区域
        g.drawRect(1, 1, WIDTH - 2, HEIGHT - 2);
    }

    /**
     * 在图片上画随机线条
     *
     * @param g
     */
    private void drawRandomLine(Graphics g) {
        // 8.设置响应头通知浏览器以图片的形式打开
        response.setContentType("image/jpeg");// 等同于response.setHeader("Content-Type",
        // "image/jpeg");
        // 9.设置响应头控制浏览器不要缓存
        response.setDateHeader("expries", -1);
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        // 10.将图片写给浏览器
        ImageIO.write(bi, "jpg", response.getOutputStream());
    }

    /**
     * 设置图片的背景色
     *
     * @param g
     */
    private void setBackGround(Graphics g) {
        // 设置颜色
        g.setColor(Color.WHITE);
        // 填充区域
        g.fillRect(0, 0, WIDTH, HEIGHT);
    }

    /**
     * 设置图片的边框
     *
     * @param g
     */
    private void setBorder(Graphics g) {
        // 设置边框颜色
        g.setColor(Color.BLUE);
        // 边框区域
        g.drawRect(1, 1, WIDTH - 2, HEIGHT - 2);
    }

    /**
     * 在图片上画随机线条
     *
     * @param g
     */
    private void drawRandomLine(Graphics g) {
        // 设置颜色
        g.setColor(Color.GREEN);
        // 设置线条个数并画线
        for (int i = 0; i < 5; i++) {
            int x1 = new Random().nextInt(WIDTH);
            int y1 = new Random().nextInt(HEIGHT);

请添加图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值