JAVA Bean
在JSP编程中,在不用javabean时,当我们需要引入其他包里的类时,则需要引入所在的包的那个类
譬如:
<%@ page import="packag1.Student" %>
jsp:useBean 创建 javabean
<jsp:useBean id="实例化对象名称" scope="保存范围" class="类完整名称"/>
//类完整名称既需要写出这个类所在的包。
//Scope,一共有 page,request,session 和 application4 个属性范围,默认是 page;(默认是当前页)
基本用法:
<body> <jsp:useBean id="student" scope="page" class="com.java1234.model.Student"/> <% student.setName("王二小2"); student.setAge(12); %> <h1>姓名:<%=student.getName() %></h1> <h1>年龄:<%=student.getAge() %></h1> </body>
当不用javabean,提取界面中的信息时:
需要用request
<body> <form action="javabean03-3.jsp" method="post"> <table> <tr> <td>姓名:</td> <td><input type="text" name="name"/></td> </tr> <tr> <td>年龄:</td> <td><input type="text" name="age"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"/></td> </tr> </table> </form> </body>
<body> <% request.setCharacterEncoding("utf-8");//防止乱码 String name=request.getParameter("name");//原始的方法,用request来提取信息 String age=request.getParameter("age"); Student student=new Student(); student.setName(name); student.setAge(Integer.parseInt(age)); %> <h1>姓名:<%=student.getName() %></h1> <h1>年龄:<%=student.getAge() %></h1> </body>
Javabean 的:setProperty
jsp:setProperty 设置 javabean 属性值
用表达式或字符串都可以设置bean的属性
value=“字符串”
value=“<%=ex%>”
第一种情况:
通过HTTP表单参数值设置Bean的属性
<jsp:setProperty name="bean的名字" property=“*”/>
通过HTTP表单参数值设置bean的属性时,表单参数的名字必须与bean属性的名字相同,服务器会根据名字自动匹配,类型自动转换
自动设置所有属性
<body> <% request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="student" scope="page" class="com.java1234.model.Student"/> <jsp:setProperty property="*" name="student"/>//自动设置所有属性 <h1>姓名:<%=student.getName() %></h1> <h1>年龄:<%=student.getAge() %></h1> </body>
第二种情况:
任意指定请求参数设置bean的属性
<body> <% request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="student" scope="page" class="com.java1234.model.Student"/> <jsp:setProperty property="name" name="student"/>//给具体的某一个属性导入赋值 <jsp:setProperty property="age" name="student" value="100"/>//也可以给设置一个默认的值 <h1>姓名:<%=student.getName() %></h1> <h1>年龄:<%=student.getAge() %></h1> </body>
第三种情况:
当引入的input的值和student类的属性名字不匹配时,可以用param在后面设置对应的属性名字
<body> <% request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="student" scope="page" class="com.java1234.model.Student"/> <jsp:setProperty property="name" name="student" param="userName"/> <jsp:setProperty property="age" name="student" value="100"/> <h1>姓名:<%=student.getName() %></h1> <h1>年龄:<%=student.getAge() %></h1> </body>
jsp:getProperty
获取 javabean 属性值
<jsp:getProperty property="属性名称" name="实例化对象的名称"
<body> <jsp:useBean id="student" scope="page" class="com.java1234.model.Student"/> <% student.setName("王二小2"); student.setAge(12); %> <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> <h1>年龄:<jsp:getProperty property="age" name="student"/></h1> </body>
javabean 的保存范围
Javabean 的保存范围有 page,request,session.application,默认是 page;
Request</head> <body> <jsp:useBean id="student" scope="request" class="com.java1234.model.Student"/> <jsp:setProperty property="name" name="student" value="王八蛋"/> <jsp:setProperty property="age" name="student" value="12"/> <jsp:forward page="target01.jsp"/> </body> ******************************************************************************** <body> <jsp:useBean id="student" scope="request" class="com.java1234.model.Student"/> <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> <h1>年龄:<jsp:getProperty property="age" name="student"/></h1> </body>session.
<body> <jsp:useBean id="student" scope="session" class="com.java1234.model.Student"/> <jsp:setProperty property="name" name="student" value="王八蛋"/> <jsp:setProperty property="age" name="student" value="12"/> <h1>Session数据设置完毕!</h1> </body> <body> <h1>Session中取值</h1> <jsp:useBean id="student" scope="session" class="com.java1234.model.Student"/> <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> <h1>年龄:<jsp:getProperty property="age" name="student"/></h1> </body>
application
<body> <jsp:useBean id="student" scope="application" class="com.java1234.model.Student"/> <jsp:setProperty property="name" name="student" value="李四"/> <jsp:setProperty property="age" name="student" value="13"/> <h1>Application数据设置完毕!</h1> </body> <body> <h1>Application中取值</h1> <jsp:useBean id="student" scope="application" class="com.java1234.model.Student"/> <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> <h1>年龄:<jsp:getProperty property="age" name="student"/></h1> </body>
javabean 删除
Page 范围:pageContext.removeAttribute(“javaBean Name”);
request 范围:request.removeAttribute(“javaBean Name”);
session 范围:session.removeAttribute(“javaBean Name”);
application 范围:application.removeAttribute(“javaBean Name”