JSP动作

JSP动作

JSP 动作用于执行插入文件、重用 bean、将用户转到其他页面及将对象实例化等任务。在 JSP 页 面中使用 JSP 动作的语法为:

<jsp:attribute>

使用 JSP 动作时需要提供属性值。下表列出了各种 JSP 动作标记及其描述、支持的属性和属性的描述:

JSP动作描述属性属性描述
< jsp:plugin>执行 Java applet 或 JavaBean。type ,code ,codebase与属性相对应定义要纳入的插件的类型。 定义将由插件执行的类。 定义代码的路径。
<jsp:getProperty >检索bean的属性name,property定义 bean 的名称。 定义要从中检索值的属性。
<jsp:setProperty >用于设置bean的属性name ,property ,value ,param指定 bean 的名称。 定义要设置值的属性。 为 bean 属性定义一个显式值。 定义要使用的请求参数的名称。
< jsp:useBean>调用并查找现有 bean。Id class scope beanName唯一地标识 bean 的实例。 识别要从中实现 bean 对象的类。 定义 bean 的范围。 定义 bean 的参考名。
< jsp:forward>用于向目标页面 转发请求。page指定目标页面的 URL。
< jsp:include>在当前 JSP 页 面中包括一个文 件page,flush指定要包含的资源的URL。指定是否应刷新缓冲区。flush 值可 以是 true 或 false。
< jsp:param>定义将要传送给待纳入或转发页面的参数。name,value定义引用参数的名称。 定义指定参数的值。

1.1< jsp:include>动作标记

用于将一个JSP页面的输出纳入另一个JSP页面,也可用于向当前JSP页面添加文件。使用< jsp:include>动作标记需要提供文件的路径和刷新参数的值。

使用举例:使用< jsp:include>动作标记在网页上输出系统日期。

准备两个JSP文件:

  • IncludeDatePage.jsp:使用动作标记包含JSP 文件 DatePage.jsp 的输出。
  • DatePage.jsp:使用 JSP 脚本表达式显示当前系统日期。

IncludeDatePage.jsp

<body>
<%--使用include动作标记引入DatePage.jsp文件--%>
<h4>今天的日期是:<jsp:include page="DatePage.jsp" flush="true"></jsp:include> </h4>
<p>上面时间是DatePage.jsp的输出</p>
</body>

DatePage.jsp

<body>
<%--获取系统日期数据--%>
<%=new java.util.Date()%>
</body>

效果

image-20221116210454838

1.2**< jsp:useBean>**

该动作标记用于调用并查找现有 bean。基本语法如下

<jsp:useBean id="类对象名称" class="类名例如:com.user" scope="范围">

使用该语句时,如果存在对应的实体类对象,则返回对象的引用,此时可以操作对象里的值.如果不存在该对象,则会实例化一个对象同时存储到指定的范围.

scope范围

scope可取4个值,分别对应4个范围

  • application,web应用程序,每个web项目只能有一个,在对应网站中的所有用户都共用一个application,同时在项目的各个页面都可以读取它(在整个项目的生命周期内有效).
  • session,在当前的会话中有效.
  • request,在用户本次的请求中有效.
  • page:scope的默认值,只在当前界面有效.

jsp操作bean方法

  • getProperty,获取bean的值
  • setProperty,设置bean的值

1.3setProperty方法

用于设置bean的属性

使用方法一

<jsp:setProperty name="类对象名称" property="*"></jsp:setProperty>

使用这种方法时,前端表单的标签的name将与类对象所含变量名一一进行对比,如果标签的name与变量名相同,则name封装的值将赋给对象中同名的变量.

举个例子,input输出框name值为username,同时在用户实体类中也存在变量username,则前端username封装的值将赋给用户实体类中的username.

使用方法二

<jsp:setProperty name="类对象名称" property="username"/>

这里指定了具体属性username,则用户实体类中只会有username被赋值.password等其他属性值将为空.

使用方法三

<jsp:setProperty name="类对象名称" property="username" value="值"/>

直接给username属性赋值,此时前端的username值将不会赋给用户实体类的username.

1.4getProperty方法

检索bean的属性。
使用语法

<jsp:getProperty name="类对象名" property="属性名/>

上面的对象名,如果bean用的是useBean创建,则对应使用useBean动作创建bean时的id。

案例:通过useBean实例化bean,获取用户名和密码

login.html,登录界面

<form action="useBean.jsp" method="post">
<table>
  <tr>
      <td><label>username</label></td>
      <td><input type="text"name="username" id="username"></td>
  </tr>
  <tr>
      <td><label>password</label></td>
      <td> <input type="password" name="password" id="password"> </td>
      </tr>
</table>
<button>登录</button>
</form>

用户实体类

package com.user;

public class User {
    private String username;
    private String password;

    public User(){
        super();
    }
    public void setPassword(String password) {
        this.password = password;
    }

    public void setUsername(String username) {
        this.username = username;
    }
    public String getUsername(){
        return this.username;
    }

    public String getPassword() {
        return this.password;
    }

    public User(String username, String password){
        super();
        this.password=password;
        this.username=username;
    }
}

useBean.jsp

<body>
<jsp:useBean id="user"  class="com.user.User"></jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
用户名为:<jsp:getProperty name="user" property="username"/>
密码为:<jsp:getProperty name="user" property="password"/>
</body>

输出(输入为用户名Huang,密码12345)

image-20221116225840842

点击登录

image-20221116225918302

1.5<jsp: plugin >

用于在jsp页面嵌入java插件,例如java applet,以下介绍它的几个属性:

  • type:类型,bean或者applet
  • name:applet名称
  • code:对应的是所执行的java类名。
  • codebase:插件将运行的java类目录,空则为该JSP文件的路径

使用举例

<jsp:plugin type="applet" code="User" codebase="com.user"/>

插件类型为applet,运行的java类名为user

1.6<jsp: param>

定义将要传送给转发页面的参数。语法为

<jsp:param name="参数名" value="参数值"/>

下面会有配合forward使用的例子.

1.7 < jsp:forward>

用于向目标页面转发请求。简单的例子就是登录成功后跳转到欢迎界面。forward是请求转发,不是重定向,这意味着它可以携带request对象中封装的数据到新的页面中。

使用的语法为

< jsp:forword page="目标页面的相对路径"/>

这里需要注意几点

  • 路径是相对路径,当使用"/"开头时,则从web应用程序的根目录开始寻找。
  • 这里的路径也可以在请求时通过计算得出.
  • 只能转发请求到内部资源,不能是外部文件

使用举例

<form actioo="#" method="post">
<table>
    <tr>
        <td><label>username</label></td>
        <td><input type="text"name="username" id="username"></td>
    </tr>
    <tr>
        <td><label>password</label></td>
        <td> <input type="password" name="password" id="password"> </td>
    </tr>
</table>
<button>登录</button>
</form>
<%
    String username=request.getParameter("username");
    String password=request.getParameter("password");
%>
<jsp:forward page="welcome.jsp">
<jsp:param name="username" value="<%=username%>"/>
<jsp:param name="password" value="<%=password%>"></jsp:param>
</jsp:forward>

点击登录按钮后,会携带参数username和password将请求转发到目标页面.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值