JSP 是Java Server Pages 的缩写,是由 Sun 公司倡导、许多公司参与,于1999 年推出的一种动态网页技术标准
JSP指令标签一共有3种:page指令,include指令,taglib指令。
语法如下:
<%@ page 属性= “值” %> <%@ include 属性= “值” %> <%@ taglib 属性= “值” %>
注意:“<%”与之后的“@”之间不能有空格。
page指令:page 指令用来定义整个JSP页面的一些属性的值
用一个page指令指定多个属性的值
<%@ page 属性1=“值1” 属性2=“值2” …%>
<%@ page import="java.util.*" ,"java.io.*" , "java.awt.*" %>
import java.util.*; import java.io.*; import java.awt.*;
用多个page指令指定多个属性的值
<%@ page 属性1="值1"%> <%@ page 属性2="值2"%>
例如,我们可以用page指令定义JSP 页面的contentType属性的值是“text/html;charset= utf-8 ”,这样,我们的页面就可以显示中文。如,
<%@ page contentType="text/html;charset= utf-8 " %>
其中, 属性值总是用单引号或引号双号括起来
可以使用多个page 指令给属性import 几个值,但其它属性只能使用一次page 指令指定该属性一个值。如,
<%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.util.*" %> <%@ page import="java.util.*", "java.awt.*" %>
<%@ page contentType="text/html;charset=GB2312" %> <%@ page contentType="text/html;charset=GB2312" %>
注:page 指令的作用对整个页面有效,与其书写的位置无关,但习惯把page 指令写在JSP 页面的最前面
page指令常用属性
language、import、contentType、session、buffer、auotFlush、isThreadSafe 、info、errorPage、iserrorPage
<%@ page language="java" %> <%@ page import="java.lang.*","javax.servlet.*","javax.servlet.jsp.*","javax.servlet.http.*" %> <%@ page contentType="text/html ; charset=ISO-8859-1" %> <%@ page buffer= "24kb" %> <%@ page info= "this is a sample" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
include 指令用于在 JSP 页面中静态包含一个文件
include 指令的语法如下:
<%@ include file="包含文件的路径与名称" %>
用于导入标签库,taglib 指令的语法如下:
<%@taglib uri="标签库uri" prefix="前缀" %>
uri属性:用来指定标签库的存放位置。
prefix属性:指定该标签库必须使用的前缀。
如:
<%@taglib uri="/struts-tags" prefix="s" %>
动作标签是一种特殊的标签,它影响JSP 运行时的功能。JSP中6个动作为:
1.Include、2.Forward、3.UseBean、 4GetProperty、 5.SetProperty、 6.Plugin 7.Param
JSP动作的语法为:
<jsp:动作名称 属性1="属性1的值1" 属性2="属性2的值2"……/>
Include动作的语法如下:
<jsp:include page="包含文件的路径与名称"/> <jsp:include page="a.jsp" />
forword动作的语法如下
<jsp:forward page="跳转文件的路径与名称"/> <jsp:forward page='b.jsp'></jsp:forward>
useBean动作的语法如下
<jsp:useBean id="bean的名字" class="bean类路径与类名" scope="可用范围"/>
创建JavaBean有两种方式:
使用嵌入java代码的方式,其代码如下: <% reg.Register register=new reg.Register(); %> 使用useBean标签的方式,其代码如下: <jsp:useBean id="register" class="reg.Register" scope="request"/>
getProperty与setProperty动作的语法如下
<jsp:setProperty name="bean的名字" property="属性名" value="值"/> <jsp:getProperty name=”bean的名字” propertry="属性名"/>
param动作的语法如下
<jsp:param name= “名字” value=”指定给param 的值”> <jsp:include page="a.jsp" > <jsp:param value="this is param" name="id"/> </jsp:include>
String getParameter(String name) - 根据键去获取request中存放对象的值。参数name就是键 String[ ] getParameterValues (String name) - 根据页面表单中的输入控件名称获取对应的多个值,一般用于获取复选框、复选列表框等输入控件,获取里边输入的多个值;参数name表示输入控件的名称
request对象的其他方法
void setContentType (String name) 设置作为响应生成的内容的类型和字符编码 void sendRedirect (String name) 发送一个响应给浏览器,指示其应请求另一个URL
void setAttribute(String name,Object value) 以键/值的方式,将一个对象的值存放到session 中,参数name是键,表示一个对象的值保存在session中的时候给该值取的名字;参数value是对象名。 Object getAttribute(String name) 根据键去获取session中存放对象的值。参数name就是键,它来源于setAttribute方法中的参数name。
public void setAttribute(String name ,Object obj); 以键/值的方式,将一个对象的值存放到application中,参数name是键,表示一个对象的值保存在application中的时候给该值取的名字; 参数obj是对象名。如果添加的两个对象的关键字相同,则先前添加对象被清除。 public Object getAttibue(String name); 根据键去获取session中存放对象的值。参数name就是键,它来源于setAttribute方法中的参数name。 由于任何对象都可以添加到application对象中,因此用该方法取回对象时,应强制转化为原来的类型。
out.print(Boolean),out.println(boolean) 用于输出一个布尔值。 out.print(char),out.println(char) 输出一个字符。 out.print(double),out.println(double) 输出一个双精度的浮点数。 out.print(fload),out.println(float) 用于输出一个单精度的浮点数。 out.print(long),out.println(long) 输出一个长整型数据。 out.print(String),out.println(String) 输出一个字符串对象的内容。
request.getRequestDispatcher("new.jsp").forward(request, response); //转发到new.jsp response.sendRedirect("new.jsp"); //重定向到new.jsp
区别:
1.数据共享方面:
在视觉效果上看,<%@ include %>指令标签,与<jsp:include />动作标签没有什么太大的差别
区别: