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>
<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”