1.小脚本(可以书写java代码,相当于servlet)
<%
java 代码
request.getParameter("name");
%>
2.表达式<%=2+3%>等价于out.print(2+3)
注:只能获取当前页面的值,${ }这个是el表达式
可以从上下文中得到值
//在页面中获取到或者定义了值
<%
//局部变量
int i=100;
%>
//才能取到
<%=i%>
3.声明
<%! %>表示在类中定义全局成员和静态方法
<%!
//全局变量
int a=77;
public void chengyuan(){
}
%>
4.jsp注释
jsp注释:<%–被注释的内容–%>特点:安全,省流量
网页注释:<!--网页注释-->
特点:不安全,废流量
5.jsp的3个指令
jsp指令是为jsp引擎设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理jsp页面中的其余部分
在jsp2.0中共定义了三个指令:
page指令:用来定义JSP文件中的全局属性.
Include指令:导入项目中已存在的文件
静态包含:把其他资源包含到当前页面中
//在翻译时把两文件合并
<%@ include file="/header.jsp"%>
动态包含:
//不会合并文件,当代码执行到include时,才包含另一个文件的内容
<jsp:include page="header.jsp"></header.jsp>
taglib指令:是定义一个标签库以及其自定义标签的前缀.
作用:在jsp页面中jstl标签库,替换jsp中java代码片段
<%@ taglib url="http://java.sun.com/jsp/jstl/core" prefix="c"%>
6.jsp的6个动作
<jsp:include>//动态包含
<jsp:forward>//请求转发
<jsp:param>//设置请求参数
<jsp:useBean>//创建一个对象
<jsp:setProperty>//给指定的对象属性赋值
<jsp:getProperty>//取出指定对象的属性值
<%
Student stu=new Student();
stu.setName("tom");
out.print(stu.getName());
request.getRequestDispatcher("/login1.jsp?name='tom'").forward(request,response);
%>
<jsp:useBean id="stu1" class="com.demo.Student"></jsp:useBean><%--new一个对象 --%>
<jsp:setProperty property="name" name="stu1" value="lisi"/><%--给name属性赋值 --%>
<jsp:getProperty property="name" name="stu1"/><%--取得name属性的值 --%>
<jsp:forward page="/login1.jsp"><%--请求转发 --%>
<jsp:param value="tom" name="name"/><%--设置请求参数 --%>
</jsp:forward>
7.jsp的9个内置对象
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
8.四大域对象
PageContext:pageContext存放的数据在当前页面有效,开发时使用较少
ServletRequest:request存放的数据在一次请求或转发中有效,使用非常多
HttpSession:session存放的数据在一次会话中有效,如:存放用户登陆信息
ServletContext:application存放的数据在整个应用范围内有效。