一、JSP入门了解
1.概念:Java Server Pages(java服务器端页面)
JSP是在HTML文件中嵌入Java代码,在页面中可以使用Java代码执行动态内容,使用HTML代码执行静态内容。
Java代码负责功能处理并动态生成结果,HTML对页面及Java生成的结果进行美化及展示。
2.原理:JSP本质上是一个Servlet
3.JSP的执行过程
先将.jsp文件转义为.java文件,再编译成.class文件,交给JVM处理执行。
jsp页面在一次执行时,效率低。
4.JSP脚本:JSP定义java代码的方式
①<% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
②<%! 代码%>:定义的java代码,在jsp转换后的java类的成员位置。
③<%= 代码%>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
二、JSP内置对象
内置对象指服务器自动创建对象,我们在开发时直接使用,不用再使用new关键字创建对象。JSP内置对象在JSP页面中可以直接使用,不需要声明或创建对象。
-
JSP内置对象分类
(1) request(请求对象)
(2) response(响应对象)
(3) session(会话对象)
(4) application(应用服务器对象)
(5) page(页面对象)
(6) pageContext(页面上下文对象)
(7) out(输出流对象)
(8) config(配置对象)
(9)exception(异常对象) -
JSP内置对象详解
request(请求对象)
①request对象的作用域
request对象的作用域为一次请求(客户端向服务器端发送的一次请求)。
默认情况下request对象仅仅在一次请求中有效,但是我们可以通过请求转发的方式来延长请求。 request对象内部是使用map集合实现的。
request对象属于HttpServletRequest接口的一个实例
②request对象中的常用方法:
- request.setCharacterEncoding(“UTF-8”);设置请求对象的编码集
- getParameter(“”);获取客户端提交的单个数据
- String[] hobbys = request.getParameterValues(“hobbys”);获得同名的多个数据
- request.setAttribute(“attr”, “val1”);向request对象中设置一个属性,参数1属性名,参数2属性值(Object)
- request.getAttribute(“attr”);根据属性名获取属性值
- request.getRequestDispatcher(“registerSucc.jsp”).forward(request, response);
请求转发,可以将请求对象转发到其他页面或Servlet中
response(响应对象)
①作用域:
response对象的作用域为服务端向客户端的一次响应;
response对象属于HttpServletResponse接口的一个实例
②response对象的常用方法:
- response.setContentType(“text/html;charset=utf-8”); 设置响应类型及编码集
- response.getWriter(); 获得一个输出流,用于向页面输入内容
- resonse. sendRedirect (“目标地址”); 重定向
③请求转发和重定向的区别
- 相同点:都可以实现页面的跳转
- 不同点:
(1)使用重定向实现页面跳转后,地址栏显示的是目标地址;
使用请求转发实现页面跳转后,地址栏显示的是请求转发的源地址而不会目标地址。
(2)重定向无法将request对象中的数据传递给目标地址,它只能传递字符串数据;
请求转发不单可以传递字符串数据,还可以将request对象传递给目标页面。
(3)请求转发是一次请求;重定向是两次请求。
session(会话对象)
session(会话)是多次请求与响应的集合(类似打电话);有其中一方关闭连接,session就会消失。session使用sessionId来维持客户端与服务端的状态
application(应用服务器对象)
application对象是一个作用域对象,表示当前应用服务器,它的作用域是整个应用程序;
application对象中存储的数据称为整个服务器的共享数据;
- 在application对象中存放的数据:
- 不能太大,该对象中的数据不会被释放,除非服务器重启,才会自动释放其中的数据
- 用户隐私数据也不能存放在applicaiton中
- Application对象属于ServletContext接口的一个实例
常用方法:
(1) setAttribute(“name”,obj);//向application对象中添加一个属性
(2) getAttribute(“name”);//从application获取一个属性,根据属性名获取
page(页面对象)
- page对象就是this,它表示当前页面对象
pageContext(页面上下文对象)
pageContext是一个作用域对象,可以通过pageContext对象在当前页面存储数据,它的作用域仅限于当前页面
可以通过pageContext对象获取其他内置对象;
out(输出对象)
Out是一个输出流对象,用于向页面输出内容
config(配置对象)
通过config对象获得相关的配置信息
exception(异常对象)
在JSP页面上处理异常
三、内置对象中的作用域对象
request/session/application/pageContext
根据作用域范围排序:
pageContext—>request---->session---->application