1.HTML注释
<!--这个HTML注释-->
2.JSP注释
<% --这是JSP注释-- %>
3.声明
用于在页面中定义变量或方法
<% ! String userName = "user"%>
4.表达式
<% = 表达式%>
获取登录用户的姓名
<h3><% = ((User)session.getAttritute("user")).getUserName()%></h3>
5.脚本元素
<% java代码段%>
<%
String name = "Garfield"
for(int i = 0; i < 5; i++){
System.out.println("Hello!"+name+"")
}
%>
6.指令
(1).include指令
用于一个JSP页面包含另一个JSP页面,主页面和被包含的页面二者共享,因此变量定义不能重复
<% @ include file="被包含的JSP页面路径"%>
(2).page指令
常用于指定页面闻不到编码方式、引用类包等
<% @page language="java"
import="java.util.*"
pageEncoding="ISO-8869-1"
%>
page指令的作用范围是整个JSP文件和改JSP文件用include指令包含进来的任何JSP文件——“平移单元”
7动作(action)
(1).jsp:forward元素
forward元素用来重定向当前的用户请求到一JSP页面、HTML页面等,页面跳转。对客户端是透明的,即客户端请求并没有发生改变
<jsp:forward page = "重定向的页面路径">
</jsp:forward>
也可带参数,可用于页面之间传递参数
<jsp:forward page="">
<jsp:parm name="" value=""/>
.....
可包含多个参数
.....
</jsp:forward>
(2).jsp:useBean元素
该元素主要用来让用户在JSP页面中创建一个Bean实例,并指定其名字和作用范围
<jsp:useBean>
id="Bean变量的名字"
scope="page|request|session|application"
{
class="Bean路径"
}
page|request|session|application 用于指定Bean作用范围
page表示应用于当前页,request表明应用于当前用户,session表明应用于当前HttpSession生命周期内的所以页面,application表明此BeanServletContext的所有页面
8.JSP中的隐藏对象
(1).session对象
当客户端第一次访问服务器上的页面时服务器为客户端创建一个session对象,并分配唯一一个ID号。
session可用于传递参数:
读取:
Object obj = session.getAttribute("属性名");
写入:
Object obj = new Object();
session.setAttrubute("属性名",obj);
(2).application对象
(3).request对象
request对象所属的类实现了javax.servlet.http.HttpServletRequest 接口,(位于servlet-api.jar)
主要方法:
- void setAttribute(String name,Object value): 将指定属性的值设置为value
- String getCharacterEncoding(): 返回请求中所用的编码的名称。
- String getLocalAddr() : 返回请求服务器的地址。
- String getMethod(): 返回Http请求的类型。
- Object getAttribute(String name): 获取指定的属性值
- String getParameter(String name):获取参数名为name的参数值。
- Enumeration getParameterNames(): 获取所有请求的名字集合
- String[] getParameterValues(String name): 获取name请求参数的参数值
- void setCharacterEncoding(String encoding); 设定编码格式
response对象
与request对象对应
实现了javax.servlet.ServletResponse接口 (位于servlet-api.jar)
主要方法
void flushBuffer() throws IOEception 强制将缓冲区中所有内容写给客户端。
PrintWiter getWriter(): 用于在response写入文本数据。
void setCharacteEncding(String encding) 为response设置编码,必须在getWriter之前调用。