1. 2个注释
<%-- --%> JSP注释
<!----> html的注释
2. 3个脚本
<% %> 代码段 专门用来写Java代码 能拼接使用
<%= %> 表达式 专门用来输出Java变量 对象内容到浏览器页面中 可运行写在任何位置
<%! %> 声明标签 专门用来编写封装好的或常用的变量和方法
3. 3个指令标签
<%@ page %> 与当前页面有关的一些属性设置 编码 导包 等操作
<%@ include %> 又称静态包含(将其他页面的内容复制到当前页面中)
<%@ tablib %> 用来引入标签库 JSTL
4. 9个内置对象
request 与请求相关
response 与响应相关
page 与当前页面对象相关
pageContext 与当前页面的上下文(当前页面的环境)相关
session 与会话相关
application 与当前项目环境相关
config 与当前配置文件相关
out 将服务器中的数据输出到浏览器客户端中
Exception 与异常相关
5. 4个作用域
pageContext 设置的数据共享只能在当前页面中有效 -->指定页面中使用
request 设置在同一个请求中能够访问到的数据(转发) -->只使用一次
session 在当前项目中指定时间内都可以访问到(20分钟内) --->只使用一会
application 设置在当前项目中一直都能被访问到的共享数据 --->一直都要使用
6.转发和重定向的区别
转发:
是由服务器执行的。
做出响应的一端我们可以称为服务器端(Web服务器--Tomcat)
转发是执行了一次请求。
1.转发地址栏地址不发生变化
2.转发客户端值只执行了一次请求
3.转发的过程是由服务器(Tomcat服务器)执行
重定向:
是由客户端(浏览器客户端)执行的。
发出请求的一端我们可以称为客户端。(请求是在浏览器中发出)
重定向是执行了两次请求。
什么叫完成一次请求(请求的生命周期):
请求
客户端---------->服务器 (请求)
响应
服务器---------->客户端 (响应)
1.重定向地址栏地址发生变化
2.重定向客户端值执行了至少2次请求
3.重定向的过程是由客户端执行
7.JSP的执行原理
8.关于乱码问题
方法1:
request.setCharacterEncoding("utf-8"); //只针对post请求有效
response.setCharacterEncoding("utf-8");
response.setContextType("text/html;charset=utf-8");
方法2:(解决get方式乱码)
String构造器对乱码中文重新进行编码
String name="乱码的中文";
String newName=new String(name.getBytes("ISO-8859-1"),"UTF-8")
方法3:通过修改Tomcat服务器(不推荐使用)
URIEncoding="utf-8"