JavaWeb学习(1) JSP - Ryan的修炼之路
JSP注释
<%-- 注释内容 --%><!-- 注释内容 -->
第一种为jsp注释方法, 第二种为html注释方法. 两个都可以用于页面注释, 但是在页面查看源代码只能看到html注释方式 无法看到jsp注释
JSP声明
一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。
JSP声明的语法格式:
<%! 声明内容 %>
JSP输出方式
一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。
JSP表达式的语法格式:
<%= 表达式 %>
<html><head><title>Hello World</title></head><body>Hello World!<br/><!--声明变量count--><% public int count;%><br><!--使用表达式输出变量count--><%= count++%></body></html>
JSP指令与动作
常用的有page、include、taglib指令这三种指令;
page指令
位于页面顶端,一个页面可以包含多个page指令<%@ page 属性=“属性值”%>
include指令
将一个外部文件嵌入jsp中,同时解析这个页面中的jsp语句。
语法 <% include file="地址"%>
。
taglib指令
使用标签库,自定义新的标签,在jsp中启动定制行为。
include动作
include动作(动作标签)<jsp:include page="URL" flush="true/false" />
如果要传递额外参数使用:
<jsp:include page="URL" > <jsp:param name="age" value="32"/></jsp:include>
属性
page 包含在页面中的相对URL地址。
flush 布尔属性,定义在包含资源前是否刷新缓存区。
与include指令区别
|属性| inclue指令| include动作|
| ---- |---- |--- |
| 发生作用的时间 | include指令在页面转换期间 | include动作在请求期间 |
| 包含的内容 | include指令包含文件实际内容(在编译文件里主页面和包含页面是组合成一个的类 | include动作包含页面的输出(在编译文件里主页面和包含页面是两个独立的类) |
| 转换成的Servlet | include指令主页面和包含页面转换为一个Servlet | include动作主页面和包含页面转换为独立的Servlet |
| 编译时间 | include指令较慢(因为资源必须被解析)| include动作较快 |
| 执行时间 | include指令较快 | include动作较慢(因每次资源必须被解析)|
forward 动作
forward动作:
<jsp:forward page="URL">
等同于服务器内部跳转指令request.getRequestDispatcher("/URL").forward(request,response)
如果forward转发时需要增加额外的请求参数, 使用语法
<jsp:forward page="URL"> <jsp:param name="age" value="29"/></jsp:forward>
增加的参数值可以在目标页面通过HttpServletRequest的getParameter()方法获取
`<%= rquest.getParameter("age")%>
`
在执行forward动作时候,用户请求的地址栏不会发生改变, 页面的内容却变为forward目标页内容
param动作:
<jsp:param name="参数名" valus="参数值">
常与forward, include, plugin一起使用,作为其的子标签,用于传递新参数或者修改原有参数值,修改参数时使用form表单里的参数名称即可。同样用request.getParameter("参数名")
获取。