[HeadFirst-JSPServlet学习笔记][第二章:高层概述]
2016-04-03 10:41
543 查看
第二章:高层体系结构
容器
1 什么是容器?
servelet没有main()方法。它们受控于另一个Java应用,这个Java应用称为容器(Container)Tomcat就是这样一个容器。Web服务器应用(如Apache)得到一个指向servlet的请求,服务器不是把这个请求交给servlet本身,而是交给部署该servelet的容器。由该容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法(如doPost()或doGet())
2 容器能提供什么?
2.1 通信支持
利用容器,能轻松的让servlet与Web服务器对话。你不用自己建立ServerSocket,监听某个端口,创建流等等。容器知道自己与Web服务器(如Apache)和你自己的Web代码之间的API。你要考虑的只是如何在servlet中实现业务逻辑2.2 生命周期管理
容器控制着servlet的生与死。它会负责加载类,实例化和初始化servlet。调用servlet的方法,以及使servlet实例能够被垃圾回收。有了容器的控制,你就不用太多考虑资源管理2.3 多线程支持
容器会自动地为它接收的每个servlet请求创建一个新的Java线程。针对客户的请求,如果servlet已经运行相应的HTTP服务方法,这个线程就会结束。不过还是需要考虑线程安全性。还是会遇到同步问题。2.4 声明方式实现安全
利用容器,可以使用XML部署描述文件来配置(和修改)安全性,而不必将其硬解码写到servlet(或其他)类代码中,想象一下,不用去改你的Java源文件,和重新编译。就能管理和修改安全性配置。2.5 jsp支持
容器把JSP代码翻译成Java。3 容器如何处理请求?
4 servlet代码剖析
5 容器如何知道servlet
使用部署描述文件xml把URL映射到servlet上servelet
servlet-name servlet在部署文件中的名字
servlet-class 类名
servlet-mapping
servlet-name servlet在部署文件中的名字
url-pattern 映射的URL
实际代码:
<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>Chapter1-Servlet</servlet-name> <servlet-class>Ch1Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Chapter1-Servlet</servlet-name> <url-pattern>/Serv1</url-pattern> </servlet-mapping> </web-app>
6 部署文件
1. 作用
主要:URL 映射 servlet
其余:
安全角色
错误页面
标记库
初始化配置信息
2. 优点
尽量少地接触已经测试过的源代码更容易维护动态安全信息,如访问控制列表和安全角色
MVC设计模式
1.何为MVC模式?
维基百科:MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
(控制器 Controller)- 负责转发请求,对请求进行处理。(servlet)
(视图 View) - 界面设计人员进行图形界面设计。(jsp)
(模型 Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
2.为什么要用MVC模式
业务逻辑与表现分离3.servlet&JSP世界中的MVC
控制器
从请求获得用户输入,并明确这些输入对模型有什么影响。告诉模型自行更新,并且让视图(JSP)能得到新的模型状态
视图
负责表示。它从控制器得到模型的状态(控制器把模型数据放在视图能找得到的地方)。另外,视图还可以获得用户输入,交给控制器
模型
实际的业务模型,系统只有这部分与数据库通信
认识
1. tomcat 就是所谓的容器
2. MVC 模式 M model V view C control
相关文章推荐
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
- [HeadFirst-JSPServlet学习笔记][第一章:前言与概述]
- [HeadFirst-JSPServlet学习笔记][第一章:前言与概述]
- js 实现表格的可编辑状态
- Javascript中最常用的55个经典技巧(转)
- 【笔记】 《js权威指南》- 第7章 数组
- 2.js函数
- 深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
- 1.js基础
- js笔记(10)之无缝滚动
- javascript-5.面向对象(回车事件驱动)
- Javascript快速入门
- basket.js 源码分析
- javascript中的作用域和预解析
- js一维数组、多维数组和对象的混合使用方法
- js定位事件函数的一些方法总结
- js一维数组、多维数组和对象的混合使用方法
- 深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
- javascript中的__proto__ && prototype
- JavaScript权威指南1-Unicode转义序列