jsp-----语法

本文详细介绍了JSP技术中的核心概念,包括Scriptlet、page指令、include指令及跳转指令等,并通过实例演示了如何使用这些指令进行网页开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[code]
1。Scriptlet------script 脚本 let小程序 s所以这个就是脚本小程序

1.1声明
<% !

%>----可以直接在<%!%>的scriptlet中定义全局常量,编写方法,编写类,但是一般情况下,不会直接在JSP中定义一个类。但是绝对不能再里面写语句

<%!
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
%> ----最常做的事就是声明全局常量
<%!
public static int add(int i , int j){
return i+j;
}
%> ----定义方法,此操作一般不会经常使用
----------------------------------------------------------------------

1.2。<%= %>---表达式输出
<%=add(10,20)%>
等效于
<% out.print(add(10,20)) ; %>

但是out.print()---一般用在java中,而不是用在jsp中
因为表达式输出分离了java代码和html代码,使得代码错落有致,比较清晰,所以在jsp开发中绝对不可出现out.println()这样的代码

只要页面中显示的是500错误,则表示服务器端的程序出错,此时必须检查代码,所以,必须处理异常
---------------------------------------------------------------------------

2。page指令
page表示当前一个JSP页面,可以理解为一个对象的本身,即:把一个JSP当作一个对象来看待。
page指令的主要功能有以下几个:
1。设置MIME类型
2。 导包指令
3。 其他指令:错误页(这个不使用了),禁止session,页面的缓冲等等(这些都不用管)

2.1
案例:现在假设建立一个JSP页面,要求里面设置上中文
范例:显示中文
<h1>中国,你好</h1>
显示结果: 出现了乱码
之所以出现了乱码,是由于本身的页面编码和显示的编码不一致造成的
所以,此时,为了可以显示出正确的编码,那么最好在页面加载的时候就已经可以设置好自己所需要的编码了,此时,就必须使用page指令,编写如下代码
<%@page contentType="text/html;charset=GBK" %>
<h1>你好,中国</h1>
---这个相当于让浏览器自动右键--->编码--->gbk为默认显示
但是如果我们的MIME给写错了会出现什么典型的情况?
比如<%@page contentType="test/html;charset=GBK" %>
只要是MIME出错,那么浏览的时候会变成直接下载这个jsp而不是访问这个jsp......很奇怪吧,因为你告诉了浏览器一种不认识的类型,那么浏览器就像我不认识,那么我怎么解读呢,哎,还是交给用户来自己解读把。。所以弹出下载页面

只要合理的应用了MIME类型,则一个页面可以显示成任意风格的形式,例如:现在希望一个JSP页面最终显示成一个word...
word的MIME是:application/msword-----所有的mime类型都可以在conf/web.xml中找到
那么我们在jsp上面可以这样
<%@page contentType="application/msword" %>
.......
那么这个jsp就是一个word.....牛逼啊

2.2 import指令
import指令是page指令中唯一可以设置多次的指令
<%page import="java.util.*,java.io.*"%>


3.include
他可以将工具信息,头部菜单,尾部菜单放到一个文件中,用的时候包含进来
在jsp中有两种语句
@include
<jsp:include>

3.1@include
该指令属于静态包含,可以包含任意的文件,当然,只是把文件的内容包含进来
比如现在搞三个文件
content.htm
内容是: <h1>content.htm</h1>
content.txt
内容是: <h1>content.txt</h1>

content.abc
内容是: <h1>content.dsfdfs</h1>

然后建立一个页面包他们包含进来
<h1>include/demo01.jsp</h1>
<%@include file="content.htm" %>
<%@include file="content.txz" %>
<%@include file="content.abc" %>

那么相当于把这些文件的内容包含了进来,而且不关心文件到底是什么格式的,都当成文本来搞,其实从字面意思就能理解,他include的东西是一个文件而已

3.2 <jsp:include />
此语句是动态包含,如果被包含的页面时JSP,则先处理之后再将结果包含,而如果包含的是非"*.jsp"文件,则只是把文件内容静态包含,功能与@include类似
此指令对语法要求非常严格,有以下两种形式的语法
语法1:
<jsp:include page="页面"/>
语法2:
<jsp:include page="页面">
<jsp:param name="参数名" value="值" />
.....
</jsp:include>

范例:使用语法一完成与之前类似的功能
<h1>include/demo01.jsp</h1>
<jsp:include page="content.htm"/>
<jsp:include page="content.aba"/>

这个和上面的效果是一样的。。。
下面用语法二,将包含jsp页面,而且向里面传递参数
建立content.jsp,此文件可以接受参数
内容是:
<h1><%=request.getParameter("ref1") %></h1>
<h1><%=request.getParameter("ref2")%></h1>
建立includedemo.jsp并向里面传递参数

<h1>hhhhh</h1>
<jsp:include page="content.jsp">
<jsp:param name="ref1" value="Hello world ref1"/>
<jsp:param name="ref2" value="hellow world ref2"/>
</jsp>

两种包含的区别:
1。 静态包含:
实验如下:
有如下的jsp
demo.jsp
<%@page contentType="text/html;charset=GBK" %>
<%
int i = 1000;
%>
<h1>demo.jsp中i的值是<%=i%></h1>

main.jsp中
<%@page contentType="text/html;charset=GBK" %>
<h1>main页面</h1>
<%
int i = 10; //注意:被包含页面中也有这个变量哈
%>
<h2>main中的值为:<%=i%></h2>
<%@include file="demo.jsp" %>

因为<%@include file="demo.jsp" %>只是把这个东西看成是一个普通文件,他不会处理jsp的代码,所以他会先把他全部写到main.jsp中-----先包含然后交给包含页面处理
等效于:

<%@page contentType="text/html;charset=GBK" %>
<h1>main页面</h1>
<%
int i = 10; //注意:被包含页面中也有这个变量哈
%>
<h2>main中的值为:<%=i%></h2>
<%@page contentType="text/html;charset=GBK" %> ----包含的是未处理的文件内容
<%
int i = 1000;
%>
<h1>demo.jsp中i的值是<%=i%></h1>
那么这里可以看到出现了重复的i,那么肯定报错。。。

下面我们使用<jsp:include/>来处理
<%@page contentType="text/html;charset=GBK" %>
<h1>main页面</h1>
<%
int i = 10; //注意:被包含页面中也有这个变量哈
%>
<h2>main中的值为:<%=i%></h2>
<include:jsp page="demo.jsp" />
那么他等效于:
<%@page contentType="text/html;charset=GBK" %>
<h1>main页面</h1>
<%
int i = 10; //注意:被包含页面中也有这个变量哈
%>
<h2>main中的值为:<%=i%></h2>
<h1>demo.jsp中i的值是10</h1>----他包含的是处理后的内容

4。跳转指令

跳转指令,当一执行此指令时,程序会无条件立即跳转

语法1:
<jsp:forward page="页面"/>
语法2:
<jsp:forward page="页面">
<jsp:param name="参数名" value="值" />
.....
</jsp:forward>

demo.jsp 中
<h1>哈哈</h1>
<jsp:forward page="demo2.jsp" />

demo2.jsp
<h1>哈哈,我是demo2</h1>

运行后就直接跳转了。。。这是服务器端跳转



[/code]
内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值