JSP include动作
include动作与 include 指令的不同之处如下: include指令:静态包含(先包含,后编译) 1.编译时只有一个CLASS文件 2.引入的页面会共享主页面变量,注意变量名冲突 include动作:动态包含(先编译,后包含) 1.包含的文件是动态文件(如含有jsp代码的文件)先编译成CLASS文件,在进行包含 2.包含时可以传递参数,没有变量冲突 <jsp:include> 的语法如下: <jsp:include page="relativeURL | <%=expression%>" flush="true" /> page 指定引入页面的路径 flush 表示在引入文件前是否刷新缓冲区,默认为 false例子:
head.jsp 代码如下:
index.jsp 代码如下:
login.jsp 页面代码如下:JSP forward动作
用来将请求转发到另一个页面中,请求的参数数据会被一起转发到目标页面
- <%@ page language="java" contentType="text/html;charset=utf-8"%>
- <html>
- <body>
- <!--直接跳转,会带上GET、POST参数-->
- <jsp:forward page="index.jsp" />
- <!--自定义带参数跳转,接收与include动作相同-->
- <jsp:forward page="index.jsp" >
- <jsp:param name="name" value="value"/>
- </jsp:forward>
- </body>
- </html>
index.jsp 页面代码如下:
- <%@ page import="java.util.Date" language="java"
- contentType="text/html;charset=utf-8"%>
- <html>
- <body>
- <p>login.jsp将跳转到这里</p>
- </body>
- </html>
JSP useBean动作
1.类似于import引用类 2.用于获取 Bean 对象,首先会在指定范围内查找 Bean 对象,如果 Bean 对象不存在,则创建 Bean 对象 <l;jsp:useBean> 的语法如下: <jsp:useBean id = "name" class = "package.class" scope= "page | request | session | application" /> 其中: id表示 Bean 实例化对象的变量名,可以在指定范围内使用该变量名。 class表示需要实例化 Bean 的类路径,指定的类必须包含 public 且无参数的构造方法。 scope指定 Bean 的作用域,取值为: page:(默认)只能在当前页面使用该 Bean 对象; request:只能在一次请求范围内使用该 Bean 对象; session:只能在一次会话范围内使用该 Bean 对象; application:可以在整个应用范围内使用该 Bean 对象。例子:
Test 类,代码如下:index.jsp 代码如下:
- package com.jspweb;
- public class Test {
- public String concatStr(String str) {
- String str2 = str.concat("ok");
- return str2;
- }
- }
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <body>
- <jsp:useBean id="test" class="com.jspweb.Test" />
- <%
- String str = "调用Test类concatStr函数:";
- out.print(test.concatStr(str));
- %>
- </body>
- </html>
JSP setProperty和getProperty动作
1.用于获取设置 Bean 的属性值 2.注意:<jsp:setProperty> 和 <jsp:getProperty> 动作都会按照 page、request、session 和 application 的顺序依次查找指定 Bean 的实例对象,直到第一个实例被找到。如果任何范围内都不存在这个 Bean 实例,则会拋出异常。示例
创建 Bean 类 Site.java,代码如下:login.jsp 代码如下:
- package com.jspweb;
- public class Site {
- private String name;
- private String url;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getUrl() {
- return url;
- }
- public void setUrl(String url) {
- this.url = url;
- }
- }
index.jsp 代码如下:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <body>
- <form action="index.jsp" method="post">
- 网站名称: <input type="text" name="name" /> <br>
- 网址: <input type="text" name="url" /> <br>
- <input type="submit" value="提交" />
- </form>
- </body>
- </html>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <body>
- <% request.setCharacterEncoding("UTF-8"); %>
- <jsp:useBean id="site" class="com.jspweb.Site" >
- <jsp:getProperty property="name" name="site" />
- <jsp:getProperty property="url" name="site" />
- <jsp:useBean>
- </body>
- </html>