JavaWeb学习(四) : JSP 基本语法
引入 JSP 的概念:
通俗来讲 : 在 HTML 代码中混合 Java 代码能让网页具有动态的功能,
而嵌入了 Java 代码的网页就是 JSP。
JSP 的特点(优点) :
1、运行于服务端(是一种脚本语言)
2、能够对客户端展现内容
3、变化网页文档
4、处理用户提交的表单数据
JSP 与 HTML 有什么区别 :
1、相对来说 JSP 是 动态的,实时的, HTML 是静态的,并不会随着一些东西而改变。
官方一点来说 :
HTML 是静态页面,也就是事先由用户写好放在服务器上,由 Web 服务器向客户端发送。
JSP 页面是由 JSP 容器执行该页面的 Java 代码部分,然后 实时 生成的 HTML 页
面,因此说它是服务器端动态页面。
2、另外,在网页查看源码时 JAVA 代码不会展现在客户端(也就是说用户是看不到我们的
Java 代码的),但是可以看到 HTML 代码(包括注释的部分)。
注释:
1、能够发送给客户端的,可以在源代码文件中显示其内容。
HTML 的注释方式 :
<!--注释内容-->
2、不能发送给客户端的,也就说不会再客户端的源代码文件中显示其内容。
a、 JSP 注释:
<%--注释内容--%>
b、Java 代码注释
// 单行注释
/**/ 多行注释
Jsp 表达式 :
1、主要作用:用于定义 JSP 的一些输出、
将其里面的内容所运算的结果输出到客户端。
2、基本语法 :
<%= 变量/表达式/返回值%>
3、example
<%= msg%> : 将 msg 内容输出到客户端(表达式没有分号)
等价于 <%out,println(msg);%>(注意这里有分号)
4、细节 :
a、 JSP 表达式中不能用 “;”结束。
b、 JSP 表达式中不能出现多条语句。
c、 JSP 表达式中的内容一定是字符串类型的,或者通过 toString()函数转换成
字符串的形式。
为什么 JSP 表达式中不能有 分号?
JSP 中的表达式是转换成 out.println(JSP);表达式进行输出的。
如果我们在表达式中 + ; 那么转换的时候就成了
out.println(表达式;);
造成语法错误。
JSP 程序段:
<% JAVA代码 %>
注意 : 不能在 JSP 程序段中定义函数
JSP 声明 :
1、像其他语言一样,在 JSP 中变量也需要先定义再使用,不同的是 JSP 中定义的变量都是
全局变量,一经定义可以在任何位置进行使用。
2、基本语法:
<!% %>
3、注意,在 JSP 中只能做定义,不能实现逻辑,也就是说不能在定义的时候输出内容,只能定义
一些东西。
JSP 指令 :
1、Jsp 指令的作用 :
告诉 JSP 引擎对 JSP 页面如何编译,不包含控制逻辑
不会产生任何可见的输出。
2、基本用法 :
<%@ 指令类别 属性 1 = "属性值1" .. 属性 n = "属性值 n" %>
3、 Jsp 指令的几种类型 :
page (比较常用)
include (比较常用)
taglib
4、Page 指令:
作用 :
a、设定页面的属性和相关的功能
b、用户可以利用其进行导入需要的类
c、指定 Jsp 输出内容的类型
d、指定处理异常的错误页面
具体形式:
a、导入包 :
<%@ page import = "包名.类名" %>
<%@ page import = "包名.*" %>
b、设定字符集 :
<%@ page pageEncoding = "编码类型"%>
c、设定错误页面 :
两个属性:
errorPage : 指定一个页面,当 JSP 程序出现未被捕获的异常时跳转到
这个指定的页面。
isErrorPage : 跳转到的页面需要 isErrorPage 属性指明处理其他页
面的错误信息。
用法:
在发生异常的页面使用以下代码 :
<%@ page errorPage = "需要跳转的页面" %>
跳转到的页面使用下面代码 :
<%@ page isErrorPage = "true" %>
(改成false 貌似也可以,具体规律还未总结出来)
d、设定 MIME 类型 和字符编码 :
MIME :
多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,
当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些
客户端自定义的文件名,以及一些媒体文件打开方式。
用法 :
用户可以使用 contentType 属性设置 JSP 的 MIME 类型和 可选字符编码 :
<%@ page contentType = "MIME类型;charset = "字符编码" %>
5、include 指令:
作用 : 实现代码的复用(避免重复的操作),相当于是调用一个函数,可以多次调用,
与函数调用不同 的是这里的变量不能与现有文件的变量出现重复,否侧程
序会报错。
用法 :
<%@ page include file = "文件名"%>
JSP 动作 :
作用 :
控制服务器的行为。
用法 :
<jsp:动作名 属性1 = "属性值1" .... 属性n = "属性值n" />
<jps:动作名 属性1 = "属性值1" .... 属性n = "属性值n" > 相关内容 </jsp:动作名>
动作 :
1、jsp : include 表示当页面被请求的时候引入一个文件
2、jsp : forward 表示将请求转到另一个页面
3、jsp : useBean 表示获得 JavaBean 的一个实例
4、jsp : setProperty 表示设置 JavaBean 的属性
5、jsp : getProperty 表示获得 JavaBean 的属性
6、jsp : plugin 表示根据浏览器的类型为 Java 插件生成 OBJECT 或 ENBED 两种标记。
后记 :
还有很多地方不足,如果有错误的地方,欢迎大家指出来,共同进步。
JavaWeb学习(四) : JSP 基本语法的更多相关文章
- JavaWeb学习笔记——jsp基础语法
1.JSP注释 显式注释 <!-- 注释内容 --> 隐式注释,隐式注释在客户端无法看见 // /* */ <% 注释内容 %> 2.Scriptlet(小脚本程序) 所有嵌入 ...
- javaweb学习5——JSP
声明:本文只是自学过程中,记录自己不会的知识点的摘要,如果想详细学习JavaWeb,请到孤傲苍狼博客学习,JavaWeb学习点此跳转 本文链接:https://www.cnblogs.com/xdp- ...
- JavaWeb总结(四)—JSP深入解析
一.JSP域对象 1.JSP属性范围(域对象范围) JSP提供了四个域对象,分别是pageContext.request.session.application. pageContext: 属性范围仅 ...
- JavaWeb学习 (十四)————JSP基础语法
一.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素. JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 二.JSP表达式 JSP脚本表达式(expression)用于将 ...
- javaweb(十五)——JSP基础语法
任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...
- JavaWeb学习 (十七)————JSP属性范围
所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围. 一.JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种: 当前页:一个属性只能在一个页面中取得 ...
- JavaWeb学习 (四)————Http协议
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- JavaWeb学习之JSP(三) EL表达式
EL表达式 什么是EL表达式 EL,Expression Language,表达式语言,是一种在JSP页面中获取数据的简单方式,通过${变量名}的方式可以获取到值,需要注意的是EL只能从 page ...
- JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)
1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% requ ...
随机推荐
- Spring MVC中的拦截器Interceptor
谈谈spring中的拦截器 在web开发中,拦截器是经常用到的功能.它可以帮我们验证是否登陆.预先设置数据以及统计方法的执行效率等等.今天就来详细的谈一下spring中的拦截器.spring中拦截器主 ...
- [bzoj4443] [loj#2006] [洛谷P4251] [Scoi2015]小凸玩矩阵
Description 小凸和小方是好朋友,小方给小凸一个 \(N \times M\)( \(N \leq M\) )的矩阵 \(A\) ,要求小秃从其中选出 \(N\) 个数,其中任意两个数字不能 ...
- 基于bootstrap和knockoutjs使用 mvc 查询
这是我摘抄的码 http://pan.baidu.com/s/1nvKWdsd
- 自定义BeanDefinitionRegistryPostProcessor
自定义BeanDefinitionRegistryPostProcessor 概述 BeanDefinitionRegistryPostProcessor继承自BeanFactoryPostProce ...
- 2020年薪30W的Java程序员都要求熟悉JVM与性能调优!
前言 作为Java程序员,你有没有被JVM伤害过?面试的时候是否碰到过对JVM的灵魂拷问? 一.JVM 内存区域划分 1.程序计数器(线程私有) 程序计数器(Program Counter Reg ...
- Java 程序是如何执行的
Java 程序是如何执行的 了解任何一门语言的精髓都是先俯览其全貌,从宏观的视角把握全局,然后再深入每个知识点逐个击破,这样就可以深入而快速的掌握一项技能.同样学习 Java 也是如此,本节就让我们先 ...
- Arduino通信篇系列之print()和write()输出方式的差异
我们都知道,在HardwareSerial类中有print()和write()两种输出方式, 两个都可以输出数据,但其输出方式并不相同. 例子: float FLOAT=1.23456; int IN ...
- ICC中对Skew进行Debug的好工具--Interactive CTS Window
本文转自:自己的微信公众号<集成电路设计及EDA教程> 以后打算交替着推送多种EDA工具的教程而不只是单纯针对某个工具,依次来满足不同粉丝的需求. 这里分享一篇多年之前写的推文,虽然时间 ...
- 代理IP批量验证程序
#include <afxinet.h> #include <afxwin.h> #include <iostream> #include <fstream& ...
- 【MySQL 原理分析】之 Trace 分析 order by 的索引原理
一.背景 昨天早上,交流群有一位同学提出了一个问题.看下图: 我不是大佬,而且当时我自己的想法也只是猜测,所以并没有回复那位同学,只是接下来自己做了一个测试验证一下. 他只简单了说了一句话,就是同样的 ...