之前说JSP页面由JSP标记、HTML标记和java代码组成。除了普通的html代码之外,嵌入jsp页面的其他成分主要有:脚本元素(js)、指令、动作
1、脚本用来嵌入java代码,将成为Servlet的一部分,jsp预定义了一组可以直接使用的变量如request/response/out/session/application/config/page-Context
2、jsp指令用来从整体上控制Servlet的结构
3、动作用来引入现有的组件或者控制jsp引擎的行为
1、jsp表达式<%= ... %>
有请求如localhost:8080/HelloWorld?message=you loss
<%=
request.getParameter(“message”)
%>
页面上打印出来的就是you loss
2、jsp脚本<% ... %>
<%
String str = "hello world";
out.println("hello world");
%>
3、jsp声明<%! ... %>
<%! code %>
4、jsp注释
<%-- 注释 --%>这个注释在jsp转换为Servlet时被自动忽略
<-- 注释 -->这个是html的注释,在转化为Servlet时会被包含进去
这里一般都会有个问题就是jsp脚本、声明、表达式有啥区别呢?
是这样,jsp脚本呢就是写java代码的地方,不推荐使用,毕竟现在都流行前后端分离,前端尽量用专业的前端语言工具;表达式看上去就是println的作用,但其实用处还有很多,比如说我们form提交的时候写action的时候要求像这样action="../login.jsp?id=<%= request.getParameter("id")%>",起到一个拼接的作用,这是与脚本println区别的地方。至于声明,其实也是写java代码的地方,但是声明语法(<%! %>)一般被用做声明定义一些变量,方便在脚本(<% %>)中使用的变量,当然了一个jsp页面中的声明只在这个页面中有效。jsp声明中的变量仅在jsp第一次被请求时初始化一次,一旦初始化结束,之后对这个声明的使用一直是这个值。
1、page指令
<%@ page ...>
page中的属性比较多这里就不一一赘述功能了,自行百度吧。合法的属性如下
import = //导入的包
contentType = “text/html;charset=UTF-8”
isThreadSafe = “true/false”
session = “true/false”
buffer = “size kb/none”
autoflush = “true/false”
extends = “***.class”
info =
errorPage = “url”
isErrorPage = “true/false”
language = “java”
2、include指令//在转化为Servlet时包含引入的文件
<%@ include file=”...” %>
ps:此处使用jsp:include动作可以在请求文件的时候再引入文件,不用包含在Servlet中
1、jsp:include
2、jsp:useBean//声明创建一个bean实例
其他可能的属性:
scope = ”page/request/session/application”
type = ””
beanName = ””
3、jsp:setProperty//设置bean中的属性
name = ””
property = “”
param = “”
value = “”
4、jsp:getProperty//获得bean中的属性
5、jsp:plugin与applet有关
6、jsp:forward//转发
最后,说一下特别标签以及html5
html5中调整了一些标签,因为强调html只注重语义,css只注重样式,所以html中的有关于样式的标签将在html5中被废弃如
-- 标签内的文字斜体
-- 加粗
-- 下划线
-- 删除线