# Web 基本认识
# 什么是 web
Web 就是网页,网页其实是基于 B/S 模式的应用程序
B/S : Browser / Server(浏览器 / 服务器)
C/S : Client / Server(客户机 / 服务器)
# Web 组成
浏览器 :代替用户向服务器发送请求
服务器 :接收用户请求并响应
通信协议 :规范数据传输及打包方式
# 服务器
# 作用
接收用户请求并响应
存储数据
具有安全性功能
# 产品
Tomcat(本书中以此为教学)
Nginx
Nginx
....
# 创建 Web 项目
文件用途:
- src 目录:用来存放 Java 源文件。
- WebRoot 目录:该 Web 应用的顶层目录,也称为文档根目录
- META-INF 目录(重要目录,不可随意修改或者删除):系统自动生成,存放系统描述信息,一般情况下使用较少。
- WEB-INF 目录(重要目录,不可随意删除):该目录存在于文档根目录下,但是不能被引用。
- lib 目录:包含 Web 应用所需的.jar 或者.zip 文件,例如:SQLServer 数据库的驱动程序。
- web.xml:Web 应用的配置文件,非常重要,不可删除。
- classes 文件:包含 src 目录下 Java 源文件所编译生成的.class 文件
- 静态文件:包括所有的 HTML 网页、CSS 文件、图像文件等,按照功能以文件夹形式分类。
- JSP 文件:利用 JSP 可以很方便的在页面中生成动态的内容。
# HTML 基础
# HTML 简介
HTML 指的是超文本标记语言 (Hyper Text Markup Language)
HTML 不是一种编程语言,而是一种标记语言 (markup language)
标记语言是一套标记标签 (markup tag)
HTML 使用标记标签来描述网页
详情请看 html
# JSP 编程
<% @ page language = "java" contentType = "text/html; charset = gh2312" %>
<hmtl>
<body>
< %
out.print("欢迎来到本系统!");
% >
</body>
</hmtl>
里面的 out.print()函数是 java 代码,所以是由 <%%> 包围起来的
- JSP 和 HTML 有什么区别?
- HTML 是静态页面,JSP 页面是由 JSP 容器执行该页面的 java 代码部分,然后实时生成的 HTML 页面
# JSP 表达式
JSP 表达式用于定义 JSP 的一些输出,基本语法如下:
< % = 变量/返回值/表达式 % >
eg:“<% = mag %>” 等价于 < % out.print (“mag”);% >
使用 JSP 表达式需要注意的细节:
在 JSP 表达式中不需要以 ; 结束
在 JSP 表达式中不能出现多条语句
JSP 表达式中的内容一定是字符串类型,或者能通过 toString () 函数转换成字符串的形式。
# JSP 声明
JSP 程序段中变量必须先声明后使用
像:
< %
out.print(str);
String str="愧诗"
% >
这样是会报错的
但是 JSP 可以定义全局声明和局部声明,像上面的就是局部申明
全局声明和局部声明的判断
JSP 中定义 <% ! x=0%> 与 <% y=0%>
JSP 在运行过程是只有第一次会翻译成 servlet,x 只会有第一次的会初始化为 o,** 以后都不会再次执行该语句 <% ! x=0%>,x 会一直存在。** 即 x 表示全局变量。
而 <% y=0%> 语句在每次调用该 JSP 的时候都会执行一遍,每次都会从先定义并初始化为 0,即 y 为局部变量
全局变量在任何地方都可以调用,在实际应用中,类、方法和全局变量都可以放在声明部分
# JSP 指令和动作
# 指令
JSP 指令是告诉 JSP 引擎对 JSP 页面如何编译,不包括控制逻辑,不会产生任何可见的输出
使用方法:
< % @ 指令类型 属性1 = “值” ... 属性n=“属性值n” % >
属性名是大小写敏感的
JSP 指令有:page、include、taglib
# page 指令作用
导入包
< % @ page import ="包名.类名" % >
设定字符集
< % @ page pagEncoding ="编码类型" % >
设定错误页面
< % @ page errorPage ="名字.jsp" % >
这样出现错误就会跳转到对应的 JSP 页面去处理异常,而在处理异常的 JSP 页面中需要下面的方法来说明可以对其他页面进行处理错误
< % @ page isErrorPage ="true" % >
设定 MIME 类型和字符编码
用户可以使用 contenType 属性设置 JSP 的 MIME 类型和可选字符编码
< % @ page contenType ="MIME类型; charset=字符编码" % >
还有其他属性,但是使用较少
# include 指令
使用 include 指令可以在 JSP 程序中插入多个外部文件,这些文件可以是 JSP、Java 程序或者 HTML,甚至文本
< % @ include file = "文件名" % >
file 属性是 include 指令的必要属性,用于指定包含哪个文件
会把变量也包含进来,所以当有变量重名的时候就会有问题
# taglib 指令
定义一个标签库以及其自定义标签的前缀.
<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
# JSP 动作
JSP 动作指使用 XML 语法格式的标记来控制服务器的行为
< JSP:动作名 属性1 = "属性1值" ... 属性n = "属性n值" />
或者
< JSP:动作名 属性1 = "属性1值" ... 属性n = "属性n值">相关内容</JSP:动作名>
JSP 动作如下:
- jsp:include 表示当页面被请求的时候引入一个文件
- JSP:forward 表示将请求转到另一个页面
- JSP:useBean 表示获得一个 JavaBean 的实例
- JSP:setProperty 表示设置 JavaBean 的属性
- JSP:getProperty 表示获得 JavaBean 的属性
- JSP:plugin 表示根据浏览器的类型为 Java 插件生成 OBJECT 或者 EMJECT 两种标记
# include 动作
和 include 指令差不多
< % jsp:include file = "文件名" % >
或者
< %jsp:include file = "文件名">相关信息</%jsp:include>
- include 动作只会把文件中的输出包含进来,因此指令出现的问题不会出现在这
- include 动作会自动检查被包含文件的变化,也就是说当被包含资源内容发生变化时,如果使用的是 include 指令,服务器可能不会检测到
# forward 动作
可以实现跳转
< % jsp:forward page = "文件名" % >
page 属性用于指定要跳转到的目标文件。
当 forward 动作执行后,就不会再执行当前页面的内容,而是会去执行跳转页面的内容