java:jsp续

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38454165/article/details/82779117

1.jsp指令

page指令:

<%@ page contentType="页面的内容类型和编码" 
    import="要导入的java类"
    isELIgnored="是否忽略EL表达式的处理" 
    errorPage="出现错误时,要跳转的页面"
    isErrorPage="用在错误页面上,取值为true表示是错误页面,这时候才能在页面中使用exception变量"
    %>
exception只能配合jsp表达式和jsp脚本使用

taglib指令:

作用是导入标签库

<%@ taglib prefix="前缀" uri="标签的唯一标识" %>

include指令:
作用,重用页面上的一些标签和代码

<%@ include file="另一个jsp页面" %>

 

2.jsp的脚本


```
<%
    任意java代码
%>
```
jsp的弊端在于当代码越来越多时,使用jsp脚本的方式,会造成项目代码难以维护
现在绝大多数公司都禁止在jsp出现脚本代码

3.jsp表达式


```
<%= 表达式 %>
```
作用是向页面显示值, 表达式不能以`;`结束

4.jsp声明


```
<%! 
    可以声明变量和方法
%>
```


jsp的原理:


jsp 要工作,也必须编译为java类

public class 类名 extends HttpJspBase{ // HttpJspBase 又是继承了HttpServlet
    
    public int i = 100;
    
    public int sum(int a, int b) {
        return a+b;
    }
    
    public void _jspService(HttpServletRequest request,
        HttpServletResponse response) {
        int i = 10;
        
        out.println(i++);
    }
}

1) 当首次访问此jsp时,tomcat会把jsp转译为*.java的类(间接继承自HttpServlet)
2) 再把*.java类编译为*.class字节码
3) 把加载到虚拟机执行,生命周期类似于servlet的生命周期

jsp的本质仍是一个servlet

5.jsp的9大隐式对象


无需声明即可使用。

request     代表请求对象(可以获取请求参数,将变量存入request作用域)
response    代表响应对象(返回响应)
out         代表响应的字符输出流
pageContext  页面上下文对象,可以间接获得request等对象,并可以将变量存入page作用域

config        jsp的配置信息
page          当前jsp对象(this)
exception     代表的是异常信息(当页面isErrorPage="true"时有效)

session       变量作用范围是一次会话内有效
application   变量作用范围是整个应用程序有效

作用域:

page作用域:        变量作用范围仅限于当前页面
request作用域:     变量的作用范围在一次请求内有效

session作用域:       变量作用范围是一次会话内有效
application作用域:   变量作用范围是整个应用程序有效

5.jsp  forward   6.jsp   两个页面使用的是同一个请求

servlet  forward  x.jsp  servlet与jsp使用的是同一个请求

猜你喜欢

转载自blog.csdn.net/qq_38454165/article/details/82779117