- jsp 脚本
1. 小脚本<% java代码 %>
2. 表达式<% =2+3 %> 等于out.print(2+3);
3. 声明<%! %> 表示在类中定义全局变量和静态块
4. <%-- --%>jsp注释 安全,节省流量
- jsp 指令
jsp指令并不产生任何可见的输出,而只是告诉引擎如何处理jsp中的其余部分
使用jsp指令需要使用<%@ 指令名 参数名1="参数值1" 参数名2="参数值2"%>
如<%@ page language="java" import="java.util.※" pageEncoding="utf-8"%>
jsp会自动导入java.lang.※ java.servlet.※ java.servlet.http.※ java.servlet.jsp.※- page 指令:
无论写在页面什么地方,都作用于整个页面。规范建议统一编写在页面顶部
language="java": 默认支持语言java extends="com.stu.demo.Demo": 继承某一个类(使用该指令后jsp则不再继承HttpJspBase) import="com.*,com.stu.*"导包 多个包之间用逗号隔开 session="true|false" 默认是开启的,从pageContext.getSession()中获得 buffer="none|8kb|sizekb" 缓冲区 默认8kb 建议不修改 autoFlash="true|false" 自动刷新(清除缓存) isThreadSafe="true|false" 线程安全 为false时继承SingleThreadSafeMode接口(过时) info="text" 页面基本信息 errorPage="relative_url" 页面出现错误时,自动跳转该页面 isErrorPage="true|false" 默认false 是否创建throwable对象 contextType 等同于response.setContextType("text/html; charset=utf-8") pageEncoding 告诉JSP引擎翻译的文件使用的编码 isELIgnored 是否忽略EL表达式 默认:false
- include 指令
静态包含:<%@ include file="/2.jsp"%> 动态包含:<jsp:include page="2.jsp"/> 动态和静态区别:静态文件在服务器响应之前就已经包含页面,而动态页面在客户端执行到该行时才会解析该命令
- taglib 指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 专门用来引入jstl标签库使用的
- page 指令:
- jsp 动作
- jsp:useBean 创建一个对象
<jsp:useBean id="user" class="com.stu.entity.User"/>
- jsp:setProperty 给指定的对象设置属性
<jsp:setProperty name="user" property="uid" value="username"/> <jsp:setProperty name="user" property="pwd" value="password"/>
- jsp:getProperty 获取制定对象的属性
<jsp:getProperty name="user" property="uid"/> <jsp:getProperty name="user" property="pwd"/>
- jsp:include 动态包含
<jsp:include page="2.jsp"/>
- jsp:forword 请求转发与转发携带参数
<%-- 1.jsp --%> <jsp:forward page="2.jsp"> <jsp:param name="uid" value="username"/> <jsp:param name="pwd" value="password"/> </jsp:forward> <%-- 2.jsp --%> <h1>这里是2.jsp</h1> <%= request.getParameter("uid")%> <%= request.getParameter("pwd")%>
- jsp9大内置对象
内置对象是指可以在<%=%> <%%>中直接使用,不需要声明的对象
对象名 | 类型 | 说明 |
---|---|---|
request | javax.servlet.http.HttpServletRequest | |
response | javax.servlet.http.HttpServletResponse | |
session | javax.servlet.http.HttpSession | 由session="true"开关控制 |
application | javax.servlet.ServletContext | |
exceptin | java.lang.Throwable | 由isErrorPage="false"开关控制 |
page | java.lang.Object 当前对象this | 当前servlet实例 |
config | javax.servlet.ServletConfig | |
out | javax.servlet.jsp.JspWriter | 字节输出流,相当于printWriter对象 |
pageContext | javax.servlet.jsp.PageContext | 以上8个对象的数据集合 |
- void setAttribute(String name,Object o);
- Object getAttribute(String name);
- void removeAttribute(String name);
操作其他域对象的方法 - void setAttribute(String name,Object o, int Scope);
- Object getAttribute(String name, int Scope);
- void removeAttribute(String name, int Scope);
Scope的值:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE - findAttribute(String name); 按照page request session application的顺序查找值