增删改查
下面来看看我们真实的需要做的
登录后跳转的页面
添加新闻===文件上传
编辑新闻----修改 删除
添加主题===分类
编辑主题
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);
今天小编就到这里了
剩余修改下期详解
希望给大家的知识