🌸Author Echo Pan
纯JSP写网页的代码重用性低、页面维护性差,开发不便。而我们可以将程序中的java代码、业务功能代码放到后台中,将逻辑代码(页面流程控制)放到Servlet中,JSP仅用来显示数据。这就是经典的MVC设计模式。
设计模式(Design Pattern)是一套可被反复使用的,经过编目分类的代码设计经验总结。好处是提高代码重可用性、让代码更易理解和维护、保证代码的可靠性。
传统的设计模式分三大类,分别是创建型、结构型和行为型。而最流行的软件设计模式即为MVC设计模式。
MVC概念MVC即Model、View、Controller(模型 - 视图 - 控制器),其中Model是应用的核心。
其中Model一般使用JavaBean实现,view由JSP担任,Control通过Servlet组件实现。
使用MVC设计模式的好处有3个层次各司其职、分工明确,组件可重用性高(分离)。
用Java语言写的可重用组件,本质上是个Java类。
最早Javabean用来做可视化界面,称为可视化的JavaBean;后来在Java Web开发中用于实现业务逻辑和封装业务对象,称为非可视化的JavaBean。我们一般常用的就是非可视化的,它不需要继承任何基类或者接口,默认实现序列化接口java.io.Serializable。只有在使用可视化bean时要继承java.awt.Component类。
一般把满足以下规范的java类称作bean:
getXxx()和setXxx()方法获取或更改成员变量的值,如果是boolean型,可以把getXxx()换成isXxx();public的,属性是private的;一个JavaBean可以包含以下三个部分:
properties)method)event)MVC假分页部分代码<%
NewsTitleBarDaoImpl newsTitleBarDao=new NewsTitleBarDaoImpl();
NewsTitleBar newsTitleBar=new NewsTitleBar();
request.setCharacterEncoding("UTF-8");
List<NewsContent> newsContentList = newsContentDao.newsSelectListByTitleName_Content_Writer(newsContent);
int pageSize=3;//每页元素数
int count=newsContentList.size();//元素数
int pageCount=count%pageSize==0?count/pageSize:count/pageSize+1;//总页数
String pageNoStr=request.getParameter("pageNo");//当前页
if(pageNoStr==null ||"".equals(pageNoStr))pageNoStr="1";//初值
int pageNo=Integer.parseInt(pageNoStr);
List<NewsContent> currentPageList=null;
if(pageNo<=0)pageNo=1;//边界控制,第一页
if(pageNo>=pageCount){
pageNo=pageCount;//最后一页
currentPageList=newsContentList.subList((pageNo-1)*pageSize,newsContentList.size());
}else{
currentPageList=newsContentList.subList((pageNo-1)*pageSize,(pageNo-1)*pageSize+pageSize);
}
%>
<ul id="fakePage">
<li><a href="./NewsContentList.jsp?pageNo=<%=pageNo-1%>">上一页</a></li>
<%
for(int i=1;i<=pageCount;i++){
if(pageNo==i){
%>
<li><a href="./NewsContentList.jsp?pageNo=<%=i %>" style="color:red;"><%=i %></a></li>
<%
}else{
%>
<li><a href="./NewsContentList.jsp?pageNo=<%=i %>"><%=i %></a></li>
<% }
}
%>
<li><a href="./NewsContentList.jsp?pageNo=<%=pageNo+1%>">下一页</a></li>
</ul>