最初读这本书是因为做比赛要用到服务器端,但是网络上的知识太多了,感觉自己丝毫没有头绪,于是在知乎上找到了一本推荐的书,如上。
现在对于网络编程的那些细节还没有去了解,甚至说是环境还没有按照书上配好,但是按照书上的章节,以一定的节奏算是把这本书看完了。至少目前对于网络编程有一个了解,知道了jsp文件是干嘛的,xml文件中那些奇奇怪怪的符号是干嘛的,啥是servlet,啥是Tomcat,啥是MVC,不再是打开下载下来的一个项目然后一脸懵。
以下,是自己零零散散记得笔记。
****************************************************************************************************************************

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开发技术详解》相关推荐

  1. iOS 7: iPhone/iPad应用开发技术详解

    iOS 7: iPhone/iPad应用开发技术详解 作者:刘一道 出版社:机械工业出版社 出版年:2013-11 页数:507 定价:79.00元 ISBN:9787111440512 样章下载:h ...

  2. 《Windows驱动开发技术详解》学习笔记

    Abstract   如果推荐 Windows 驱动开发的入门书,我强烈推荐<Windows驱动开发技术详解>.但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文 ...

  3. c语言windows驱动编程入门,Windows驱动开发技术详解 PDF扫描版[175MB]

    Windows驱动开发技术详解由浅入深.循序渐进地介绍了windows驱动程序的开发方法与调试技巧.本书共分23章,内容涵盖了windows操作系统的基本原理.nt驱动程序与wdm驱动程序的构造.驱动 ...

  4. 关于《J2ME手机游戏开发技术详解》的问题!

    这里只是对我书中的bug和没有说明白的技术处说明,对于具体的编程问题,我只是点到为止! 对于3D部分的问题,由于我现在工作重点不在这上面,有些问题的回答我感到吃力,也不太想回答,详情请看我的文章. 我 ...

  5. 9、Windows驱动开发技术详解笔记(5) 基本语法回顾

    5.在驱动中获取系统时间 1)获取启动毫秒数 在ring3 我们可以通过一个GetTickCount 函数来获得自系统启动开始的毫秒数,在ring0也有一个与之对应的KeQueryTickCount ...

  6. 《Unity 3D 游戏开发技术详解与典型案例》——1.3节第一个Unity 3D程序

    本节书摘来自异步社区<Unity 3D 游戏开发技术详解与典型案例>一书中的第1章,第1.3节第一个Unity 3D程序,作者 吴亚峰 , 于复兴,更多章节内容可以访问云栖社区" ...

  7. iOS 7 iPhone iPad应用开发技术详解

    2019独角兽企业重金招聘Python工程师标准>>> iOS 7 iPhone iPad应用开发技术详解 本书内容全面,从 Objective-C语法知识.iOS功能特 性,到高级 ...

  8. 15、Windows驱动开发技术详解笔记(11) 基本概念

    9.Windows驱动程序的入口函数规定为_DriverEntry@8,所以用C++编写时要用extern. 驱动程序中,不能使用编译器运行时函数,甚至C语言中的malloc,C++的new函数都不能 ...

  9. Python开发技术详解PDF

    Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ...

最新文章

  1. 【新星计划】Python OpenCV 形态学应用—图像开运算与闭运算
  2. 【sprinb-boot】maven 多模块项目:单独 spring-boot:run 某个模块
  3. Leetcode题库 6.Z字形变换(C实现)
  4. Linux和Windows下使用printf的差别
  5. 如何将 image 转成 base64 字符串?
  6. js find的用法_React常用库Immutable.js常用API
  7. Origin 移动图像
  8. 7 centos 时钟跟物理机同步_同步FIFO和异步FIFO
  9. [2019杭电多校第二场][hdu6599]I Love Palindrome String(回文自动机hash)
  10. mysql.exe怎么全屏_监控怎么调为全屏
  11. OTN技术及华为OTN设备简介
  12. Android 登陆界面
  13. 二维码乱象调查:扫一扫背后藏陷阱 制码技术几无门槛
  14. (拯救者Y7000)重装win10后,耳机插入电脑声音还是外放
  15. 无限循环病毒HTML,红包群无限循环病毒式裂变引流
  16. 世界上最大的二房东上市了
  17. 在项目中实现多数据源和读写分离的配置
  18. 银行大数据应用场景:客户画像如何做?
  19. 【图解】AC97、HD音效卡前置音频线的接法
  20. 国王游戏 [NOIP2012 提高组]

热门文章

  1. MYSQL 从PS说起,但不止于PS , IS 中innodb buffer 分析(5) -- 附加招聘DEVOPS DBA
  2. C# Windows获取系统路径汇总
  3. Android基于环信SDK开发IM即时聊天(一)
  4. JAVA导出EXCEL实现
  5. 适合学计算机用的机械键盘,什么是机械键盘 机械键盘和普通键盘的区别
  6. 跟着猴博士复试概率论(第二部分)
  7. 常用方法——4.JS将yyyy-MM-dd HH-mm-ss格式日期转换成时间戳
  8. Improved Pre-Warping for Wide Angle, Head Mounted Displays
  9. 09-Httprunner-生成测试报告
  10. 努比亚android11,努比亚Play开测Android11 填写基本信息即可