2021-03-01-深入浅出解析jsp

来历

  • servlet的缺点导致jsp的产生
  • JSP全称是Java Server Pages
  • jsp=html+js+Java+Tag

用法

  • servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示交给jsp来做
  • 在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用

原理

  • 所有的jsp最后都编译成servlet,编译后的路径一般在tomcat的work目录下
  • eclipse可以查看jsp编译后的servlet

语法

  • 脚本表达式:语法:<%= 变量或表达式 %>,当前时间:<%= new java.util.Date() %>
  • jsp脚本片段:<%多行java代码%>
  • JSP变量定义:字段变量<%! int = 0;%>,局部变量<% int = 0;%>
  • jsp注释:<%-- 注释信息 --%>

三大指令

  • 所有的指令都是以<%@%>包围,一般放在jsp的顶部
属性 说明 用法
import 导入jsp页面需要的Java类 <%@ page import=“Java.util.*” %>
contentType 指定当前页面的响应类型,生成HTML页面的编码类型 contentType=“text/html; charset=UTF-8”
pageEncoding 当前jsp页面的编码 pageEncoding=“UTF-8”
errorPage 当前页面抛出异常时跳转的页面 errorPage=“error.jsp”
isErrorPage 指定是不是错误页面,如果是true,则页面可以直接访问异常对象,默认是false isErrorPage=“true”
session 对象页面是否用session session=“false”
  • include
指令用于引入其它JSP页面(静态包含)
JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入
语法:<%@ include file=“被包含页面的绝对URL或相对URL"%> 
  • taglib
指令用于在JSP页面中导入标签库
语法:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  • 其它标签指令
标签属性 说明 用法
包含一个页面(动态包含)
转发给另外一个资源
标签引入或将请求转发给其它资源时,可以使用标签向这个资源传递参数,中文乱码要在传递参数的页面设置

九大内置对象

对象 说明 用途
pageContext 当前页面的上下文对象 只在当前jsp有效
request 请求对象 对当前请求的封装
session 浏览器会话对象 浏览器范围内有效
application servletContext的实例 对整个Web项目有效
out 打印流对象 在jsp页面打印字符串
response 响应对象 用来返回信息给客户
config 单个servlet的配置对象 等价于servletConifg对象
exception 异常对象 isErrorPage="true"时才有效
page 当前JSP页面本身 当前页面转换后的Servlet类的实例

域对象

  • 九大内置对象里有四个域对象
对象 范围
pageContext 只在一个页面中保存,跳转之后无效
request 只在一次请求中保存,服务器跳转后依然有效,客户端重定向才无效
session 在一次会话中中保存,无论任何跳转都可以使用,但是新开浏览器后无法使用
appliaction 在服务器上保存,所有用户都可以使用
方法 说明
setAttribute(String name,String value) 设置属性名称和内容
getAttribute(String name) 根据属性名称取得属性值
removeAttribute(String name) 删除指定的属性
  • 能使用pageConetxt就不要使用request,能使用request就不要使用session,耗内存

你可能感兴趣的:(后端,jsp,servlet,java)