读 孙卫琴《Tomcat与Javaweb开发技术详解》
Web具有以下特征:
用超文本技术HTML来表达信息,以及建立信息与信息之间的连接。
用统一资源定位技术URL来实现网络上信息的精确定位
用网络应用层协议HTTP来规范浏览器与web服务器之间的通信。
Tomcat, Jetty, resin, Oracle Javaserver, WebLogic Server, Glassfish, Websphere, JBoss 等等。(提供了 Servlet 功能的服务器,叫做 Servlet 容器。对 web 程序来说,Servlet 容器的作用就相当于桌面程序里操作系统的作用,都是提供一些编程基础设施)
indexOf函数:查找字串中指定字符或字串首次出现的位置,返首索引值。如果找到该字符,则为 返回索引位置;如果未找到,则为 -1。
如果请求方式为get,则请求参数紧跟HTTP请求的第一行的URI的后面;如果请求方式为post,则请求参数位于HTTP请求的请求正文中。
MVC(Model-View-Controller,模型-视图-控制器)
web服务可以看做是被客户端远程调用的各种方法
web服务框架SOAP(simple object access protocol,简单对象访问协议),采用XML(可扩展标记语言)进行通信
Tomcat的默认工作方式是作为独立的servlet容器来工作,是一个独立运行的Java程序。
JNI(Java native interface)指的是Java的本地调用接口,通过这一接口Java程序可以和采用其他语言编写的本地程序进行通信。
在Tomcat/webapps中 src存放开发APP时的源文件
GenericServlet类的存在使servlet的使用更加方便。
servletRequest
Defines an object to provide client request information to a servlet. The servlet container creates a ServletRequest object and passes it as an argument to the servlet's service method.
jsp文件:Java server pages Java服务器页面
web.xml文件是Javaweb应用的配置文件,可能包括:
servlet的定义,servlet的初始化参数
静态HTML文件以及servlet和JSP都能向客户端返回HTML页面。
srvlet:程序员使用printwriter写HTML文件
JSP 在传统HTML文件中加入Java程序片段,本质上还是servlet
jsp指令 <%@ %>设置和整个JSP网页相关的属性
1.page指令
2.include指令
jsp声明 <%! %>用于声明jsp对应的servlet类的成员变量和方法
Java程序片段 <% %>
java表达式 <%= %>
注释 <%-- --%>
servlet容器先把jsp
典型的三层软件结构
客户层:提供基于浏览器的客户界面,客户可以浏览web服务器传过来的静态或动态HTML页面,并且可以通过动态HTML页面和web服务器交互
web服务层:servlet,jsp和JavaBean负责访问数据库和事务处理。在web服务器层还包括一些jsp和javabean组件访问的实用类
数据库层:储存和维护web应用的永久业务数据
访问数据库
所有的JDBC驱动器都必须实现Driver接口
数据源(data source)
Java程序直接使用servlet容器提供的DataSource对象即可,这依赖于java的JNDI(java naming and directory interface)技术,简单理解成一种将对象和名字绑定的技术,对象工厂负责生产出对象,这些对象和唯一的名字绑定,外部程序可通过名字来获取某个对象的引用。
java web应用也像普通的java程序,通过jdbc api来访问数据库。使用JNDI访问数据源的效率要高一些。
数据源只是连接到数据库的一条路径。
数据库与数据源的区别 https://my.oschina.net/hokkaido/blog/85366
Dns(domain name system)域名系统
http会话的使用与管理
Web服务器跟踪客户状态的四种方法
1. 在html表单中加入隐藏字段
2. 重写url,使他包含用于跟踪客户状态的数据
3. 用cookie来传达用于客户跟踪的数据
4. 使用会话(session)机制
http是无状态的协议 https://www.zhihu.com/question/23202402
Java bean
过滤器
各个web组件中的相同操作可以放到同一个过滤器中来完成,这样可以减少重复编码。
MVC是一种设计模式,它强制将应用程序的数据展示、数据处理和流程控制分开。
视图(view)是用户看到的并与之交互的界面,接受用户的数据,像用户显示数据,但是它不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。试图还能接受模型发出的数据更新时间,从而对用户界面进行更新。
模型(model)是应用程序的主体部分。模型表示业务数据和业务逻辑,一个模型能为多个视图提供数据。
控制器(controller)负责应用的流程控制,接受用户输入并调度相应的模型和视图去完成用户的需求。
MVC处理过程:控制器接收用户的请求,并决定调用哪个模型来进行处理;然后模型根据客户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。
MVC的优点:多个视图共享一个模型。模型是自包含的,与控制器和视图保持相互独立,所以可以方便地更改业务数据和业务规则。
MVC不适用于小型的应用程序。
JSP model2用jsp技术实现视图的功能,用servlet实现控制器的功能,用Javabean实现模型的功能。
Struts 基于MVC的web应用框架
读 孙卫琴《Tomcat与Javaweb开发技术详解》相关推荐
- iOS 7: iPhone/iPad应用开发技术详解
iOS 7: iPhone/iPad应用开发技术详解 作者:刘一道 出版社:机械工业出版社 出版年:2013-11 页数:507 定价:79.00元 ISBN:9787111440512 样章下载:h ...
- 《Windows驱动开发技术详解》学习笔记
Abstract 如果推荐 Windows 驱动开发的入门书,我强烈推荐<Windows驱动开发技术详解>.但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文 ...
- c语言windows驱动编程入门,Windows驱动开发技术详解 PDF扫描版[175MB]
Windows驱动开发技术详解由浅入深.循序渐进地介绍了windows驱动程序的开发方法与调试技巧.本书共分23章,内容涵盖了windows操作系统的基本原理.nt驱动程序与wdm驱动程序的构造.驱动 ...
- 关于《J2ME手机游戏开发技术详解》的问题!
这里只是对我书中的bug和没有说明白的技术处说明,对于具体的编程问题,我只是点到为止! 对于3D部分的问题,由于我现在工作重点不在这上面,有些问题的回答我感到吃力,也不太想回答,详情请看我的文章. 我 ...
- 9、Windows驱动开发技术详解笔记(5) 基本语法回顾
5.在驱动中获取系统时间 1)获取启动毫秒数 在ring3 我们可以通过一个GetTickCount 函数来获得自系统启动开始的毫秒数,在ring0也有一个与之对应的KeQueryTickCount ...
- 《Unity 3D 游戏开发技术详解与典型案例》——1.3节第一个Unity 3D程序
本节书摘来自异步社区<Unity 3D 游戏开发技术详解与典型案例>一书中的第1章,第1.3节第一个Unity 3D程序,作者 吴亚峰 , 于复兴,更多章节内容可以访问云栖社区" ...
- iOS 7 iPhone iPad应用开发技术详解
2019独角兽企业重金招聘Python工程师标准>>> iOS 7 iPhone iPad应用开发技术详解 本书内容全面,从 Objective-C语法知识.iOS功能特 性,到高级 ...
- 15、Windows驱动开发技术详解笔记(11) 基本概念
9.Windows驱动程序的入口函数规定为_DriverEntry@8,所以用C++编写时要用extern. 驱动程序中,不能使用编译器运行时函数,甚至C语言中的malloc,C++的new函数都不能 ...
- Python开发技术详解PDF
Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ...
最新文章
- 【新星计划】Python OpenCV 形态学应用—图像开运算与闭运算
- 【sprinb-boot】maven 多模块项目:单独 spring-boot:run 某个模块
- Leetcode题库 6.Z字形变换(C实现)
- Linux和Windows下使用printf的差别
- 如何将 image 转成 base64 字符串?
- js find的用法_React常用库Immutable.js常用API
- Origin 移动图像
- 7 centos 时钟跟物理机同步_同步FIFO和异步FIFO
- [2019杭电多校第二场][hdu6599]I Love Palindrome String(回文自动机hash)
- mysql.exe怎么全屏_监控怎么调为全屏
- OTN技术及华为OTN设备简介
- Android 登陆界面
- 二维码乱象调查:扫一扫背后藏陷阱 制码技术几无门槛
- (拯救者Y7000)重装win10后,耳机插入电脑声音还是外放
- 无限循环病毒HTML,红包群无限循环病毒式裂变引流
- 世界上最大的二房东上市了
- 在项目中实现多数据源和读写分离的配置
- 银行大数据应用场景:客户画像如何做?
- 【图解】AC97、HD音效卡前置音频线的接法
- 国王游戏 [NOIP2012 提高组]
热门文章
- MYSQL 从PS说起,但不止于PS , IS 中innodb buffer 分析(5) -- 附加招聘DEVOPS DBA
- C# Windows获取系统路径汇总
- Android基于环信SDK开发IM即时聊天(一)
- JAVA导出EXCEL实现
- 适合学计算机用的机械键盘,什么是机械键盘 机械键盘和普通键盘的区别
- 跟着猴博士复试概率论(第二部分)
- 常用方法——4.JS将yyyy-MM-dd HH-mm-ss格式日期转换成时间戳
- Improved Pre-Warping for Wide Angle, Head Mounted Displays
- 09-Httprunner-生成测试报告
- 努比亚android11,努比亚Play开测Android11 填写基本信息即可