【JSP笔记】指令标签(3)、动作标签(6)
2017-11-29 18:58
671 查看
一.JSP介绍
1.JSP全名为Java Server Pages,java服务器页面,其根本是一个简化的Servlet设计.2.它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
3.JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
4.Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
二.JSP指令标签(3个)
1.page指令
page指令是JSP页面内最常用的指令,用于定义整个JSP页面的相关属性,这些属性在JSP被服务器解析成Servlet时会转换为相应的Java程序代码language属性
该属性用于设置JSP页面使用的语言,目前只支持Java。该属性默认值是Java<%@ page language="java" %>
extends属性
该属性用于设置JSP页面继承的Java类,所有JSP页面在执行之前都会被服务器解析成Servlet,而Servlet是由Java类定义的,所以JSP和Servelt都可以继承指定的父类。该属性不常用,可能影响服务器的性能优化import属性
该属性用于设置JSP导入的类包。JSP页面可以嵌入Java代码片段,这些Java代码在调用API时需要导入相应的包<%@ page import="java.util.*" %>
pageEccoding属性
该属性用于JSP页面的编码格式,如果设置为ISO-8859-1,那么这个JSP页面就不支持中文字符<%@ page pageEccoding="ISO-8859-1" %> <%@ page pageEccoding="UTF-8" %>
contentType属性
该属性用于设置JSP页面的MIME类型和字符编码,浏览器会据此显示网页的内容,如<%@page contentType="text/html;charset=UTF-8"%>将这个属性设置应用于JSP页面,那么浏览器在呈现该网页时,会使用UTF-8 编码格式,如果当前浏览器编码格式为GBK,那么就会产生中文乱码,这时用户需要自行更改浏览器的显示编码才能看到正确的中文内容。
session属性
该属性指定JSP页面是否使用HTTP的session会话对象。其属性值是boolean类型,可选值true和false.默认值是true,可以用到session会话对象;如果设置为false,则当前JSP页面将无法使用session会话对象<%@ page session="false"%>
buffer属性
该属性用于设置JSP的out输出对象使用的缓冲区大小,默认大小是8KB,且单位只能是KB。<%@ page buffer="128KB"%>
autoFlush属性
该属性用于设置JSP页面缓存满时,是否自动刷新缓存。默认值为true;若设置为false,则缓存满时将抛出异常。<%@ page autoFlush="false"%>
info属性
该属性用于设置JSP页面的相关信息,该信息可以在Servlet接口的getServletInfo()方法中获取<%@ page info="这是系统的入口"%>
isErrorPage属性
通过该属性可以将当前的JSP页面设置成错误页面来处理另一个JSP页面的错误,也就是异常处理,这意味者当前JSP页面业务的改变。<%@ page isErrorPage="true"%>
errorPage属性
该属性用于指定处理当前JSP页面异常错误的另一个JSP页面,指定的JSP错误处理页面必须设置isErrorPage="true"。errorPage属性的属性值是一个url字符串。<%@ page errorPage="404.jsp"%>
isELlgnored属性
该属性用于定义JSP页面是否被忽略EL表达式的使用。在Servlet 2.4 版本中其默认值为 false,即JSP支持EL表达式。<%@ page isELlgnored="false"%>
2.include指令
include指令用于文件包含。可以在JSP页面中包含另一个文件的内容,但是它仅支持静态包含,也就是说被包含的文件中的所有内容都被原样包含到JSP页面中。如:
<%@include file="demo.jsp" %>上述代码将当前JSP文件中的相同位置的demo.jsp文件包含进来。其中 file属性用于指定被包含的文件,其值是当前JSP页面文件的相对路径URL路径。
例:在当前页面中包含另一个JSP文件来显示当前日期
日期date.jsp:
<%@page pageEncoding="GB18030" %> <%@page import="java.util.Date" %> <% Date now = new Date(); String date; date = String.format("%tY 年%tm 月%td 日", now, now,now); %> <%=date %>
include标签的.jsp:
<%@page language="java" import="java.util.*" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>include例子</title> </head> <body> <!-- HTML注释 --> 当前日期是: <%@include file="date.jsp" %><br> </body> </html>
date.jsp文件将被包含在include.jsp文件里,所以文件中page指令代码可以省略,在被包含到include.jsp文件中后会直接使用它的配置。
注意:
源文件和被包含文件中的变量名和方法名不要冲突,因为他们最终会生成一个文件,防止错误发生。
3.taglib指令
该指令用于加载用户的自定义标签,使用该指令加载后的标签可以直接在JSP页面中使用<%@taglib prefix="fix"
uri="tagUriorDir" %>
prefix:用于设置加载自定义标签的前缀
uri:用于指定自定义标签的描述符文件位置
<%@taglib prefix="view" uri="/WEB-INF/tags/view.tld"%>
三.JSP动作标签(常用的6个)
1.<jsp:include>
a.概述
这个动作标签可以将另一个文件的内容包含到当前的JSP页面内。被包含的文件内容可以是静态文本也可以是动态代码。b.格式
<jsp:includepage="url" flush="false|true"/>
page:用于指定被包含文件的相对路径。
flush:可选参数,用于设置是否刷新缓冲区。默认值为false;如果设置为 true ,则在当前也页面输出使用了缓冲区的情况下,将先刷新缓冲区,然后再执行包含工作。
或
<jsp:include page="url" flush="false|true">
子标签
</jsp:include>
c.<jsp:include>与<include>的区别
<jsp:include>和<include>指令都拥有包含其他文件内容到当前JSP的能力,但存在区别。相对路径:
include指令使用file属性指定被包含文件,该属性使用 文件的相对路径 指定被包含文件的位置。
<jsp:include>标签以 页面的相对路径 来指定被包含文件
包含资源:
include指令包含的资源为静态,如TXT、HTML;如果把JSP的动态内容用include指令包含,也会被当作静态资源包含到当前页面;被包含资源和当前JSP页面是一个整体。资源相对路径解析发生在JSP转换为Servlet的时候。
<jsp:include>标签包含动态资源时,资源相对路径的解析在请求处理时发生。当前JSP和被包含是两个独立的实体。被包含页面会对包含它的JSP页面中的请求对象进行处理,将结果作为当前JSP页面包含的内容,与当前页面内容一起发送到客户端。
2.<jsp:forward>
<jsp:forward>是请求转发标签。该标签可以将当前页面的请求转发给其他Web资源。3.<jsp:param>
该标签可以作为其他标签的子标签,为其他标签传递参数<jsp:param name="paramName"value="paramValue" />
name:指定参数的名称
value:设置对应的参数值
例:在转发请求到DZ2.jsp页面的同时,传递了userName参数,其参数值为demo
<jsp:forward> <jsp:param name="userName" value="demo"/> </jsp:forward>
4.<jsp:useBean>
用于在JSP页面中创建一个JavaBean实例,并通过属性的设置将此实例存放在JSP指定范围内格式:
<jsp:useBean
id="变量名";
scope="page|request|session|application"
{
class="完整类名"|
type="数据类型"|
class="完整类名" type="数据类型"|
beanName="完整类名" type="数据类型"
}/>
参数:
id属性:定义一个变量名
scope属性:设置JavaBean的作用域,有四种范围 page、request、session、application。默认为 page
class属性:指定JavaBean的完整类名。和beanName属性不能同时存在
type属性:指定id属性所定义的变量类型
beanName属性:指定JavaBean的完整类名。和class属性不能同时存在。
例子:在JSP页面中实例化一个JavaBean对象
1.创建一个名为Bean的类,此类中有一个名为name的属性及其相关方法
2.创建JavaBean后,在.jsp页面中通过<jsp:useBean>标签实例化对象,并调用该方法。
<%@ page language="java" contentType="text/html" pageEccoding="GBK"%> <jsp:useBean id="bean" class="com.lyq.Bean"></jsp:useBean> <!DOCTYPE html> <html> <head> <title>HomePage</title> </head> <body> <% bean.setName("Ash"); %> <h1 align="center"><%=bean.getName()%></h1> </body> </html>
5.<jsp:setProperty>
用于对JavaBean中的属性赋值,但JavaBean的属性要提供相应的setXXX()方法。通常与<jsp:useBean>标签一起使用格式:
<jsp:setProperty
name = "实例名";
{
property="*"|
property="属性名"|
property="属性名"
param="参数名"|
property="属性名" value="值"
}/>
参数:
name属性:指定JavaBean的引用名称
property属性:指定JavaBean中的属性名,此属性是必须的,其取值有两种,分别为“*”、“JavaBean的属性名称”
param属性:指定JSP请求中的参数名,通过该参数可以将JSP请求参数的值赋给Java的属性
value属性:指定一个属性的值
例子:使用 property="*" 对JavaBean的属性赋值
1.创建一个名为Student的类 此类封装了一个学生实体对象
public class Student { private int id; private int age; private String classess; public int getId() { return id; } public int getAge() { return age; } public String getClassess() { return classess; } public void setId(int id) { this.id = id; } public void setAge(int age) { this.age = age; } public void setClassess(String classess) { this.classess = classess; } }
2.创建一个form表单,将其放置在 index,jsp页面中
<form action="student.jsp" method="post"> <p>学号:<input type="text" name="id"></p> <p>年龄:<input type="text" name="age"></p> <p> <input type="submit" value="提交"> <input type="reset" name="重置"> </p> </form>
3.创建student.jsp页面,用于实例化Student对象,并输出相应的属性值
<body> <jsp:useBean id="student" class="com.lyq.Student"></jsp:useBean> <jsp:setProperty name="student" property="*"/> <div align="center"> <p>学号:<%=student.getId()%></p> <p>姓名:<%=student.getName()%></p> </div> </body>
6.<jsp:getProperty>
用于获取JavaBean中的属性值,但要求JavaBean的属性必须具有相应getXXX()方法。通常与格式:
<jsp:getProperty
name="实例名" property="属性名"/>
参数:
name属性:指定存在某一范围的JavaBean实例引用。
property属性:指定JavaBean的属性名称
相关文章推荐
- JavaWeb笔记——Jsp的指令、内置对象和动作标签
- JavaWeb笔记——Jsp的指令、内置对象和动作标签
- JavaWeb笔记——Jsp的指令、内置对象和动作标签
- jsp 指令与动作 标签 include
- JSP学习记--02(jsp基本结构、变量、注释、指令标签、动作标签)
- jsp的三大指令、动作标签和九大内置对象
- 【Head First Servlets and JSP】笔记24:include指令与include动作 & param动作 & foward动作
- JSP指令,动作标签,内置对象
- [原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)
- JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
- jsp笔记,包括编译指令和动作指令,九大对象等
- JSP三大指令 九大内置对象 动作标签
- JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
- JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
- jsp第一天-jsp指令,jsp动作标签
- jsp的指令与动作标签进行include对性能的影响性能
- jsp三大指令和动作标签,javabean
- web day12 JSP三大指令,九个内置对象,动作标签,JavaBean(包含内省),EL表达式,函数库
- 重温JSP学习笔记--JSP动作标签
- JSP笔记――4.七个动作指令