# 前后端技术架构:
包括但不限于常用技术栈 web 端 服务端 移动端 架构等等
BS:Browser/Server
CS: Client/Server// 如果软件升级,那么全部的客户端都要升级 每一台客户端都需要安装软件
# 常见的 HTTP 状态码:
404:资源不存在
403:权限不足
200:一切正常
300:页面重定向
500:内部错误(代码写错了)
# 虚拟主机
<Engine name="Catalina" defaultHost="www.test.com"> | |
<Host name="www.test.com" appBase="E:\JspProject"> | |
<Context docBean="E:\JspProject" parh="/"/> | |
</Host> | |
</Engine> |
修改本机的 Host
# 配置 Tomcat
- a. 将 tomcat/lib 中的 servlet-api.jac 加入项目的构建路径
- b. 右键项目 ->Build Path ->Add Library ->Server Runtime
# 统一编码字符集
# 编码分类:
设置 Jsp 文件的编码(jsp 文件中的 PageEncoding 属性):jsp->java
设置浏览器读取 jsp 文件的编码(jsp 文件中的 Content 属性)
一般将上述设置成一致的编码,推荐使用 UTF-8
# 文本编码:
将整个环境下的编码统一设置
设置某一个项目的编码格式
设置单独的文件编码
jsp 元素:脚本 Scriplet 注释 指令
# 脚本 Scriplet
- i: <% 局部变量 java 语句 %>
- ii:<!% 全局变量,定义方法 %>
- iii: <%= 输出表达式 %>
一般而言修改 web.xml 配置文件需要重启 tomcat
但是如果修改 Jsp/
注意 out.println ()不能回车;
要想回车:</br> |
# 指令
page 指令
<%@page…@>
page 指定的属性
language:jsp 页面使用的脚本语言
import: 导入类
pageEncoding:jsp 文件自身编码 jsp->java
contentType: 浏览器解析 Jsp 的编码
# 注释
html 注释
java 注释 // /*
jsp 注释 <%-- --%>
# Jsp 内置对象
out 输出对象,向客户端输出内容
request 请求对象,存储 “客户端向服务端发送的信息”
response 响应对象
session 会话对象
application 全局对象
config 配置对象
page 当前 JSP 页面对象(相当于 java 只中的 this)
pageContext jsp 页面容器
exception 异常对象
# request 对象的常见方法:
String getParameter (String name): 根据请求的字段名 Key, 返回字段值 value
String [] getParameterValues (String name): 根据请求的字段名 KEY,返回多个字段值 value(checkbox)
void setCharacterEncoding (“编码格式 UTF-8”): 设置(post)请求编码(tomcat7 以前默认的是 iso-8859-1,tomvat8 以后的是 UTF-8)
getRequestDispatcher (“b.jsp”).forward (request,response);: 请求转发的方式跳转页面 A->B
ServletContext getServerContext ():获取项目的 ServletContext 对象
# 服务端准备 Cookie:
response.addCookie(Cookie cookie)
页面跳转 有两种方式(页面转发,重定向)
客户端获取 cookie:request.getCookies ();
- a. 服务端增加 Cookie :response 对象 客户端获取对象:request 对象
- b. 不能直接获取某一个单独对象,只能一次将全部的 Cookie 拿到 然后遍历 全部的 Cookie 根据名字可以 可以拿到相应的 value
# Session
session (会话–是服务端产生的用于和客户端之间建立一一对应的关系,)
session 机制:
客户端在第一次访问服务端的时候,服务端会产生一个 Session 对象(这其中包含 SessionId), 然后服务端还会产生
一个 Cookie, 当服务端响应客户端的时候就把这个 cookie 发送给客户端(包含 Jsession=sessionid)
每个 session 都会有唯一的 SessionId,
# Sessionid
sessionId (存在与服务端,想当于客户端 cookie 里面的 Jsessionid, 通过 sessionid 可以区分不同的浏览器)
cookie (存在于客户端,由有服务端产生,里面可以包含你的用户名和密码,Jsessionid==Sessionid)
建议 cookie 只保存英文和数字 否则需要编码和解码
服务端第一次发现你没有 jsessionid 会 new 一个 name=jsessionid 的对象 返回给客户端
# Session 注销
<a href=""invalidate.jsp value=“注销”>
session.invalidate (); 将整个 session 全部删除 session 失效
session.removeAttribute (“name”); // 只是删除某个属性值
# cookie 和 session 的区别:
标题 cookie session
保存的位置 客户端 服务端
安全性 不安全 安全
保存的内容 String Object
# application 全局对象
四种范围对象(小 -> 大)
pageContext JSP 容器对象(page 对象)
request 请求对象
response 响应对象
application 全局对象
以上 4 个对象共有的方法:
Object getAttribute (String name): 根据属性名,或者属性值
void setAttribute (String name, Object obj): 设置属性值,(新增,修改)
setAttribute (“a”,“b”)// 若之前 a 对象不存在则 new 一个 a
若已经存在了则把 a 的值改为 b
void removeAttribute (String name): 根据属性名,删除对象
a.
pageContext 当前页面有效 (页面跳转之后无效)
b.
request 同一次请求;其他请求无效(请求转发 有效,重定向无效)
c.
session 整个会话期间(切换浏览器 / 关闭无效)
d.
application 整个项目运行期间都有效(关闭服务器,其他项目)无效
-> 多个项目共享,重启后仍然有效:JNDI
1. 以上的 4 个范围对象,通过 setAttribute 属性赋值,通过 getAttribute()取值
2. 尽量使用最小的范围,因为对象的范围越大,造成的性能损耗越大