背景:

在springboot横行的javaweb开发中,现在的后端开发工程师基本不需要写前端JSP页面。但是作为web开发工程师,不懂JSP的原理和作用,几乎是不行的。

JSP技术介绍:

JSP(全称Java Server Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。 JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
 

JSP的9大内置对象:

Java和jsp的关系 jsp跟java有什么关系_java

  • page:JSP 页面本身(相当于 Java 程序中的 this)
  • request:封装客户端的请求,其中包含来自 GET 或 POST 请求的参数;
  • response:封装服务器对客户端的响应;
  • session:封装用户会话的对象;
  • application:封装服务器运行环境的对象;
  • pageContext:通过该对象可以获取其他对象;
  • out:输出服务器响应的输出流对象;
  • config:Web 应用的配置对象;
  • exception:封装页面抛出异常的对象。

四大作用域:

Java和jsp的关系 jsp跟java有什么关系_Java和jsp的关系_02

 

JSP 中的四种作用域包括 page、request、session 和 application:

  1. page:代表与页面相关的对象和属性;
  2. request:代表与客户端发出的请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件,需要在页面中临时显示的数据可以置于此作用域;
  3. session:代表某个用户与服务器当前建立会话相关的对象和属性,当前用户相关的数据应该放在用户自己的 session 中;
  4. application:代表与整个 Web 应用程序相关的对象和属性,实质上 application 是跨越整个 Web 应用程序的,包括多个页面、请求和会话,是一个全局作用域。

共同的方法:
void setAttribute(String name,Object obj);
Object getAttribute(String name);
void removeAttribute(String name);

JSP内置对象对应的也是java代码:

page范围:只在一个页面保留数据(javax.servlet.jsp.PageContext(抽象类))

request范围:只在一个请求中保存数据(javax.servlet.httpServletRequest)

Session范围:在一次会话中保存数据,仅供单个用户使用(javax.servlet.http.HttpSession)

Application范围:在整个服务器中保存数据,全部用户共享(javax.servlet.ServletContext)

pageContext 当前页面有效(页面跳转后无效)
request 同一次请求有效(请求转发后有效,重定向后无效)
session 同一次对话有效(同一个浏览器在退出关闭之前都有效)
application 全局有效(整个项目)

request

Java和jsp的关系 jsp跟java有什么关系_开发语言_03

 response:

Java和jsp的关系 jsp跟java有什么关系_开发语言_04