1、初识JSP
前言
理解C/S和B/S架构的概念
使用page指令设置页面属性
掌握JSP声明和使用变量
使用JSP表达式和out实现页面输出
理解JSP执行原理
一、C/S和B/S架构对比
C/S架构优点
1 C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)
2 安全性能可以很容易保证。(因为只有两层的传输,而不是中间有很多层。
3 由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢
C/S架构缺点
可以将QQ作为类比:
1 适用面窄,通常用于局域网中。
2 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3 维护成本高,发生一次升级,则所有客户端的程序都需要改变。
B/S架构优点
1、客户端无需安装,有Web浏览器即可。
2、BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3、BS架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载。
B/S架构缺点
1、在跨浏览器上,BS架构不尽如人意。
2、表现要达到CS程序的程度需要花费不少精力。
3、在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
4、客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)
二、深入理解B/S架构
B/S架构有三层,分别为:
第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
第三层数据层:主要是接受客户端请求后独立进行各种运算。
三、B/S架构的几种形式
第一种:客户端-服务器-数据库
第二种:客户端-web服务器-应用服务器-数据库
第三种:客户端-负载均衡器(Nginx)-中间服务器(Node)-应用服务器-数据库
说明:
1、整正暴露在外的不是真正web服务器的地址,而是负载均衡器器的地址
2、客户向负载均衡器发起Http请求
3、负载均衡器能够将客户端的Http请求均匀的转发给Node服务器集群
4、Node服务器接收到Http请求之后,能够对其进行解析,并且能够调用应用服务器暴露在外的RESTFUL接口
5、应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给Node
6、Node层将模版+数据组合渲染成html返回反向代理服务器
7、反向代理服务器将对应html返回给客户端
四、B/S架构工作原理
B/S架构采用请求/响应模式进行交互
五、URL
计算机通过统一资源定位符实现资源访问
URL:Uniform Resource Locator的缩写
唯一能识别Internet上具体的计算机、目录或文件夹位置的命名约定
六、Web服务器
定义
是可以向发出请求的浏览器提供文档的程序
提供网上的信息浏览服务
常用的Web服务器
Microsoft:IIS
Apache:Tomcat
Oracle:WebLogic
IBM:WebSphere
Nginx
…
七、Tomcat服务器
Apache Jakarta的开源项目
轻量级应用服务器
优点:开源、稳定、资源占用小
Tomcat下载
http://tomcat.apache.org/download-70.cgi
Tomcat解压或安装
Tomcat目录结构
目录 说明
/bin 存放各种平台下用于启动和停止Tomcat的脚本文件
/conf 存放Tomcat服务器的各种配置文件
/lib 存放Tomcat服务器所需的各种JAR文件
/logs 存放Tomcat的日志文件
/temp Tomcat运行时用于存放临时文件
/webapps 当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中
/work Tomcat把由JSP生成的Servlet放于此目录下
目录 | 说明 |
---|---|
/bin | 存放各种平台下用于启动和停止Tomcat的脚本文件 |
/conf | 存放Tomcat服务器的各种配置文件 |
/lib | 存放Tomcat服务器所需的各种JAR文件 |
/logs | 存放Tomcat的日志文件 |
/temp | T omcat运行时用于存放临时文件 |
/webapps | 当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中 |
/work | Tomcat把由JSP生成的Servlet放于此目录下 |
Tomcat配置和启动
配置Tomcat
默认端口号:8080 通过配置文件server.xml修改Tomcat端口号
启动Tomcat bin\startup.bat
访问Tomcat主页:http://localhost:端口号
停止Tomcat
bin\shutdown.bat
部署应用程序到Tomcat的webapps目录
生成War包
直接拷贝Web根目录下所有文件
八、JSP概述
定义
JSP(Java Server Pages)
运行在服务器端的Java页面
使用HTML嵌套Java代码实现
工作原理
JSP执行过程
jsp是如何执行的【面试题】
step1:容器依据.jsp文件生成.java文件(也就是先转换成一个Servlet):
1)HTML(CSS、JS)放到service方法里,使用out.write输出
2)<% %>也放到service方法里,照搬,不改动。
3)<%= %>也会放到service方法里,使用out.print输出。
4)<%! %>给Servlet添加新的属性或者新的方法(转成.java文件后,声明内的部分添加在service方法之外)。这样就把一个JSP变成了一个Servlet容器。
step2:容器接下来就会调用Servlet来处理请求了(会将之前生成的.java文件进行编译、然后实例化、初始化、调用相应的方法处理请求)
step3:隐含对象
1)所谓隐含对象(共9个),指的是在.jsp文件里面直接可以使用的对象,比如out、request、response、session、application(ServletContext上下文)、exception、pageContext、config、page。
2)之所以能直接使用这些对象,是因为容器会自动添加创建这些对象的代码。(JSP仅仅是个草稿,最终会变为一个Servlet。)
JSP之全局变量和局部变量
使用<%%>声明局部变量、使用<%!%>声明全局变量
使用JSP实现输出
<%@page%>用来设置一个JSP页面的属性
<%out.print();%>或<%out.println(); %>实现页面输出
JSP可以添加的注释
HTML注释:<!- - HTML注释 - ->
JSP注释:<%- -JSP注释- -%>
JSP脚本中注释:<%//单行注释%><%/多行注释/%>
Eclipse快捷键:Ctrl+Shift+c添加注释;Ctrl+Shift+m 导包
page指令
通过属性定义了JSP的特性,实现与JSP容器的通信
语法
<%@ page language=“属性值” import=“属性值” contentType=“属性值”%>
属性 | 说明 |
---|---|
language | 指定JSP页面使用的脚本语言 |
import | 通过该属性来引用脚本语言中使用到的类文件 |
contentType | 用来指定页面的MIME类型,以及字符编码方式 |
out对象小结
out对象是JSP的内置对象
- 无需实例化即可使用
- 实现数据的输出显示
out对象的方法
属性 | 说明 |
---|---|
向页面输出显示 | |
println | 向页面输出显示,在结尾处添加换行 |
Web程序常见错误:
-
404错误—找不到访问的页面或资源
运行时,URL输入错误
将页面放在WEB-INF下
外部启动Tomcat,未部署项目 -
500错误----JSP页面代码有误
JSP页面代码有错误
页面无法显示
未启动Tomcat