javaEE MVC理解

MVC包括三个部分 :

①View:负责与用户交互,即在界面上展示数据对象给用户(html,jsp)

②Controller:Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解

释用户的输入并将它们映射为模型层可执行的操作(Servlet)

③Model:实现系统的业务逻辑(javaBean)

DAO:用于连接数据库,将resultset结果封装到DTO并返回

DTO:用于封装数据,包含一些列的get/set方法

VO(View Object) 视图对象

VO(Value Object)值对象,等同于DTO

BO(Business Object) 业务对象

PO(Persistent Object)持久对象

步骤解析:

1.浏览器把请求数据发送给容器。

2.容器根据URL找到正确的servlet,并把请求传递给一个servlet。

3.servlet调用BeerExpert寻求帮助。

4.这个“专家”类返回一个回答,servlet把这个回答增加到请求对象。

5.servlet把请求分派给JSP。

6.JSP从请求对象得到回答。

7.JSP为容器生成一个页面。

8. 容器把这个页面返回给心满意足的用户。

servlet总结:

servlet中最好只有以下几种代码:

·接受参数 ·调用javabean ·进行跳转 ·有一些简单的逻辑判断

----------------- mvc进一步掌握案例 ---------------- ·mvc登陆的进阶案例(3个)

·mvc实现的图书管理程序(SmartUpload)

·mvc实现的购物车

·mvc列表案例

·mvc中如何进行分页

servlet转发请求的两种方式:

forward方式:

String color = request.getParameter("color");//获取请求参数

BeerExpert be = new BeerExpert();//创建dao对象

List results = be.getBands(color);//调用dao访问数据库并返回dto集合

request.setAttribute("styles",results);//为请求对象增加一个属性,供jsp使用.jsp再去找‘styles‘

RequestDispatcher view = request.getRequestDispatcher("result.jsp")//为jsp实例化一个请求分派器

view.forward(request,response);//使用请求分配器要求容器准备好jsp,并向jsp发送请求和响应

redirect方式:

String name=request.getParameter("username");//获取请求参数

String password=request.getParameter("password");//获取请求参数

LoginDBO loginDBO=new LoginDBO();//创建dao对象

String message =loginDBO.login(name, password);//调用dao访问数据库并返回字符串

String url="returnMessage.jsp?message="+message;//构造转发url

url=new String(url.getBytes("GBK"),"ISO8859_1"); //转码,防止乱码

response.sendRedirect(url); //重定向请求

最简单的model层(一般需要和数据库打交道):

public class BeerExpert{

public List getBrands(String color){

List brands = new ArrayList();

if(color.equals("amber")){

brands.add("Jack Amber");

brands.add("Red Moose");

}else{

brands.add("Jail Pale Ale");

brands.add("Gout Stout");

}

}

}

JSP中动态INCLUDE与静态INCLUDE的区别?

动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变

化,适合用于包含动态页面,并且可以带参数。

静态INCLUDE用include伪码实现,它不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm"

%>

Servlet执行时一般实现哪几个方法?

public void init(ServletConfig config)

public ServletConfig getServletConfig()

public String getServletInfo()

public void service(ServletRequest request,ServletResponse response)

public void destroy()

每个servlet只实例化一个对象,所以init()和destroy()整个声明周期只执行一次,但是对于每个请求web容器都会新建一个线程然后运行service()并在其中运行doGet()或doPost()方法.

如何现实servlet的单线程模式  

<%@ page isThreadSafe="false"%>

Request对象的主要方法:

setAttribute(String name,Object):设置名字为name的request的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例

getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

javaEE MVC理解

时间: 2024-10-09 08:40:41

javaEE MVC理解的相关文章

Java框架-Spring MVC理解001

Spring MVC理解 最近在读一本<看透springMVC>的书,从了解到了一些更加精细系统的知识,边读变分享吧. 1.servlet--Spring MVC的本质 2.Spring MVC其实是一个工具,具体的理解可以分为两步:第一步,了解这个工具是怎么创建出来的:第二步,了解这个工具是怎么用的. 3.前期使用准备:环境的搭建 ①创建WEB项目,导入jar包,Maven项目简单的加入springMVC和servlet的依赖就可以了. //Maven项目加入依赖 <dependenc

[转]JAVA三大框架SSH和MVC理解

Java—SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是Model; struts提供的丰富标签是用于显示层View;同时struts也充当了实现Control的功能(不管是Struts1,还是Struts2),接收参数,视图分发. Spring是用于降低层与层间耦合度的,就是所有的类都可以由spring统一创建,用时只需注入即可(IOC) 从功能上来说

javaEE mvc

在mvc架构中,一个应用被分为3个部分,模型(model)试图(view)控制器(controler) 模型代表应用程序的数据以及用于访问控制和修改这些数据的业务规则. 当模型发生变化时,它会通知视图,并为视图提供查询模型相关状态的能力. 同时,它也为控制器提供访问封装在模型内部的应用程序功能的能力. 试图用来组织模型的内容.它从模型那里获得数据并指定这些数据如何表现, 当模型发生变化时,视图负责维护数据表现的一致性. 视图同时将用户的请求通知控制器. 控制器定义了应用程序的行为.它负责对来自试

javaEE mvc例子详解

一个不错的例子值得细细品味: 下面按照包顺序将代码贴出来供大家参考: IEmpDAO package org.lzch.dao; import java.util.List; import org.lzch.vo.Emp; public interface IEmpDAO { public boolean doCreate(Emp emp)throws Exception; public boolean doUpdate(Emp emp)throws Exception; public bool

angularJS MVC理解

AngularJS   MVC 简单理解 什么是MVC? MVC其实就是一种开发模式,有模型(model).视图(view).控制器(controller)3部分构成,采用这种方式为合理组织代码提供了方便,降低了代码间的耦合度,功能结构清晰可见. Model:一般用来处理数据,包括读取和设置数据,一般指的是操作数据库. View: 一般用来展示数据,就是放数据,比如通过HTML来展示. Controller:因为一个模块里面可能有多个视图和模型,控制器就起到了连接模型和视图的作用.   MVC指

简单MVC理解与实现

MVC基本概念 MVC大家不陌生,包含模型(Model).视图(View).控制器(Controller),其中模型用于基本业务逻辑的实现,视图用于响应结果的表示,控制器用于模型控制和请求分派.先放上一张介绍MVC组件和功能的图,可以了解三个组件的关系与职能: 简单MVC实现 Servlet运行在容器(Tomcat)中,容器允许一个组件调用另一个组件.下图是<Head First Servlet&JSP>中推荐啤酒的例子,实现MVC的基本思想,其中Servlet为控制器,调用模型并得到

利用jsp和Servlet实现自己的原生JavaEE MVC框架

MVC是什么我就不多说了,我们平时做JavaWeb项目时,大都会用SSH框架的不同组合,那能不能不用SSH框架来实现一个原生的MVC框架呢? 下面就让我们来实现一个自己的javaWeb MVC框架. 项目结构如下: Controler的实现: package com.shu.controler; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServ

Java框架-Spring MVC理解005-DispatcherServlet

DispatcherServlet 通过源码我们可以看到,onRefresh方法是DispatcherServlet的入口方法.onRefresh中简单地调用了initStrategies,在initStrategies中调用了9个初始化方法. // org.springframework.web.servlet.DispatcherServlet protected void onRefresh(ApplicationContext context) { initStrategies(cont

Angular的MVC理解

1. 定义 Angular的核心是采用MVC模式,即Model-View-Controller,也即MVW,Model-View-Whatever. 如下图所示,借助于ASP.NET的MVC模式来描述这三者关系: Model:负责管理数据,有领域数据和视图数据,维护数据的管理逻辑和存储: View:负责数据展示,如页面展示布局和页面数据,显示样式等: Controller:是数据和视图的转换体:负责接收请求,然后进行数据的业务逻辑处理,和生产页面展示逻辑返回给View: 对应于Angular里面