jsp基础

jsp

java Server Page
jsp本质就是servlet   

jsp脚本

  1. <%java代码%>
    定义局部变量,定义语句
    被翻译到service方法内部
  2. <%=java变量 或表达式%>
    表达式输出,向页面输出内容
    相当于 out.print(“内容”) 会被翻译成service方法内部
  3. <%!java代码%>
    定义常量
    会被翻译成service的out.print(“内容”)

jsp注释

jsp 可见范围
<!–html注释–> jsp源码 servlet html页面
//单行注释 jsp源码 servlet
/*多行注释*/ jsp源码 servlet
<%jsp注释%> jsp源码

jsp指令

指导jsp翻译和运行的命令 

jsp包括三大指令:

page —属性

属性最多的指令 
根据不同的属性
指导整个页面的特性
1
2
3
<%@page 属性一:"属性值一" 属性二:"属性值二" 属性三:"属性值三"%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%
  1. language
    jsp脚本可以嵌入的语言种类
  2. contentType(MIME类型)
    response.setContentType(“text/html”;charset=UTF-8)
  3. charset
    编码格式
  4. pageEncoding
    jsp文件的编码
  5. import
    导入java包
  6. session
    是否jsp在翻译时自动创建session
  7. errorPage
    当前页面错误跳转
  8. iserrorPage
    true/false 处理错误的页面

include指令 (静态包含)

页面包含指令可以将一个jsp页面包含到另一个jsp页面中
格式: <%@include file="被包含的文件地址"%>

taglib指令

在jsp页面引入标签库(jstl标签库,struts2标签库)

<%@ taglib uri=” “ prefix = “c” %>
prefix表示前缀

jsp内置对象 (9个)

编号 对象 类型 描述
1 pageContext Javax.servlet.jsp.PageContext Jsp的页面容器
2 request Javax.servlet.http.HttpServletRequest 表示请求信息,可以通过此对象获取请求信息
3 response Javax.servlet.http.HttpServletResponse 表示服务器端对客户端请求的响应
4 session Javax.servlet.http.HttpSession 用来保存每一个用户的信息,相当于每一次浏览器访问服务器会话的信息
5 application Javax.servlet.ServletContext 表示的是服务器的上下文 整个web应用,所有用户的共享信息
6 config Javax.servlet.ServletConfig 项目配置,可以通过此对象获取配置的初始化参数
7 out Javax.servlet.jsp.JspWriter 表示的是向页面的输出,out缓冲区默认为 8kb 可以设置成 0,代表关闭out缓冲区 内容直接输出
8 exception Java.lang.Throwable 表示jsp发生异常的时候,所有的异常的信息,一般之后再将异常输出到页面的时候才用的上
9 page Java.lang.Object 表示的是该页面的Servlet实例 当前jsp页面范围

属性范围

属性范围,又称为会话跟踪技术,又称为域对象,在一个页面设置了属性,跳转到另外页面是否还能够取得之前页面设置的属性的问题。属性范围总共有四种:

名称 作用域范围 描述
page page域 当前页面 当前页面可用跳转到其他页面,获取不到之前页面设置的page域对象,使用pageContext对象进行设置和获取域对象
request 请求域 一次请求当前页面,转发到其他的页面 表示在一个页面设置了属性之后,当前页面可以获取到设置的属性,转发到其他的页面,也可以获取到之前页面设置的请求域中的内容,但是重定向之后获取不到,使用的是request对象进行设置或获取域对象的。
session 会话域 当前页面,转发,重定向,一次会话 表示在一个页面设置了属性之后,当前页面可以获取,转发或者重定向到其他页面,也可以获取到之前页面设置的session域中的内容,但是如果浏览器重启或者不是同一个浏览器,那么session域内容获取无效。
application application域 全局,整个web应用 使用application设置的域对象内容,只要服务器不重启,在任何页面都可以后去的到,这种的域对象设置在服务器上面,使用application对象设置和获取域对象内容。

pageContext域对象

pageContext对象是用来设置、获取和移除page域对象信息的,但是在pageContext中还有另外的三个方法可以操作域对象信息:

public abstract void removeAttribute(String name, int scope)
表示根据域对象名称和范围移除指定的域对象的信息,可以删除四种域对象的任意一种域对象信息
public abstract Object getAttribute(String name, int scope)
表示根据域对象名称和范围获取指定的域对象的信息,可以获取四种域对象的任意一种域对象信息
public abstract void setAttribute(String name, Object value, int scope)
表示设置域对象信息,可以设置四种范围域对象信息的任意的一种。

  • 注意
    以上的三个方法可以传递的参数都是整形的,在PageContex类中已有定义:
  1. public static final int APPLICATION_SCOPE : application范围
  2. public static final int PAGE_SCOPE:page范围
  3. public static final int REQUEST_SCOPE:request范围
  4. public static final int SESSION_SCOPE:session范围

操作方法

public abstract Object getAttribute(String name) 通过属性名称获取属性值
public abstract void setAttribute(String name, Object value) 设置属性名称和对应的属性值
public abstract void removeAttribute(String name) 通过属性名称移除属性

jsp标签 动作

页面包含

动态包含  <jsp:include page="被包含的页面"/>  形成两个class文件

请求转发:

<jsp:forword page ="要转发的资源"/>

静态包含和动态包含的区别

名字 指令 编译
静态包含: <%@ include file =” “ %> 编译成一个class文件
动态包含: <jsp:include page=” “> 编译成两个class文件
-------------本文结束,感谢您的阅读-------------
您的支持将鼓励我继续创作!!