javaEE MVC理解
来源:互联网 发布:卖家加入淘宝客 编辑:程序博客网 时间:2024/05/29 13:17
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理解
- javaEE mvc
- 对JavaEE中mvc模式以及三层架构的理解
- 理解javaEE
- JavaEE MVC 实例教程
- javaEE mvc例子详解
- JavaEE与MVC结合
- JavaEE----JavaEE经典三层结构和MVC
- 初识JavaEE设计模式-MVC
- JavaEE概述及MVC模型
- 从javaee重新理解sqlite
- javaee之Servlet的理解
- javaee中过滤器的理解
- 理解MVC
- 理解MVC
- 理解MVC
- MVC理解
- MVC理解
- cocos2d-x游戏开发 跑酷(七) 添加金币和岩石
- 版本迭代
- Solr配置文件分析与验证
- ObjectArx学习笔记-画线并修改颜色改进写法
- 禁用 copy & assign
- javaEE MVC理解
- 如何为分类问题选择合适的机器学习算法
- 深入理解JDBC的超时设置
- 看项目做笔记
- cocos2d-x游戏开发 跑酷(八) 对象管理 碰撞检测
- VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
- Linux socket编程
- boost xpressive库和string_algo库
- css之div布局