JSP 之JavaBean

JavaBean 简介

  • JavaBeans 就是符合某种特定规范的 Java 类。使用 JavaBeans 的好处是解决代码重复编写,减少代码的冗余,功能区分明确,提高了代码的维护性。

  • JavaBeans 的设计原则

    1. 公有类
    2. 私有属性
    3. 无参的公有构造方法
    4. getter 和 setter 方法(特别注意 setter 方法名一定要和属性变量名一致,比如有属性为username,必须为setUsername 若 setter 为 setName(),则会发生空指针问题)
  • 以下这个类就满足

                        代码 1
//公有类
public class JavaBeans {
    //私有成员属性
    private String nameString;
    private String ageString;
    public JavaBeans() {
        //无参公有构造方法
    }
    //getter 和 setter 方法
    public String getNameString() {
        return nameString;
    }
    public void setNameString(String nameString) {
        this.nameString = nameString;
    }
    public String getAgeString() {
        return ageString;
    }
    public void setAgeString(String ageString) {
        this.ageString = ageString;
    }
    
}

JSP 动作元素

  • 什么是 JSP 的动作:JSP 的动作元素(action elements),动作元素为请求处理阶段提供信息;动作元素遵循 Xml 元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签

  • 第一类是与存取 JavaBean 有关的,包括:

    1. < jsp:useBean> < jsp:setProperty> < jsp:getProperty>
  • 其他类请看官方API

JavaBean 的使用

  • 像使用普通 java 类一样,创建 javabean 类的实例

  • 在 Jsp 页面中通常使用 Jsp 动作标签使用 javabean

    1. useBean 动作
    2. setProperty 动作
    3. getProperty 动作
  • < jsp:useBeans>作用,在 Jsp 页面中实例化或者指定范围内使用 javabean:

    • < jsp:useBean id="提示符" class="java类名" scope ="作用范围"/>

< jsp:setProperty>

  • < jsp:setProperty>作用,给已实例化了的 javabean 对象的属性赋值,一共有四种形式
    1. < jsp:setProperty name="JavaBean实例名" property ="*"/>(跟表单关联)
    2. < jsp:setProperty name="JavaBean实例名" property ="JavaBean属性名"/>(跟表单关联)
    3. < jsp:setProperty name="JavaBean实例名" property ="JavaBean属性名" value="BeanValue"/>(手工设置)
    4. < jsp:setProperty name="JavaBean实例名" property ="propertyNam" param="request对象中的参数名"/>(跟request对象中的参数有关)
  • 结合以下代码分析
                   代码    2 login.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <h1>系统登录</h1>
    <hr>
    <form name="loginForm" action="dologin.jsp?mypass=999999" method="post">
      <table>
        <tr>
          <td>用户名:</td>
          <td><input type="text" name="username" value=""/></td>
        </tr>
        <tr>
          <td>密码:</td>
          <td><input type="password" name="password" value=""/></td>
        </tr>
        <tr>
          <td colspan="2" align="center"><input type="submit" value="登录"/></td>
          
        </tr>
      </table>
    </form>
  </body>
</html>

            代码 3     dologin.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'dologin.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
    <h1>setProperty动作元素</h1>
    <hr>
   <!--根据表单自动匹配所有的属性 -->
   <%-- 
   <jsp:setProperty name="myUsers" property="*"/>  
   --%>
   <!--根据表单匹配所有部分的属性 -->
   <%-- 
   <jsp:setProperty name="myUsers" property="username"/>  
   --%>
   <!--根表单无关,通过手工赋值给属性 -->
   <%-- 
   <jsp:setProperty name="myUsers" property="username" value="lisi"/>
   <jsp:setProperty name="myUsers" property="password" value="888888"/>
   --%>
   <!--通过URL传参数给属性赋值 -->
   <jsp:setProperty name="myUsers" property="username"/>
   <jsp:setProperty name="myUsers" property="password" param="mypass"/>
   <!-- 使用传统的表达式方式来获取用户名和密码 -->
   <%--     
       用户名:<%=myUsers.getUsername() %><br>
       密码:<%=myUsers.getPassword() %><br> 
   --%>
   <!-- 使用getProperty方式来获取用户名和密码 -->
      用户名:<jsp:getProperty name="myUsers" property="username"/> <br>
      密码:<jsp:getProperty name="myUsers" property="password"/><br>
   <br>
   <br>
      <a href="testScope.jsp">测试javabean的四个作用域范围</a>
      <% 
         request.getRequestDispatcher("testScope.jsp").forward(request, response);
      %>
  </body>
</html>

< jsp:getProperty>

  • 输出 < jsp:getProperty property="JavaBean实例属性" name="JavaBean实例对象">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、jsp定义及作用 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网...
    yzw12138阅读 5,063评论 0 0
  • 前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入...
    伊豚wall阅读 8,635评论 2 56
  • JSP 基本结构JSP 页面组成:模板文本(HTML,XML,纯文本),JSP 元素;JSP 元素:脚本元素,指令...
    jslancer阅读 4,606评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,670评论 18 399
  • 什么是jsp? 很久之前,我们的网页都是静态的,就是我们所看到的页面在编写好之后总是唯一的。后来有人便提出动态页面...
    ezsync小智阅读 5,515评论 0 13

友情链接更多精彩内容