JSP新手必会

JSP新手必会

组成

一般由java代码块 静态HTML内容 和 jsp方法组成

属于动态页面

jsp是单例多线程的 本质是servlet 与servlet不同的是 jsp是专门用进行数据展示的servlet 普通的servlet只用于完成业务逻辑处理的

jsp规范

将jsp翻译成servlet的过程,是由Tomcat完成 在Tomcat中内置了一个jsp引擎,当第一次访问该jsp页面时,翻译引擎会将jsp页面翻译为servlet的

.java文件 然后再将其编译为.class文件

jsp注释

<%-- 内容–%>

注意:和HTML注释的区别 HTML的注释会被翻译引擎翻译到servlet的标准输出流中 一般重要的注释写在jsp注释中 这样客户端f12也看不得

java代码块

注释:java代码块写在的是类的方法里面

<%
	java代码块 和java格式一样 位置可以随便写 哪里都可以
        	但是不允许写访问权限控制符
        	不能定义方法
        	不能写静态语句块
%>

声明语句块

<%!  基本不用
    这个代码写在类中 所以权限 方法都可以使用
    %>

表达式语句块

<%=
	在jsp页面中使用 其可以再jsp页面中输出变量 常量 和各种表达式的值
	注意:是表达式 不是语句 没有分号
%>

静态联动

<%@ include file="/..."%>  写你想导入的文件

在当前的jsp页面中,你把include写在哪里 它就会将你到如的文件的内容输出到那里 这样做可以统一修改 减少代码量 当你输入一个重复得到的时候就可以用include插入 比如目录 菜单 导航条等等…

注意:你使用include之后 两个jsp文件是共享的 编译引擎会将这两个jsp全部写入一个.java文件中

jsp动作

七个动作 主要用forword 与 include 和servlet时候的请求连接相似

forward使用后 当前jsp页面没有开启标准输出流 所以当前jsp的out啥的无法显示
include使用后 标准输出流已经开启
jsp动作又称为动态联动 注意 这个两个jsp页面代码 会被 编译引擎编辑到两个.java文件中 所以变量啥的不共享

静态联编和动态联编的应用场景

1.在均可使用时候 一般使用静态联编 因为在程序运行时候只存在一个servlet
2.对资源的消耗少 且不存在调用问题 执行效率高
3.若两个文件共享数据 使用静态联编
4.若使用同名变量 并且不能混淆 使用动态联编

EL表达式

只能接受数据 不能创建数据 而且只能接受四大域中的数据 并且只能接受静态数据

使用方式:${数据}

四大域:

pageContext.setAttribute("address","tiaodan");
		request.setAttribute("address","molitie");
		session.setAttribute("address","ziweibang");
		application.setAttribute("address","gangsai");
		address = ${address}<br>
<%--
    getjspbody()获取标签体对象
	getjspbody().invoke(null)将标签体内容写入到输出流
	getcontext().getout()获取标签输出流
    --%>

EL不会抛出空指针异常 如果找不到数据 就不会显示

EL不会抛出数组访问越界异常 若访问一个数据不存在的元素 那就什么都显示

EL不具有对字符串的处理能力 就连简单的字符串拼接都不行

注意:当你调用四大域中相同键的数据时候 他会从大到小搜索

顺序:page>request>session>application

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值