欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javaweb学习--javabean

程序员文章站 2022-07-10 11:17:27
阅读电子书《Java Web从入门到精通》密码:461c,学习JavaWeb基础知识 JavaBean类似于.net的实体类,但是规则上稍复杂一些,能实现的功能也多一些 一、介绍 1、规则 1 package com.lyq.bean; 2 3 /** 4 * 新闻(乱码处理) 5 * @autho ......

阅读电子书《java web从入门到精通》密码:461c,学习javaweb基础知识

javabean类似于.net的实体类,但是规则上稍复杂一些,能实现的功能也多一些

一、介绍

1、规则

javaweb学习--javabean
 1 package com.lyq.bean;
 2 
 3 /**
 4  * 新闻(乱码处理)
 5  * @author administrator
 6  *
 7  */
 8 public class news {
 9     private string title;
10     private string content;
11 
12     public string gettitle() {
13         return this.title;
14     }
15 
16     public void settitle(string title) {
17         this.title = title;
18     }
19 
20     public string getcontent() {
21         return this.content;
22     }
23 
24     public void setcontent(string content) {
25         this.content = content;
26     }
27 }
view code

可无构造函数,每个属性都是私有,使用setxx赋值getxx取值。若有默认值,可自行添加构造函数处理

2、使用

在jsp页面中使用以下代码实例化使用 

javaweb学习--javabean
1 <jsp:usebean id="自定义id" class="javabean类的全路径"></jsp:usebean>
view code

以下代码赋值

javaweb学习--javabean
1 <jsp:setproperty property="属性名" name="自定义的javabean的id" />
view code

 以下代码取值

javaweb学习--javabean
1 <jsp:getproperty property="属性值" name="自定义的javabean的id" />
view code
javaweb学习--javabean
1 自定义javabea的id.getxx()
view code

 完成代码为

javaweb学习--javabean
1 <form action="news_release.jsp" method="post">
2         <b>新闻发布</b><br />
3     标题:<input name="title" id="title" /><br />
4     内容:<textarea name="content" id="content" rows="8" cols="40"></textarea><br />
5     <input type="submit" value="发布" />
6 </form>
view code
javaweb学习--javabean
1 <jsp:usebean id="news" class="com.lyq.bean.news"></jsp:usebean>
2 <jsp:usebean id="encoding" class="com.lyq.bean.charactorencoding"></jsp:usebean>
3 <jsp:setproperty property="*" name="news" />
4 <div><%= encoding.tostring(news.gettitle()) %></div><br />
5 <div><%= encoding.tostring(news.getcontent()) %></div><br />
view code
javaweb学习--javabean
 1 package com.lyq.bean;
 2 
 3 import java.io.unsupportedencodingexception;
 4 
 5 /**
 6  * 乱码处理类
 7  * 
 8  * @author administrator
 9  *
10  */
11 public class charactorencoding {
12     /**
13      * 构造方法
14      */
15     public charactorencoding() {
16 
17     }
18 
19     /**
20      * 对字符串进行转码处理
21      * 
22      * @param str
23      *            要转码的字符串
24      * @return 编码后的字符串
25      */
26     public string tostring(string str) {
27         string text = "";
28         if (str == null || "".equals(str))
29             return text;
30         try{
31             text = new string(str.getbytes("iso-8859-1"), "utf-8");
32         }catch(unsupportedencodingexception e){
33             e.printstacktrace();
34         }
35         
36         return text;
37     }
38 }
view code

 二、使用案例

1、邮箱验证

  jsp页面

javaweb学习--javabean
1 <form action="email_result.jsp" method="post">
2 邮箱格式验证<br />
3 邮箱地址:<input type="text" name="mailadd" id="mailadd" /><br />
4 <input type="submit" value="验证" />
5 </form>
view code

  jsp验证结果页面

javaweb学习--javabean
 1 <body>
 2     <div align="center">
 3         <%
 4             string mailadd = request.getparameter("mailadd");
 5             email email = new email(mailadd);
 6             if (email.isemail()) {
 7                 out.print(mailadd + " <br />是一个标准的邮箱地址!<br />");
 8             } else {
 9                 out.print(mailadd + " <br />不是一个标准的邮箱地址!<br />");
10             }
11         %>
12         <a href="email.jsp">返回</a>
13     </div>
14 </body>
view code

javabean代码

javaweb学习--javabean
 1 package com.lyq.bean;
 2 
 3 import java.io.serializable;
 4 
 5 /**
 6  * 邮箱类
 7  * 
 8  * @author administrator
 9  *
10  */
11 public class email implements serializable {
12     /**
13      * serialversionuid值
14      */
15     private static final long serialversionuid = 1l;
16     /**
17      * email地址
18      */
19     private string mailadd;
20     /**
21      * 是否是一个标准的email地址
22      */
23     private boolean email;
24 
25     /**
26      * 默认无参的构造函数
27      */
28     public email() {
29 
30     }
31 
32     /**
33      * 构造方法
34      * 
35      * @param mailadd
36      *            email地址
37      * @return
38      */
39     public email(string mailadd) {
40         this.mailadd = mailadd;
41     }
42 
43     /**
44      * 是否是一个标准的email地址
45      * 
46      * @return 布尔值
47      */
48     public boolean isemail() {
49         string regex = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
50         if (mailadd.matches(regex)) {
51             email = true;
52         }
53         return email;
54     }
55 
56     public string getmailadd() {
57         return mailadd;
58     }
59 
60     public void setmailadd(string mailadd) {
61         this.mailadd = mailadd;
62     }
63 
64 }
view code

 2、日期显示

jsp页面

javaweb学习--javabean
 1 <style type="text/css">
 2 #clock {
 3     width: 420px;
 4     height: 80px;
 5     background: #e0e0e0;
 6     font-size: 25px;
 7     font-weight: bold;
 8     border: solid 5px orange;
 9     padding: 20px;
10 }
11 
12 #week {
13     padding-top: 15px;
14     color: #0080ff;
15 }
16 </style>
17 <meta http-equiv="refresh" content="1"><%-- 页面1秒刷新一次,显示出时间效果 --%>
18 </head>
19 <body>
20     <jsp:usebean id="date" class="com.lyq.bean.datebean"
21         scope="application"></jsp:usebean>
22     <center>
23         <div id="clock">
24             <div id="time">
25                 <jsp:getproperty property="datetime" name="date" />
26             </div>
27             <div id="week">
28                 <jsp:getproperty property="week" name="date" />
29             </div>
30         </div>
31     </center>
32 </body>
view code

javabean代码

javaweb学习--javabean
 1 package com.lyq.bean;
 2 
 3 import java.text.simpledateformat;
 4 import java.util.calendar;
 5 import java.util.date;
 6 
 7 /**
 8  * 日期处理类
 9  * @author administrator
10  *
11  */
12 public class datebean {
13     private string datetime;
14     private string week;
15     private calendar calendar = calendar.getinstance();
16 
17     public string getdatetime() {
18         date currdate = calendar.getinstance().gettime();
19         simpledateformat sdf = new simpledateformat("yyyy年mm月dd日 hh点mm分ss秒");
20         this.datetime = sdf.format(currdate);
21         return this.datetime;
22     }
23 
24     public string getweek() {
25         string[] weeks = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
26         int index = calendar.get(calendar.day_of_week); // 获取一星期的某天
27         this.week = weeks[index - 1];
28         return this.week;
29     }
30 }
view code

 3、数组/字符串处理

jsp页面

javaweb学习--javabean
 1 <form action="paper_reg.jsp" method="post">
 2         <div>
 3             <h1>调查问卷</h1>
 4             <hr />
 5             <ul>
 6                 <li>你经常用哪些编程语言开发程序:</li>
 7                 <li><input type="checkbox" name="languages" value="java" id="languages0" /><label for="languages0">java</label>
 8                     <input type="checkbox" name="languages" value="php" id="languages1" /><label for="languages1">php</label> 
 9                     <input type="checkbox" name="languages" value=".net" id="languages2" /><label for="languages2">.net</label>
10                     <input type="checkbox" name="languages" value="vc++" id="languages3" /><label for="languages3">vc++</label>
11                     </li>
12             </ul>
13             <ul>
14                 <li>你目前掌握的技术:</li>
15                 <li><input type="checkbox" name="technics" value="html" />html
16                     <input type="checkbox" name="technics" value="javabean" />javabean 
17                     <input type="checkbox" name="technics" value="jsp" />jsp 
18                     <input type="checkbox" name="technics" value="servlet" />servlet</li>
19             </ul>
20             <ul>
21                 <li>在学习中哪一部分感觉有困难:</li>
22                 <li><input type="checkbox" name="parts" value="jsp" />jsp
23                     <input type="checkbox" name="parts" value="struts" />"struts"
24             </ul>
25             <input type="submit" value="提交" />
26         </div>
27     </form>
view code
javaweb学习--javabean
 1 <body>
 2     <jsp:usebean id="paper" class="com.lyq.bean.paper"></jsp:usebean>
 3     <jsp:usebean id="convert" class="com.lyq.bean.convert"></jsp:usebean>
 4     <jsp:setproperty property="*" name="paper" />
 5     <div>
 6         <h1>调查结果</h1>
 7         <hr />
 8         <li>你经常使用的编程语言:<%= convert.arr2str(paper.getlanguages()) %></li>
 9         <li>你目前掌握的技术:<%= convert.arr2str(paper.gettechnics()) %></li>
10         <li>在学习中哪一部分感觉有困难:<%= convert.arr2str(paper.getparts()) %></li>
11     </div>
12 </body>
view code

javabean代码

javaweb学习--javabean
 1 package com.lyq.bean;
 2 
 3 import java.io.serializable;
 4 
 5 /**
 6  * 数组转字符串
 7  * 
 8  * @author administrator
 9  *
10  */
11 public class paper implements serializable {
12     private static final long serialversionuid = 1l;
13     /**
14      * 语言
15      */
16     private string[] languages;
17     /**
18      * 技术
19      */
20     private string[] technics;
21     /**
22      * 难点
23      */
24     private string[] parts;
25 
26     public paper() {
27 
28     }
29 
30     public string[] getlanguages() {
31         return this.languages;
32     }
33 
34     public void setlanguages(string[] languages) {
35         this.languages = languages;
36     }
37 
38     public string[] gettechnics() {
39         return this.technics;
40     }
41 
42     public void settechnics(string[] technics) {
43         this.technics = technics;
44     }
45 
46     public string[] getparts() {
47         return this.parts;
48     }
49 
50     public void setparts(string[] parts) {
51         this.parts = parts;
52     }
53 }
view code
javaweb学习--javabean
 1 package com.lyq.bean;
 2 
 3 public class convert {
 4     /**
 5      * 将数组转成字符串
 6      * 
 7      * @param arr
 8      *            数组
 9      * @return 字符串
10      */
11     public string arr2str(string[] arr) {
12         stringbuffer sb = new stringbuffer();  //stringbuffer是可变长的对象,比使用string拼接效率更高
13         if (arr == null || arr.length == 0)
14             return sb.tostring();
15         for (string s : arr) {
16             sb.append(s);
17             sb.append(",");
18         }
19         if (sb.length() > 0)
20             sb = sb.deletecharat(sb.length() - 1);
21         return sb.tostring();
22     }
23 }
view code

4、不同方法接收页面参数

jsp页面

javaweb学习--javabean
1 <form action="person_reg.jsp" method="post">
2 <b>添加用户信息</b><br />
3 姓名:<input type="text" id="username" name="username" /><br />
4 年龄:<input type="text" id="age" name="age" /><br />
5 性别:<input type="text" id="sex" name="sex" /><br />
6 住址:<input type="text" id="add" name="add" /><br />
7 <input type="submit" value="提交" />
8 </form>
view code
javaweb学习--javabean
 1 <body>
 2     <%
 3         request.setcharacterencoding("utf-8"); //防止中文乱码
 4     %>
 5     <jsp:usebean id="person" class="com.lyq.bean.person" scope="page">
 6         <jsp:setproperty name="person" property="*" /><%-- 使用*接收所有参数,使用这种方式要求表单中的属性名与javabean的属性名一致 --%>
 7         <jsp:setproperty name="person" property="name" param="username" /><%--如果表单中的属性名(即参数)与javabean的属性名一致,则用param对其赋值 --%>
 8     </jsp:usebean>
 9     <div>
10         <ul>
11             <li>姓名:<jsp:getproperty property="name" name="person" /></li>
12             <li>年龄:<jsp:getproperty property="age" name="person" /></li>
13             <li>性别:<jsp:getproperty property="sex" name="person" /></li>
14             <li>住址:<jsp:getproperty property="add" name="person" /></li>
15         </ul>
16     </div>
17 </body>
view code

javabean代码

javaweb学习--javabean
 1 package com.lyq.bean;
 2 
 3 /**
 4  * 人员信息
 5  * @author administrator
 6  *
 7  */
 8 public class person {
 9     /**
10      * 姓名
11      */
12     private string name;
13     /**
14      * 年龄
15      */
16     private int age;
17     /**
18      * 性别
19      */
20     private string sex;
21     /**
22      * 住址
23      */
24     private string add;
25 
26     public string getname() {
27         return this.name;
28     }
29 
30     public void setname(string name) {
31         this.name = name;
32     }
33 
34     public int getage() {
35         return this.age;
36     }
37 
38     public void setage(int age) {
39         this.age = age;
40     }
41 
42     public string getsex() {
43         return this.sex;
44     }
45 
46     public void setsex(string sex) {
47         this.sex = sex;
48     }
49 
50     public string getadd() {
51         return this.add;
52     }
53 
54     public void setadd(string add) {
55         this.add = add;
56     }
57 }
view code