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

    增删改查

    下面来看看我们真实的需要做的

    登录后跳转的页面

    添加新闻===文件上传

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

    添加主题===分类

    编辑主题

    web项目里后台的分层

    一:先说登录主要代码从我的数据库里拿数据,servlet调用,然后被前台调用。代码如下:

    @Override
        public boolean isLogin(UserInfo info) throws Exception {
            boolean flag=false;
            String sql="select count(*) from login where username=? and userpwd=?";
            ResultSet rs=executeQuery(sql, info.getUserName(),info.getUserPwd());
            if (rs.next()) {
                int count=rs.getInt(1);
                if(count>0){
                    flag=true;
                }
            }
            return flag;
        }

    我的servlet调用===判断加效验===加我的注销===移除session记录的账户

    request.setCharacterEncoding("utf-8");
            if (request.getParameter("uname")!=null) {
                String uname=request.getParameter("uname");
                String upwd=request.getParameter("upwd");
                
                //拼接成一个用户对象
                UserInfo info=new UserInfo();
                info.setUserName(uname);
                info.setUserPwd(upwd);
                
                IUserInfoService service=new UserInfoService();
                try {
                    boolean flag = service.isLogin(info);
                 if (flag) {  //登录成功
                        //3.记录session
                        request.getSession().setAttribute("uname", uname);
                        request.setAttribute("loginsuccess","true");
                        //4.转发或者重定向   转发不需要加项目名称
                        request.getRequestDispatcher("/NewsServlet").forward(request, response);
                        return;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                
            }
        if ("".equals(request.getParameter("uname")) || "".equals(request.getParameter("upwd"))) {
                request.setAttribute("longinfailure","true");
                request.getRequestDispatcher("/NewsServlet").forward(request, response);
                return;
            }
     
            request.setCharacterEncoding("utf-8");
    
            if(request.getSession().getAttribute("uname")!=null){
                request.setCharacterEncoding("utf-8");
            
                request.getSession().removeAttribute("uname");
                //重定向
                response.sendRedirect("/News/NewsServlet");
                return;
            }
            

    我的页面调用:

    <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="登录" />

    二:下面说说我的分页
    定义了一个util实体包供我分页使用

    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;
        }
    @Override
        public int selectnewsall() throws Exception {
            String sql="SELECT count(1) FROM newinfo";
            int count = 0;
            ResultSet rs = executeQuery(sql);
            if (rs.next()) {
                count = rs.getInt(1);
            }
            
            return count;
        }

    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();
                }
        }

    dopost

    if(request.getParameter("pageIndex")!=null){
                pageNews(request, response);
                request.getRequestDispatcher("/newspages/admin.jsp").forward(request,response);
                return;
            }
    
    pagenews(request, response);
            request.getRequestDispatcher("/index.jsp").forward(request,response);

    页面调用servlet显示给顾客

    <p align="right">
                            当前页数:[<%=page2.getPageIndex()%>/<%=page2.getTotalPages()%>]&nbsp;
                            <a
                                href="<%=path%>/NewsServlet?pageIndex=<%=page2.getPageIndex() - 1%>">上一页</a>
                            <a
                                href="<%=path%>/NewsServlet?pageIndex=<%=page2.getPageIndex() + 1%>">下一页</a>
                            <a
                                href="<%=path%>/NewsServlet?pageIndex=<%=page2.getTotalPages()%>">末页</a>
                        </p>


    登陆后显示的页数

    <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>

    三:页面显示数据库里的数据====查找
    主要查找Dao层的代码:

    @Override
        public List<NewsInfo> findAll() throws Exception {
            List<NewsInfo> list=new ArrayList<NewsInfo>();
    
            String sql="select * from newinfo";
            rs=executeQuery(sql);
            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;
        }

    将数据用循环显示到页面在我的主页面写:

    <ul class="classlist">
                        <%
                            Page page2 = (Page) request.getAttribute("list");
                            for (NewsInfo item : page2.getList()) {
                        %>
                        <li><a href="<%=path%>/news_read.jsp"><%=item.getNtitle()%>
                        </a><span><%=item.getNpublisherdate()%></span></li>
                        <%
                            }
                        %>

    四:删除数据主要数据:

    @Override
        public boolean deleteNews(int id) throws Exception {
            String sql="delete from newinfo where nid=?";
            boolean flag=false;
            int count = exeuteUpdate(sql,id);
            if (count>0) {
                flag=true;
            }
            return flag;
        }

    el表达式:

    <c:if test="${desuccess!=null}">
    <script type="text/javascript">
    alert("删除成功!!!");
    </script>
    </c:if>
    </head>
    <body>
        <div id="main">
           <div>
            <iframe src="<%=path %>/newspages/console_element/top.jsp" scrolling="no" frameborder="0" width="947px" height="180px"></iframe>
          </div> 
          <div id="opt_list">
             <iframe src="<%=path%>/newspages/console_element/left.jsp" scrolling="no" frameborder="0" width="130px"></iframe>
          </div>
          <div id="opt_area"> 
            <ul class="classlist">
         <c:forEach var="item" items="${list.list}">
             <li> ${item.ntitle}<span> 作者:${item.nauthor}                                          
                &#160;&#160;&#160;&#160; <a href='<%=path%>/NewsServlet?upid=${item.nid}'>修改</a> &#160;&#160;&#160;&#160; 
                <a href='${pageContext.request.contextPath}/NewsServlet?deid=${item.nid}'>删除</a> 
                </span> 
                </li>
         </c:forEach>

      <li><a href="${pageContext.request.contextPath}/NewsServlet?xin=xin" target="_parent">添加新闻</a></li>
        <li><a href="${pageContext.request.contextPath}/NewsServlet?kin=kin" target="_parent">编辑新闻</a></li>
     所有的dopost数据:

        if (null!=request.getParameter("upid")) {
                System.out.println("1");
                return;
            }
            if (null!=request.getParameter("deid")) {
                System.out.println("2");
                IUserInfoService service=new UserInfoService();
                String deid=request.getParameter("deid");
                System.out.println(deid);
                Integer id=Integer.parseInt(deid);
                boolean flag=false;
                try {
                    flag=service.deleteNews(id);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                request.setAttribute("desuccess", flag);
                pageNews(request, response);
                request.getRequestDispatcher("/newspages/admin.jsp").forward(request, response);        
                return;
            }
            if("true".equals(request.getAttribute("loginsuccess"))){
                System.out.println("3");
                pageNews(request, response);
                request.getRequestDispatcher("/newspages/admin.jsp").forward(request, response);
                return;
            }
            if (request.getParameter("kin")!=null) {//index
                pageNews(request, response);
                request.getRequestDispatcher("/newspages/admin.jsp").forward(request,response);
                return;
            }
            if(request.getParameter("pageIndex")!=null){
                pageNews(request, response);
                request.getRequestDispatcher("/newspages/admin.jsp").forward(request,response);
                return;
            }
            if (request.getParameter("xin")!=null) {
            
                    try {
                        addnews(request, response);
                        request.getRequestDispatcher("/newspages/news_add.jsp").forward(request, response);
                        IUserInfoService infoService=new UserInfoService();
                        List<NewsInfo> all = infoService.findAll();
                        if (all!=null) {
                            request.getRequestDispatcher("/newspages/admin.jsp").forward(request, response);
                        }else {
                            request.getRequestDispatcher("/newspages/news_add.jsp").forward(request, response);
                        }
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
            return;
            }
            pagenews(request, response);
            request.getRequestDispatcher("/index.jsp").forward(request,response);

    今天小编就到这里了 

    剩余修改下期详解

    希望给大家的知识

  • 相关阅读:
    cocos2d-x C++的do...while(0)另类使用方法
    C++ Virtual详解
    xcode5向APP store上传应用的时候注意点
    IOS7学习之路九(ios7自定义UIAlertView)
    IOS7学习之路八(iOS 禁止屏幕旋转的方法)
    Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy8 cannot be cast to XXX-------动态代理(proxy-target-class属性的意义)
    Maven支持第三方库大全
    EOS page问题
    EOS页面流参数传值问题
    XML中转义字符及使用
  • 原文地址:https://www.cnblogs.com/chengzixin/p/6777704.html
Copyright © 2011-2022 走看看