1 UserBean.java
源代码
- package org.sunxin.ch09.beans;
- import java.io.Serializable;
- public class UserBean implements Serializable
- {
- private String name;
- private int ***;
- private String education;
- private String email;
-
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name=name;
- }
-
- public int get***()
- {
- return ***;
- }
-
- public void set***(int ***)
- {
- this.***=***;
- }
-
- public String getEducation()
- {
- return education;
- }
-
- public void setEducation(String education)
- {
- this.education=education;
- }
-
- public void setEmail(String email)
- {
- this.email=email;
- }
-
- public String getEmail()
- {
- return email;
- }
- }
2 reg.html
- <form action="reg.jsp" method="post">
- <table>
- <tr>
- <td>用户名:</td>
- <td><input type="text" name="name"></td>
- </tr>
- <tr>
- <td>性别:</td>
- <td>
- <input type="radio" name="***" value="1" checked>男
- <input type="radio" name="***" value="0">女
- </td>
- </tr>
- <tr>
- <td>学历</td>
- <td>
- <select size=1 name="education">
- <option value= "" selected>...</option>
- <option value="高中">高中</option>
- <option value="大学">大学</option>
- <option value="硕士">硕士</option>
- <option value="博士">博士</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>Email</td>
- <td><input type="text" name="mail"></td>
- </tr>
- <tr>
- <td><input type="reset" value="重填"></td>
- <td><input type="submit" value="提交"></td>
- </tr>
- </table>
- </form>
3 reg.jsp
- <%@ page contentType="text/html; charset=GB2312" %>
- <%
- request.setCharacterEncoding("GB2312");
- %>
- <jsp:useBean id="user" scope="session" class="org.sunxin.ch09.beans.UserBean">
-
- </jsp:useBean>
- <jsp:setProperty name="user" property="*"/>
- <jsp:setProperty name="user" property="email" param="mail"/>
- 注册成功!
代码第三行调用隐含的对象setCharacterEncoding()方法设置请求中文所使用的中文字符编码为GB2312
随后 使用 动作元素实例化UserBean。并设置UserBean对象的范围是session
第6 7行使用设置UserBean的属性同名的参数的值赋给匹配的属性。
因为reg.html页面的表单用于填写e-mail的文本域的名字是mail,和UserBean的属性email不同,所以
第7行再次调用元素,使用属性param指定请求对象中参数的名字。
4 userinfo.jsp
此页面可以从UserBean对象中获取用户提交的信息
- <%@ page contentType="text/html; charset=GB2312" %>
- <jsp:useBean id="user" scope="session" type="org.sunxin.ch09.beans.UserBean"/>
- 你的姓名:<jsp:getProperty name="user" property="name"/><br>
- 你的性别:<%
- int ***=user.get***();
- if(1==***)
- out.println("男");
- else if(0==***)
- out.println("女");
- %><br>
- 你的学历:<jsp:getProperty name="user" property="education"/><br>
- 你的Email:<jsp:getProperty name="user" property="email"/><br>
第二行的 JSP容器会在session范围中查找user所标识的UserBean对象,在reg.jsp中已经创建了UserBean对象,并且保存到session范围中,所以在这里可以直接从session中取出userBean对象。
第4 12 13行 利用动作来访问UserBean的属性。第5-11行,是利用通常的对象访问方式,调用user对象的get***()方法;来得到用户的性别
如果页面中需要访问已经存在的JavaBean对象,那么应该使用type来代替class属性。当对象不存在的时候。将抛出InstantiationException异常,这样就可以告诉我们程序中有错误存在。反之你使用了class属性,当JavaBean不存在的时候,一个新对象将会创建。这样可能让我们忽略一些隐藏的错误。
阅读(1634) | 评论(0) | 转发(0) |