详解MVC开发模式
一、MVC的设计模式的由来
JSP Model1是JavaWeb早期的模型,程序的Java代码和HTML强藕合在一起,导致视图和逻辑无法分离,导致程序的可读性很差,代码调试以及后期维护都带来了很大的问题.
总之我认为Model完全就是jsp处理所有的问题
Model1第一代:
Model1第二代,把业务逻辑放到JavaBean中去了:
Jsp Model2
在Jsp Model2时代,Jsp视为View,Servlet视为Controller,JavaBean为Model,其中Servlet作为Jsp和JavaBean的纽带
适合很多人合作开发大型的项目,各司其职,有利于开发的分工,可以使项目的需求更大,同时对开发人员的要求也随之变高了
二,什么是JavaBean和内省
JavaBean的特点
1.这个类有无参的构造方法
2.属性私有化
3.私有化的属性必须通过public类型的方法暴露给其他的程序,并且方法的命名也符合特定的规范
JavaBean的作用:
通常用来封装数据,对应遵循以上特点的写法的,其他的程序可以通过反射实例化技术实例化JavaBean,从中获取JavaBean的属性,进而获取其数据
内省技术:
内省技术是基于反射技术实现的,通过属性构造器来获取属性的对应的getter和setter方法,然后通过反射机制来调用方法,Apache组织开发了一套基于JavaBean的API,因此在这套开发中,使用BeanUtils的使用,以简化程序代码的实现
案例
编写注册页面,完成注册页面的校验,完成用户的注册和登录功能
项目需求分析:
技术:采用servlet + JavaBean +JSP
封装数据
BeanUtils
JSP显示
JSTL + JSP
解析xml
DOM4J解析xml
//项目流程
首先环境准备
新建web项目,导入相对于jar包
创建数据库,在磁盘上创建一个user.xml文件
包结构:
注册界面的实现,主要涉及form表单的提交以及前台数据的校验
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>注册界面</title>
</head>
<script type="text/javascript">
//完成数据的校验
<%-- 前台数据的校验,完成一些不合适的数据的提交 --%>
function run(){
//用户名不能为空
var username = document.form1.username.value;
if(username == "" || username.length == 0){
alert("用户名不存在");
return false;
}
//密码不能为空,不能少于6位
var password = document.form1.password.value;
if(password == "" || password.length < 6){
alert("密码至少6位");
return false;
}
//确认密码和密码保持一致
var repassword = document.form1.repassword.value;
if(repassword == "" || repassword != password){
alert("两次密码输入的不一致");
return false;
}
//昵称不能为空
var nickname = document.form1.nickname.value;
if(nickname == "" || nickname.length == 0){
alert("昵称不能为空");
return false;
}
//邮箱正确