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,则页面可以直接访问异常对象,默认是falseisErrorPage=“true”
session对象页面是否用sessionsession=“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浏览器会话对象浏览器范围内有效
applicationservletContext的实例对整个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,耗内存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值