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应用框架