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、规则
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 }
可无构造函数,每个属性都是私有,使用setxx赋值getxx取值。若有默认值,可自行添加构造函数处理
2、使用
在jsp页面中使用以下代码实例化使用
1 <jsp:usebean id="自定义id" class="javabean类的全路径"></jsp:usebean>
以下代码赋值
1 <jsp:setproperty property="属性名" name="自定义的javabean的id" />
以下代码取值
1 <jsp:getproperty property="属性值" name="自定义的javabean的id" />
1 自定义javabea的id.getxx()
完成代码为
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>
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 />
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 }
二、使用案例
1、邮箱验证
jsp页面
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>
jsp验证结果页面
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>
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 }
2、日期显示
jsp页面
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>
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 }
3、数组/字符串处理
jsp页面
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>
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>
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 }
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 }
4、不同方法接收页面参数
jsp页面
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>
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>
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 }