JavaWeb
使用
Java
开发
Web
服务的技术,统称为
JavaWeb
。
B/S
与
C/S
模式
B/S
:
Browser/Server
浏览器
/
服务器模式
用户只需要一个浏览器即可访问服务器
C/S
:
Clint/Server
客户端
/
服务器模式
用户需要下载客户端才能访问服务器
网站
用户通过浏览器访问某个域名或
IP
地址时,浏览到的综合性页面
实际就是发布在服务器上的一个应用程序,用户通过浏览器访问该程序。
网页
网站中的一个页面
静态页面:所有人看到的数据都一致
动态页面:不同的人看到的页面中的数据不一致
JavaWeb
就是
B/S
模式下的软件开发,开发综合性的服务网站。
网络服务器
部署
Web
项目的平台。
Tomcat
由
Apache
、
Sun
和其他公司及个人共同开发的
web
服务器。
免费、开源、轻量级,在中小型系统中普遍被使用。
是开发和调试
Web
项目的首选。
三层架构
在软件开发中,并不是将所有功能都交给一个类去实现,而是要将其进行分层,从而达到
"
高内聚、低耦
合
"
的目的。
低耦合是指降低各个模块之间的关联程度,这样便于开发和维护,每个模块各司其职。
高内聚是指每个模块内的功能不可再分。
比如要用积木拼出来一辆车,不要把所有积木放在一起拼,这样其中一部分出现问题,就会影响到其他
地方。
最好的做法是先将车的各个组件拼接完成
(
解耦
)
,每个组件都是完整的不可再分的整体
(
高内聚
)
,最终再
把各个组件拼接到一起。
这样便于发现问题解决问题,不影响其他模块。
通常所说的三层架构中的三层,是指
“
数据访问层、业务逻辑层和视图表现层
”
数据访问层,用于连接数据库,对数据做增删改查的操作
业务逻辑层,用于处理业务逻辑,在适当的情况下调用数据访问层中的方法
视图表现层,用于展示数据和提供用户输入数据的渠道,在适当的情况下调用业务逻辑层中的方法
Servlet的生命周期
构造方法
-->
init()
-->
service()/doGet()/doPost()
-->
destory()
在访问某
servlet
时
1.
执行构造方法一次
2.
初始化一次,调用
init()
方法
3.
调用
service()
方法,之后每次访问都会调用该方法。有该方法时,
doGet
和
doPost
失效。
如果没有该方法,会根据请求方式试图调用
doGet
或
doPost
,如果没有相应的方法,会出现
405
状态
码,表示请求方式不允许
4.
在当前
servlet
所在项目从
tomcat
中停止时,销毁一次,调用
destory()
方法
访问服务器的某个URL
在浏览器的地址栏中输入对应的
URL
,属于
GET
提交
使用
a
标签,在
href
中输入对应的
URL
,属于
GET
提交
使用
form
表单,在
action
中输入对应的
URL
,通过
method
修改提交方式为
GET
或
POST
Ajax
A
synchronous
J
avascript
A
nd
X
ML
异步
JavaScript
和
XML
一种数据交互方式,请求和响应是异步的。
使用
ajax
能实现在整个页面不重新加载的情况下,更新局部内容。
JSP内置对象
在
jsp
页面中有一些对象是已经定义好了可以直接使用的,称为内置对象。
一共有
9
个内置对象。
"rrppsoace"
request
请求作用域对象
response
响应对象
pageContext
当前页作用域对象
session
会话作用域对象
page
当前
jsp
页面对象
out
输出对象
application
项目作用域对象
config
配置对象
exception
异常对象
Session和Cookie
这两个都是用于保存数据的对象。
session
是一个作用域对象,在
servlet
中通过
request.getSession()
获取,在
JSP
中直接使用内置对象
session
获取。
cookie
是一个对象,也是一个文件,保存在本地
监听器Listener
对于项目的某个操作进行监听,这个操作可以是创建或销毁
application
、
session
,发送请求、得到响 应。
用于在执行某个操作时,通过监听器同时再执行其他操作,如记录日志、统计站点人数等。
EL
E
xpression
L
anguage
表达式语言
是为了使
JSP
写起来更加简便,替换
JSP
中的
<%=%>
,简化了
JSP
页面中输出数据的操作。
主要输出保存在某个作用域中的数据。
特点
如果通过
"
某个作用域对象
.setAttribute("cus",customer)
"
方法保存的对象,
在
JSP
页面中如果用表达式,使用
<%=cus%>
,如果用
EL
,使用
${cus}
输出。
会依次从
pageContext-->reqeust-->session-->application
中获取指定对象,
如果一旦从某个作用域中获取到了指定对象,就不再判断后续作用域。
也可以输出指定作用域中的对象。
只能输出保存在作用域中的对象
减少代码
(
省去了获取对象、转换的过程
)
免去非空判断
如果某个要输出的对象不存在,不会输出
null
,而是输出空字符串
""
JSTL
J
ava Server Page
S
tandarded
T
ag
L
ibrary JSP
标准标签库
可以使用
JSTL
中的特定标签,来替换
JSP
中常见的
Java
代码。如循环判断等,减少
Java
代码,提高页面的 可读性。
四大作用域对象
作用域:共享数据的区域
request
请求对象。共享数据区域范围为一次请求。
如果跳转中途使用了重定向,数据无法读取。
session
会话对象。会话是用户访问服务器时的某个时间段。
共享数据区域范围在这个时间段内,默认
30
分钟。
如果在指定时间内没有操作或销毁会话时,数据无法读取。
application
项目对象。共享数据区域范围为整个项目。