增刪改查
下面來看看我們真實的需要做的
登錄后跳轉的頁面
添加新聞===文件上傳
編輯新聞----修改 刪除
添加主題===分類
編輯主題
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> 密  碼 </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()%>] <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}] <a href="${pageContext.request.contextPath}/NewsServlet?pageIndex=${list.pageIndex-1}">上一頁</a> <a href="${pageContext.request.contextPath}/NewsServlet?pageIndex=${list.pageIndex+1}">下一頁</a> <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}      <a href='<%=path%>/NewsServlet?upid=${item.nid}'>修改</a>      <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);
今天小編就到這里了
剩余修改下期詳解
希望給大家的知識