jsp开发模型
单纯的JSP编程
-
在 JSP 编程模式下,通过应用 JSP 中的脚本标志,可以直接在 JSP 页面中实现各种功能。
-
虽然这种模式很容易实现,但是,其缺点也非常明显。因为将大部分的 Java 代码与 HTML 代码混淆在一起,会给程序的维护和调试带来很多困难,而且难以理清完整的程序结构。
-
所以说,单纯的 JSP 页面编程模式是无法应用到大型、中型甚至小型的 JSP Web 应用程序开发中的。
JSP+JavaBean 编程(jspModel1)
Jsp页面与JavaBeans共同协作完成任务
JSP+JavaBean 编程模式是 JSP 程序开发经典设计模式之一,适合小型或中型网站的开发。利用 JavaBean 技术,可以很容易地完成一些业务逻辑上的操作,例如数据库的连接、用户登录与注销等。
JavaBean 是一个遵循了一定规则的 Java 类,在程序的开发中,将要进行的业务逻辑封装到这个类中,在 JSP 页面中,通过动作标签来调用这个类,从而执行这个业务逻辑。此时的 JSP 除了负责部分流程的控制外,主要用来进行页面的显示,而 JavaBean 则负责业务逻辑的处理。
可以看出,JSP+JavaBean 设计模式具有一个比较清晰的程序结构,在 JSP 技术的起步阶段,该模式曾被广泛应用。
输入页面login1.jsp
<form action="login_do.jsp" method="post">
<input name="username" value="<%=request.getParameter("username")!=null?request.getParameter("username"):""%>"/>
<input type="submit" value="登录系统"/>
</form>
接收数据的页面login_do.jsp,其中负责接收数据并进行数据校验,然后调用javaBean完成业务逻辑处理,最后根据处理结果跳转对应的页面
<%@ page import="com.yan.dao.IUserDao" %>
<%@ page import="com.yan.util.DaoFactory" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="user" class="com.yan.entity.UserBean">
<jsp:setProperty name="user" property="*"/>
</jsp:useBean>
<%!
private IUserDao userDao= DaoFactory.getUserDao();
%>
<%
boolean bb=userDao.login(user);
System.out.println(user.getUsername());
if(bb){
session.setAttribute("user",user);
response.sendRedirect("login_succ.jsp");
}else{
request.setAttribute("msg","登录失败!请重新登录");
request.getRequestDispatcher("login1.jsp").forward(request,response);
}
%>
javaBean负责处理实际的业务逻辑,采用的是DAO模式:1个接口,若干实现,1个值bean,1个工厂
public class UserDaoImpl implements IUserDao{
@Override
public boolean login(UserBean user) throws Exception {
return true;
}
}
最后再定义对应的显示页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
欢迎您,
<%
Object obj=session.getAttribute("user");
if(obj!=null && obj instanceof UserBean){
UserBean ub=(UserBean)obj;
out.println(ub.getUsername());
}
%>
</body>
</html>
JSP+JavaBean+Servlet 编程
Jsp Model2中使用了三种技术JSP、Servlet和JavaBeans
JSP+JavaBean 设计模式虽然已经对网站的业务逻辑和显示页面进行了分离,但这种模式下的 JSP 不但要控制程序中的大部分流程,而且还要负责页面的显示,所以仍然不是一种理想的设计模式。
程序中的层次关系更明显,各组件的分工也非常明确。
- 用户通过客户端浏览器请求服务器。 服务器接收用户请求后调用 Servlet。
- Servlet 根据用户请求调用 JavaBean 处理业务。
- 在 JavaBean 中连接及操作数据库,或实现其他业务逻辑。
- JavaBean 将结果返回 Servlet,在 Servlet 中将结果保存到请求对象中。
- 由 Servlet 转发请求到 JSP 页面。
- 服务器读取 JSP 页面中的内容(将页面中的静态内容与动态内容结合)。
- 服务器将最终的结果返回给客户端浏览器进行显示。
但 JSP+JavaBean+Servlet 模式同样也存在缺点。该模式遵循了 MVC 设计模式,MVC 只是一个抽象的设计概念,它将待开发的应用程序分解为三个独立的部分:模型(Model)、视图(View)和控制器(Controller)。
使用 JSP+JavaBean+Servlet 模式进行项目开发时,可以选择一个实现了 MVC 模式的现成的框架,在此框架的基础上进行开发,能够大大节省开发时间
MVC 模式
- MVC(Model-View-Controller,模型-视图-控制器)是一种程序设计概念,它同时适用于简单的和复杂的程序。使用该模式,可将待开发的应用程序分解为三个独立的部分:模型、视图和控制器。
Model(模型)
:MVC 模式中的 Model(模型)指的是业务逻辑的代码,是应用程序中真正用来完成任务的部分。
View(视图)
:视图实际上就是程序与用户进行交互的界面,用户可以看到它的存在。视图可以具备一定的功能,并应遵守对其所做的约束。在视图中,不应包含对数据处理的代码,即业务逻辑代码。
Controller(控制器)
:控制器主要用于控制用户请求并做出响应。它根据用户的请求,选择模型或修改模型,并决定返回什么样的视图。