java第三章

目录

[Jsp 页面的构成:](#Jsp 页面的构成:)

3.3jsp脚本元素

[3.3 jsp指令标记](#3.3 jsp指令标记)

3.4jsp动作标记


Jsp 页面的构成:

Html jsp注释 java脚本元素 jsp动作标记

Html注释<!--html注释-->

Jsp注释<%--注释--%>

用户能看到html注释看不到jsp注释

3.3jsp脚本元素

<%java代码%> 这个是java程序片格式,一个jsp网页可以有任意的jsp片,这些jsp将被tomcat服务器按顺序执行,在一个程序片中的变量称为局部变量

每个客户访问时都有一个线程,每个客户访问互相不受影响

<%! >这里称为成员变量,定义的变量在整个jsp页面都有效,这些变量的内存空间知道服务器关闭才失效,所有用户公用

这里声明的方法是成员方法,方法在页面有效果,但是方法定义的变量只在方法内有效果

<%!

int i = 0;

i++; // 这是错误的,不能在这里执行递增操作

%>

如果你想要对变量 i 进行递增操作,你需要在JSP的脚本let标签 <% %> 内进行,如下所示:

<%!

int i = 0; // 声明变量

%>

<%

i++; // 在脚本let标签内进行递增操作

%>

在 <% %> 标签内,你可以编写任意的Java代码,包括赋值、循环、条件判断等。而 <%! %> 标签仅用于声明那些需要在JSP页面多个请求之间保持状态的成员变量或方法。

<%= %>里面可以插入一个表达式,这个表达式必须能求值,由web服务器负责计算,但返回的值为字符串

<%=n %>就是输出n的值

3.3 jsp指令标记

1.page指令

Page指令标记用来定义整个jsp页面的一些属性和这些属性的值(可以用一条指令指定多个,也可以一条一个)

主要指令有contenttype,include,language,pageEncoding等

1.只能为contentType属性定一个值,用来确定响应的mime类型

<%@page contentType="application/msword;charset=UTF-8"%>

常见:text/html网页形式

  1. include属性作用为 为jsp页面引入包中的类,页面也行,只不过嵌入的contenttyoe应该一致

<%@include file="文件的url"%>

  1. Language属性的作用是指定jsp页面的脚本语言,目前只有java
  2. Pageencoding属性中的charset是指服务器发送给客户浏览器时所见的网页内容的编码,Pageencoding这个本身是存储时所用的编码

3.4jsp动作标记

常用的动作标记:include、forward、usebean......

include动作标记主要是动态嵌入,与指令标记的区别是先处理后包含,页面的contenttype可以不一致

语法有两种格式:

第一种:<jsp:include page="文件的url"/>

第二种:

<jsp:include page="文件的额url" >

子标记:可以传参

<jsp:include/>


Forward:停止后转向

语法:

第一种<jsp:forward page="文件的url"/>

第二种:

<jsp:forward page="文件的url">

子标记:能给参数

</jsp:forward>


Param:不能单独使用,但是可以当作include和forward的子标记,该标记为"名字-子标记"

<jsp:父标记 page = "接收参数页面的url">

<jsp:param name = "参数名" value= "参数值/">

</jsp:父标记>

接收参数的页面可以使用内置对象request调用getParameter("参数名")获取动作标记param传递过来的参数值

相关推荐
日月云棠11 小时前
各版本JDK对比:JDK 25 特性详解
java
用户83071968408211 小时前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide12 小时前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家12 小时前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺12 小时前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户9083246027312 小时前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端
桦说编程13 小时前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题
java·后端·性能优化
程序员清风17 小时前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试
beata18 小时前
Java基础-13: Java反射机制详解:原理、使用与实战示例
java·后端
用户03321266636718 小时前
Java 使用 Spire.Presentation 在 PowerPoint 中添加或删除表格行与列
java