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" %>
  • 其它标签指令
标签属性 说明 用法
<jsp:include> 包含一个页面(动态包含) <jsp:include page=“hello.jsp” />
<jsp:forward> 转发给另外一个资源 <jsp:forward page=“hello.jsp”>
<jsp:param> 标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数,中文乱码要在传递参数的页面设置 <jsp:forward page=“hello.jsp”><jsp:param name=“name” value=“value”/><jsp:forward>

九大内置对象

对象 说明 用途
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,耗内存

猜你喜欢

转载自blog.csdn.net/qq_41270550/article/details/113837738