zoukankan      html  css  js  c++  java
  • 新闻发布系统

    一.实现效果图:

    主页面:

    登陆后跳转的页面:

    添加新闻=====文件上传:

    编辑新闻----修改  删除:

    添加主题===分类:

    编辑主题:

    二.分层架构图:

    web项目里后台的分层:

    三.如下就是功能的实现代码:

    登陆的主要代码:

    package cn.news.dao.impl;
    
    import java.sql.SQLException;
    
    import org.junit.Test;
    
    import cn.news.dao.BaseDAO;
    import cn.news.dao.IUserInfoDAO;
    import cn.news.entity.UserInfo;
    
    public class UserInfoDAOImpl extends BaseDAO implements IUserInfoDAO {
    
        @Test
        public void loginTest() throws SQLException{
            UserInfo info =new UserInfo();
            info.setUname("admin");
            info.setUpwd("admin");
             boolean flag= isLogin(info);
             if (flag) {
                System.out.println("login success!");
            }
        }
        
        
        public boolean isLogin(UserInfo info) throws SQLException {
            boolean flag=false;
            
            String sql="select count(1) as mycount from useerinfo where uname=? and upwd=?";
            Object[] paras={info.getUname(),info.getUpwd()};
            getConection();
            rs=executeQuery(sql,paras);
            if (rs.next()) {
                int count = rs.getInt("mycount");
                if (count>0) {
                    //登录成功
                    flag=true;
                }
            }
            closeResources();
            return flag;
        }
    
    }

    获取新闻内容代码:

    package cn.news.serlvet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.SQLException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import cn.news.entity.NewsInfo;
    import cn.news.entity.UserInfo;
    import cn.news.service.INewsInfoService;
    import cn.news.service.IUserInfoService;
    import cn.news.service.impl.NewsInfoServiceImpl;
    import cn.news.service.impl.UserInfoServiceImpl;
    
    public class UserInfoServlet 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 {
            //准备新闻数据
            INewsInfoService newsservice=new NewsInfoServiceImpl();
            try {
                List<NewsInfo> newsList = newsservice.getAllNews();
                //放入request作用域
                request.setAttribute("newsList", newsList);
            } catch (SQLException e1) {
                
            }
            
            
            String action=request.getParameter("action");  //logout
            if ("logout".equals(action)) {
                //执行注销操作
                
                //1.清除session
                request.getSession().removeAttribute("uname");
                //2.跳转到index
                /*response.sendRedirect("/NewsManagerSystem/index.jsp");*/
                
                request.getRequestDispatcher("/index.jsp").forward(request, response);
                
            }else if("login".equals(action)) {
                //code write here
                //1.解决乱码
                request.setCharacterEncoding("utf-8");
                //2.解析前台传递的表单数据 
                String uname=request.getParameter("uname");
                String upwd=request.getParameter("upwd");
                
                //拼接成一个用户对象
                UserInfo info=new UserInfo();
                info.setUname(uname);
                info.setUpwd(upwd);
                
                IUserInfoService service=new UserInfoServiceImpl();
                        
                try {
                    boolean flag = service.isLogin(info);
                    
                    if (flag) {  //登录成功
    
                        //3.记录session
                        request.getSession().setAttribute("uname", uname);
                        //4.转发或者重定向   转发不需要加项目名称
                        request.getRequestDispatcher("/newspages/admin.jsp").forward(request, response);
                        
                    }else {
                        //response.sendRedirect("/NewsManagerSystem/index.jsp");
                        request.getRequestDispatcher("/index.jsp").forward(request, response);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }//code write here
                
            }else {
                //第一次访问首页
                request.getRequestDispatcher("/index.jsp").forward(request, response);
            }
            
            
        }

    页面调用:

    <script type="text/javascript">
        
    <%if("true".equals(request.getAttribute("longinfailure"))){%>
        alert("用户名或密码为空!");
    <%}%>
        
    </script>
    
    </head>
    
    <body>
        <div id="header">
            <div id="top_login">
                <form action="<%=path%>/UserInfoNewServlet" method="post">
                    <label> 登录名 </label> <input type="text" id="uname" name="uname"
                        value="" class="login_input" /> <label> 密&#160;&#160;码 </label> <input
                        type="password" id="upwd" name="upwd" value="" class="login_input" />
                    <input type="submit" class="login_sub" value="登录" />

    分页:

    package cn.news.util;
    
    import java.util.List;
    
    import cn.news.entity.NewsInfo;
    
    public class Page {
        // 当前页
        private int pageIndex;
        // 页面总记录数
        private int pageSize;
        // 本业显示真实数据
        private List<NewsInfo> list;
        // 总页数
        private int totalPages;
        // 总记录数
        private int totalRecords;
    
        public int getPageIndex() {
            return pageIndex;
        }
    
        public void setPageIndex(int pageIndex) {
            this.pageIndex = pageIndex;
        }
    
        public int getPageSize() {
            return pageSize;
        }
    
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
    
        public List<NewsInfo> getList() {
            return list;
        }
    
        public void setList(List<NewsInfo> list) {
            this.list = list;
        }
    
        public int getTotalPages() {
            return totalPages;
        }
    
        public void setTotalPages(int totalPages) {
            this.totalPages = totalPages;
        }
    
        public int getTotalRecords() {
            return totalRecords;
        }
    
        public void setTotalRecords(int totalRecords) {
            this.totalRecords = totalRecords;
        }
    
    }

    从数据库里拿到的分页代码如下:

    @Override
        public List<NewsInfo> getPageInfos(int pageIndex, int pageSize) throws Exception {
            List<NewsInfo> list=new ArrayList<NewsInfo>();
    
            String sql="SELECT * FROM newinfo LIMIT ?,?";
            rs=executeQuery(sql,(pageIndex-1)*pageSize,pageSize);
            if (rs!=null) {
                while (rs.next()) {
                    NewsInfo info=new NewsInfo();
                    int nid=rs.getInt("nid");
                    String ntitle=rs.getString("ntitle");
                    String nauthor=rs.getString("nauthor");
                    Date npublisherdate=rs.getDate("npublisherdate");
                    String ncontent=rs.getString("ncontent");
                    int tid=rs.getInt("tid");
                    
                    info.setNauthor(nauthor);
                    info.setNcontent(ncontent);
                    info.setNid(nid);
                    info.setNpublisherdate(npublisherdate);
                    info.setNtitle(ntitle);
                    info.setTid(tid);
                    
                    list.add(info);
                }
            }
            return list;
        }

    servlet调用:

    public void pagenews(HttpServletRequest request,HttpServletResponse response) {
            IUserInfoService daoInfoService = new UserInfoService();
            try {
                Page oaPage = new Page();
                // 默认三条数据
                int pageSize = 3;
                oaPage.setPageSize(pageSize);
                // pageIndex(当前页)
                int myindex = 1;
                
                String pageIndex = request.getParameter("pageIndex");
                if (null!=pageIndex && (!pageIndex.equals(""))) {
                    myindex = Integer.parseInt(pageIndex);
                }
                
                // 总页数赋值=总记录数/pageSize
                int mytotalPages = 0;
                int ipages = daoInfoService.selectnewsall();
                if (ipages % pageSize == 0) {
                    mytotalPages = ipages / pageSize;
                } else {
                    mytotalPages = ipages / pageSize + 1;
                }
                oaPage.setTotalPages(mytotalPages);
                if(myindex>oaPage.getTotalPages()){
                    myindex=oaPage.getTotalPages();    
                    System.out.println(myindex+"1");
                }
                System.out.println("=================================");
                if (myindex<1) {
                    myindex=1;
                    System.out.println(myindex+"2");
                }
                oaPage.setPageIndex(myindex);
                // 泛型数据赋值
                List<NewsInfo> list = daoInfoService.getPageInfos(oaPage.getPageIndex(), pageSize);
                oaPage.setList(list);
    
                // 将泛型集合,放入request作用域
                request.setAttribute("list", oaPage);
                // 转发index.jsp 转发不用加名称
                
    
            } catch (Exception e) {
    
                e.printStackTrace();
            }
        }
        public void pageNews(HttpServletRequest request,HttpServletResponse response) {
            IUserInfoService daoInfoService = new UserInfoService();
            try {
                Page oaPage = new Page();
                // 默认三条数据
                int pageSize = 3;
                oaPage.setPageSize(pageSize);
                // pageIndex(当前页)
                int myindex = 1;
                
                String pageIndex = request.getParameter("pageIndex");
                if (null!=pageIndex && (!pageIndex.equals(""))) {
                    myindex = Integer.parseInt(pageIndex);
                }
                
                // 给当前页赋值
                
                // 总页数赋值=总记录数/pageSize
                int mytotalPages = 0;
                int ipages = daoInfoService.selectnewsall();
                if (ipages % pageSize == 0) {
                    mytotalPages = ipages / pageSize;
                } else {
                    mytotalPages = ipages / pageSize + 1;
                }
                oaPage.setTotalPages(mytotalPages);
                if(myindex>oaPage.getTotalPages()){
                    myindex=oaPage.getTotalPages();    
                    System.out.println(myindex+"1");
                }
            
                if (myindex<1) {
                    myindex=1;
                    System.out.println(myindex+"2");
                }
                oaPage.setPageIndex(myindex);
                // 泛型数据赋值
                List<NewsInfo> list = daoInfoService.getPageInfos(oaPage.getPageIndex(), pageSize);
                oaPage.setList(list);
    
                // 将泛型集合,放入request作用域
                request.setAttribute("list", oaPage);
                // 转发index.jsp 转发不用加名称
                
                } catch (Exception e) {
                e.printStackTrace();
                }
        }

    显示的页数:

    <p align="right"> 当前页数:[${list.pageIndex}/${list.totalPages}]&nbsp;
              <a href="${pageContext.request.contextPath}/NewsServlet?pageIndex=${list.pageIndex-1}">上一页</a>&nbsp; 
               <a href="${pageContext.request.contextPath}/NewsServlet?pageIndex=${list.pageIndex+1}">下一页</a>&nbsp; 
               <a href="${pageContext.request.contextPath}/NewsServlet?pageIndex=${list.totalPages}">末页</a> </p>

    本期就到这里,等待下期继续——————————————————

  • 相关阅读:
    【转】测试驱动开发
    【转】什么是“脚本语言”
    【转】“解决问题”与“消灭问题”
    【转】程序语言的常见设计错误(1)
    【转】解密“设计模式”
    【转】所谓软件工程
    【转】清华梦的粉碎
    算法知识目录整理
    买书不读是一种什么病?
    Linux 下socket通信终极指南(附TCP、UDP完整代码)
  • 原文地址:https://www.cnblogs.com/shiwz/p/6778478.html
Copyright © 2011-2022 走看看