新手学JAVA(九)----Model1 And Model2
来源:互联网 发布:天龙八部 for mac 编辑:程序博客网 时间:2024/05/29 07:26
- JavaWeb应用结构发展三个阶段
- 第一个阶段-传统版
- 第二个阶段-Model1
- 第三个阶段-Model2
JavaWeb应用结构发展三个阶段
Java Web应用结构的发展和MVC的发展非常类似,Java Web编程的发展则经历了三个阶段,下面就来说说有哪三个阶段。
第一个阶段—-传统版
和MVC的发展一样,一开始所有的业务逻辑处理,数据处理等都放到了JSP中,Jsp是独立的,自主完成所有的任务。
这样的话所有的操作都放到了JSP中,JSP的耦合性太高,这样就带来一系列的问题:
HTML代码和Java程序强耦合在一起
内嵌的流程控制逻辑
调试困难
可维护性差,当页面很大的时候,修改里面的内容的时候需要查找整个页面
可读性差,整个页面显得非常混乱
为了解决上面的的问题,SUN公司先后制定了两种设计模式。
第二个阶段—-Model1
Model1在传统版的基础上做了一定的分离,JSP页面接受处理客户端请求,对请求处理后直接作出响应,用少量的JavaBean来处理数据库连接、数据库访问等操作,基本的流程如下:
Model1模式的实现比较简单,适用于快速开发小规模项目,有优点就有缺点,JSP Model1相当于把View和Controller放到了JSP中,如果开发大型的JAVA WEB项目的话,你想想这一个JSP界面上会有多少显示代码和多少逻辑处理代码,这样不便于开发人员的维护,也不便于美工的修改!看一个Demo:
JSP页面代码:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ page import="com.ljw.user.bean.*" %> <% User user=new User(); user.setUsername(request.getParameter("username")); user.setPassword(request.getParameter("password")); UserBean userBean=new UserBean(); boolean result=userBean.login(user); if(result==true){ response.sendRedirect(request.getContextPath() + "/login_success.jsp"); }else{ out.println("登录失败,请检查登录信息是否正确!"); } %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>登录</title></head><body> <form action="login.jsp" method="post"> 用户名:<input type="text" name="username"><br> 密 码:<input type="text" name="password"><br> <input type="submit" value="登录"> </form></body></html>
UserBean代码:
public class UserBean { public boolean login(User user){ if("admin".equals(user.getUsername())&&"admin".equals(user.getPassword())){ return true; } return false; }}
第三个阶段—-Model2
Model2已经是基于MVC架构的设计模式。在Model2架构中,Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制器逻辑和简单的前端处理;然后,调用后端JavaBean来完成实际的逻辑处理;最后,转发到相应的JSP页面处理显示逻辑。其具体的实现方式如下图所示:
JSP Model2更适合开发大型的JAVA WEB项目,小型的WEB项目,后期的更新和维护工作不是铁别大的话可以用Model1模式进行开发,Model2增加了前期开发的成本,但是Model2有更好的扩展性和可维护性!
举个小Demo:
LoginServlet代码:
public class LoginServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User user=new User(); user.setUsername(req.getParameter("username")); user.setPassword(req.getParameter("password")); UserBean userBean=new UserBean(); boolean result=userBean.login(user); if(result==true){ resp.sendRedirect(req.getContextPath() + "/login_success.jsp"); }else{ resp.sendRedirect(req.getContextPath()+"/login_error.jsp"); } }}
配置文件web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" metadata-complete="true"> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.ljw.user.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping> </web-app>
- 新手学JAVA(九)----Model1 And Model2
- Java Web---Model1&Model2
- Java中Model1和Model2
- 架构学习(一):浅析Java中的Model1和Model2
- 走进Java(四)JSP的Model1和Model2
- Model1/Model2
- 【Model1 / Model2】
- 【菜鸟学Java】15:JSP技术中的Model1和Model2开发模式
- 浅析Java开发中的Model1和Model2
- 【Java架构学习】Model1和Model2讨论
- 浅析Java开发中的Model1和Model2
- java中的model1和model2比较
- Java Web的Model1和Model2简介
- Java开发中的Model1与Model2
- JAVA开发中的Model1和Model2模型
- (2)jsp-model1、model1.x(mv)、model2(mvc)
- Java Web学习(20): Java开发中的Model1与Model2
- Model1与Model2
- craps赌博游戏
- JDBC中URL的几种常见写法...
- 使用Application Loader 3.0 上传ios手机应用安装文件一般步骤
- “VR+教育/商业/旅游”是一种怎样的体验?
- POJ 3164(最小树形图模板题)
- 新手学JAVA(九)----Model1 And Model2
- BeanUtils框架的使用
- java 出现 java.net.BindException: Address already in use: JVM_Bind错误
- Codeforces Round #345 (Div. 2) A. Joysticks __ greedy and simulation
- 【JQuery】cookie插件——cookie
- 循环列表
- 10015---Synchronization Guide
- Maven Overview
- 线程池ThreadPoolExecutor参数设置