JSP之javaBean入门

一:Javabean就是一个类,但是遵循特定的设计原则

    1):是公有类     2):属性私有   3):无参的公有构造函数    4):getter和setter方法

二:什么是jsp动作元素

    动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性,可选的内容,与开始元素配置的结束标签。

    第一类是与存取Javabean有关的,包括<jsp:useBean>,<jsp:serProperty>,<jsp:getProperty>

   第二类是JSP1.2就开始有的基本元素,包含六个动作元素:<jsp:include>,<jsp:params>,<jsp:fallback>,<jsp:plugin>,<jsp:forward>,<jsp:param>

  第三类是JSP2.0新增的元素,与JSP Document有关,包括六个元素:<jsp:text>,<jsp:output>,<jsp:root>,<jsp:declaration>,<jsp:scriptlet>,<jsp:expression>

   第四类是JSP2.0新增的元素,主要是用来动态生成XML元素标签的值,包括三个动作:<jsp:attribute>,<jsp:body>,<jsp:element>

   第五类是JSP新增的元素,主要是用在Tag File中,有两个元素:<jsp:invoke>,<jsp:dobody>

三:使用javabean的方法

    1:用普通的方法创建javabean

        1):首先编写一个javabean     

public class User {
    private String username;
    private int age;

    public User() {}

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

        2):在index.jsp中导入User类,然后通过new的方法创建一个User的对象    

<%@ page import="com.swpu.User" %>
<html>
  <%
    User user=new User();
    user.setUsername("admin");
    user.setAge(12);
  %>
  <head>
    <title>使用普通方式创建Javabean</title>
    <hr>
    用户名:<%=user.getUsername()%><br>
    年龄:<%=user.getAge()%>
  </head>
  <body>
  </body>
</html>    

    2:在Jsp页面中通常使用jsp动作标签使用javabean

        <jsp:useBeans>:在jsp页面中实例化或者在指定范围内使用javabean <jsp:useBean id="标识符" class="java类名" scope="作用范围" />

        <jsp:setProperty>:给已经实例化的javabean对象的属性赋值,一共有四种形式:

        <jsp:setProperty name="javabean实例名" property="*" />(跟表单关联)

        <jsp:setProperty name="javabean实例名"  property="javabean属性名" />(跟表单关联)

        <jsp:setProperty name="javabean实例名" property="javabean属性名" value="BeanVlaue" />(手工设置)

      <jsp:setProperty name="javabean实例名" property="propertyName" param="request对象中的参数名">(跟request关联)    

 
login.jsp页面

<html>
<head>
    <title>用户信息填写页面</title>
</head>
<body>
    <form name="loginForm" action="doLogin.jsp" method="post">
        <table>
            <tr>
                <td>用户名:</td>
                <td><input type="text" name="username" value=""></td>
            </tr>
            <tr>
                <td>年龄:</td>
                <td><input type="text" name="age" value=""></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="提交"></td>
            </tr>
        </table>
    </form>
</body>
</html>


dologin.jsp页面

<body>
    <jsp:useBean id="user" class="com.swpu.User" scope="request"></jsp:useBean>
    <!-- 第一种使用方法-->
    <jsp:setProperty name="user" property="*"/>
    用户名:<jsp:getProperty name="user" property="username"/><br>
    年龄:<jsp:getProperty name="user" property="age"/><br>
    <a href="testScope.jsp">测试javabean的作用域</a>
    <hr>
    <!--第二种使用方法-->
    <jsp:setProperty name="user" property="username"/>
    用户名:<%= user.getUsername()%><br>
    <jsp:setProperty name="user" property="age"/>
    年龄:<%=user.getAge()%>

    <hr>
    <!--第三种使用方法-->
    <jsp:setProperty name="user" property="username" value="tttt" />
    用户名:<%=user.getUsername()%><br>
    <jsp:setProperty name="user" property="age" value="15"/>
    年龄:<%=user.getAge()%>
</body>

 

       第四种方法是根据request 来传参的,所以

 

  <form name="loginForm" action="doLogin.jsp?name="ttt"&age=12" method="post">
  <jsp:setProperty name="user" property="username" param="name"/>
  <jsp:setProperty name="user" property="age" param="age"/>

        <jsp:getProperty >:获取指定javabean对象的属性值 <jsp:getProperty name="javabean实例" property="属性名" />

四:javabean的四个作用域范围

    1:page :仅在当前页面有效

    2:request:可以通过HttpRequest.getAttribute()方法取的javabean的对象,超链接表示一次新的请求,所以超链接之后的页面跟原页面不在同一个请求当中,可以用服务器跳转来解决这个问题。request.getRequestDispatcher().forward(req,resp)

    3:session  :可以通过HttpSession.getAttribute()方法取的javabean的对象

    4:application:可以通过application.getAttribute()方法取得javabean的对象

        用application来举例说明

<html>
<head>
    <title>setProperty的使用</title>
</head>
<body>
    <jsp:useBean id="user" class="com.swpu.User" scope="application"></jsp:useBean> //测试application
    <!-- 第一种使用方法-->
    <jsp:setProperty name="user" property="*"/>
    用户名:<jsp:getProperty name="user" property="username"/><br>
    年龄:<jsp:getProperty name="user" property="age"/><br>
    <a href="testScope.jsp">测试javabean的作用域</a>
</body>
</html>

<%@page import="com.swpu.User" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <jsp:useBean id="user" class="com.swpu.User" scope="application"/>
    <h1>测试javabean的四个作用域</h1>
    用户名:<jsp:getProperty name="user" property="username"/><br>
    年龄: <jsp:getProperty name="user" property="age"/>
    <hr>
    使用内置对象来获取
    用户名:<%= ((User)application.getAttribute("user")).getUsername()%><br>
    年龄:<%=((User)application.getAttribute("user")).getAge()%>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值