随笔 - 15, 文章 - 0, 评论 - 5, 引用 - 0
数据加载中……

2008年7月30日

4xx - 客户端错误

发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。 ·400 - 错误的请求。
·401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: ·401.1 - 登录失败。
·401.2 - 服务器配置导致登录失败。
·401.3 - 由于 ACL 对资源的限制而未获得授权。
·401.4 - 筛选器授权失败。
·401.5 - ISAPI/CGI 应用程序授权失败。
·401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。

·403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: ·403.1 - 执行访问被禁止。
·403.2 - 读访问被禁止。
·403.3 - 写访问被禁止。
·403.4 - 要求 SSL。
·403.5 - 要求 SSL 128。
·403.6 - IP 地址被拒绝。
·403.7 - 要求客户端证书。
·403.8 - 站点访问被拒绝。
·403.9 - 用户数过多。
·403.10 - 配置无效。
·403.11 - 密码更改。
·403.12 - 拒绝访问映射表。
·403.13 - 客户端证书被吊销。
·403.14 - 拒绝目录列表。
·403.15 - 超出客户端访问许可。
·403.16 - 客户端证书不受信任或无效。
·403.17 - 客户端证书已过期或尚未生效。
·403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。
·403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。
·403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。

·404 - 未找到。 ·404.0 -(无) – 没有找到文件或目录。
·404.1 - 无法在所请求的端口上访问 Web 站点。
·404.2 - Web 服务扩展锁定策略阻止本请求。
·404.3 - MIME 映射策略阻止本请求。

·405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许)
·406 - 客户端浏览器不接受所请求页面的 MIME 类型。
·407 - 要求进行代理身份验证。
·412 - 前提条件失败。
·413 – 请求实体太大。
·414 - 请求 URI 太长。
·415 – 不支持的媒体类型。
·416 – 所请求的范围无法满足。
·417 – 执行失败。
·423 – 锁定的错误。

posted @ 2008-08-04 14:16 zhouzhou@ 阅读(306) | 评论 (1)编辑 收藏

小结 Commons BeanUtils

 

Commons BeanUtils 的官方网址:http://commons.apache.org/beanutils/

Commins BeanUtils是针对JavaBeans一般性操作的组件,可以用来对JavaBeans进行复制,属性的读取,设置,修改,还以动态构造JavaBeans对象。

使用这个组件需要三个Jar文件
其中两个是 commons-logging-1.1.1下的commons-logging-1.1.1.jar 和commons-logging-api-1.1.1.jar
剩下一个是   commons-beanutils-1.8.0-BETA   下的commons-beanutils-1.8.0-BETA.jar
把这三个加入到项目的构件路径下即可。

下面为一个简单的例子

新建User Profile Address BeanUtilsExample 四个类


1 User.java

package com.v503.zhouzhou;

public class User {
 private Long userId;
 private String username;
 private String password;
 private Profile profile;

 public Long getUserId() {
  return userId;
 }

 public  void setUserId(Long userId) {
  this.userId = userId;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public Profile getProfile() {
  return profile;
 }

 public void setProfile(Profile profile) {
  this.profile = profile;
 }

}

2 Profile.java

package com.v503.zhouzhou;

import java.util.Date;
import java.util.Map;

 

public class Profile {
 private Map<String, String> phone;
 private Address[] address;
 private Date birthDate;
 private String email;

 public Map<String, String> getPhone() {
  return phone;
 }

 public void setPhone(Map<String, String> phone) {
  this.phone = phone;
 }

 public Address[] getAddress() {
  return address;
 }

 public void setAddress(Address[] address) {
  this.address = address;
 }

 public Date getBirthDate() {
  return birthDate;
 }

 public void setBirthDate(Date birthDate) {
  this.birthDate = birthDate;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

}



3 Address.java

package com.v503.zhouzhou;

public class Address {
 private String postCode;
 private String country;
 private String city;
 private String addr;

 public Address() {

 }

 public Address(String postCode, String country, String city, String addr) {
  this.postCode = postCode;
  this.country = country;
  this.city = city;
  this.addr = addr;
 }

 public String getPostCode() {
  return postCode;
 }

 public void setPostCode(String postCode) {
  this.postCode = postCode;
 }

 public String getCountry() {
  return country;
 }

 public void setCountry(String country) {
  this.country = country;
 }

 public String getCity() {
  return city;
 }

 public void setCity(String city) {
  this.city = city;
 }

 public String getAddr() {
  return addr;
 }

 public void setAddr(String addr) {
  this.addr = addr;
 }

}



4 BeanUtilsExample.java


package com.v503.zhouzhou;

import java.lang.reflect.InvocationTargetException;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;


public class BeanUtilsExamples {

 @SuppressWarnings("unused")
 private User prepareData() {
  Address[] address = { new Address("111111", "中国", "保定", "河北大学"),
    new Address("22222", "中国", "保定", "河北大学工商学院") };
  Profile profile = new Profile();
  profile.setBirthDate(new GregorianCalendar(1987, 04, 17).getTime());
  profile.setEmail("aa1987417@126.com");
  Map<String, String> phone = new HashMap<String, String>();
  phone.put("mobilephone", "1532222706");
  phone.put("home", "110");
  profile.setPhone(phone);
  profile.setAddress(address);

  User user = new User();
  user.setUserId(new Long(503));
  user.setUsername("zhouzhou");
  user.setProfile(profile);
  user.setPassword("hicc");
  return user;

 }

 public static void main(String[] args) {
  BeanUtilsExamples a = new BeanUtilsExamples();
  User user = a.prepareData();
  System.out.println("输出对象的属性值---------------------------------");
  try {
   System.out.println(BeanUtils.getProperty(user, "userId"));       //BeanUtils中读取属性的方法getProperty()
   System.out.println(BeanUtils.getProperty(user, "username"));
   System.out.println(BeanUtils.getProperty(user, "password"));
   System.out.println(BeanUtils.getProperty(user, "profile.email"));
   System.out.println(BeanUtils.getProperty(user, "profile.birthDate"));
   System.out.println(BeanUtils.getProperty(user, "profile.phone(home)"));
   System.out.println(BeanUtils.getProperty(user, "profile.phone(mobilephone)"));
   System.out.println(BeanUtils.getProperty(user, "profile.address[0].city"));
   System.out.println(PropertyUtils.getProperty(user, "profile.address[1].country"));
   
   User user2 = new User();
   BeanUtils.copyProperties(user2, user); //BeanUtils中复制属性的方法getProperty()

   System.out.println("输出复制属性的属性值-------------------------------");
   System.out.println(BeanUtils.getProperty(user, "username"));
   System.out.println(BeanUtils.getProperty(user, "profile.birthDate"));
   System.out.println(BeanUtils.getProperty(user, "profile.phone(home)"));
   System.out.println(BeanUtils.getProperty(user, "profile.address[0].city"));
   
   
   System.out.println("输出复制属性修改以后的属性值---------------------");
   BeanUtils.setProperty(user2, "userId", new Long(8888888));   //设置属性的方法
   PropertyUtils.setProperty(user2, "username", "周旭");
   BeanUtils.setProperty(user2, "profile.email", "549748067@qq.com");
   BeanUtils.setProperty(user2, "profile.birthDate", new GregorianCalendar(2008, 8, 1).getTime());
   BeanUtils.setProperty(user2, "profile.address[0]", new Address("6666666", "中国","紫园","保定"));
   System.out.println(BeanUtils.getProperty(user2, "userId"));
   System.out.println(BeanUtils.getProperty(user2, "username"));
   System.out.println(BeanUtils.getProperty(user2, "profile"));
   System.out.println(BeanUtils.getProperty(user2, "profile.email"));
   System.out.println(BeanUtils.getProperty(user2, "profile.birthDate"));
   System.out.println(BeanUtils.getProperty(user2, "profile.address[0].city"));

   System.out.println("与被复制属性值的对象的比较-------------------------------");
   System.out.println(BeanUtils.getProperty(user, "userId"));
   System.out.println(BeanUtils.getProperty(user, "username"));
   System.out.println(BeanUtils.getProperty(user, "profile"));
   System.out.println(BeanUtils.getProperty(user, "profile.email"));
   System.out.println(BeanUtils.getProperty(user, "profile.birthDate"));
   System.out.println(BeanUtils.getProperty(user, "profile.address[0].city"));
  } catch (IllegalAccessException e) {

   e.printStackTrace();
  } catch (InvocationTargetException e) {

   e.printStackTrace();
  } catch (NoSuchMethodException e) {

   e.printStackTrace();
  }

 }

}


 




 

posted @ 2008-08-01 10:38 zhouzhou@ 阅读(588) | 评论 (0)编辑 收藏

JavaBeans对象的作用范围

        作用范围            对应的对象         对象的类型
         page                    pageContext          pagetext
         request                request                  servletRequest
         session                session                   HttpSession
         application           application             servletContext


page:只对当前页面有效

request:在当前页面有效,同时当这个页面通过forward方式转向另外页面或通过include方式包含另外页面,在这些另外的页面也有效

session:可以访问其他的jsp页面中,作用范围跨页面,但只针对一个特定的用户

application:任何用户创建一个JavaBeans对象,所用户都可以使用这个对象

posted @ 2008-07-30 17:12 zhouzhou@ 阅读(170) | 评论 (0)编辑 收藏

JS验证方法

 <!--  
  说明:每个校验函数默认都不校验要求的输入长度,只有当用户有输入的时候才开始校验;  
              这样设计的目的是因为实际应用中有的表单是可以不要输入的,如果某个表单域要求一定输入,  
      那就可以象最后那个表单域一样加入长度校验。  
  -->  
  <HTML><HEAD><TITLE>FormCheck</TITLE>  
  <META   http-equiv=Content-Type   content="text/html;   charset=gb2312">  
  <STYLE>TD   {FONT-SIZE:   12px;   COLOR:   #333333}</STYLE>  
  <SCRIPT   language=JavaScript   type=text/JavaScript    
   >

 /*焦点放置在第一个表单域*/  
  function   focusInFirst(){  
    document.forms[0].elements[0].focus();}  
   
  /*判断用户输入是否为空*/  
  function   isEmpty(ui)   {  
    return   (ui==null||ui=="");}  
   
  /*取得用户输入的字符串的长度*/  
  function   getLength(ui)   {  
    var   i,sum=0;  
    for(i=0;i<ui.length;i++)   {  
      if   ((ui.charCodeAt(i)>=0)   &&   (ui.charCodeAt(i)<=255))  
        sum++;  
          else  
    sum+=2;}  
    return   sum;}  
   
  /*是否为数字、字母或下划线*/  
  function   isNLU(ui)   {  
      var   valid=/^\w*$/;  
      return   (valid.test(ui));}  
   
  /*判断是否为身份证号码*/  
  function   isIdno(ui){  
      var   valid=/(^\d{16}$)|(^\d{18}$)/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为邮政编码*/  
  function   isPostCode(ui){  
      var   valid=/^\d{6}$/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为固定电话*/  
  function   isChinaTel(ui){  
      var   valid=/^0\d{2,3}\-\d{7,8}$/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为移动电话*/  
  function   isChinaMob(ui){  
      var   valid=/^0?13[0,1,3,5,6,8,9]\d{8}$/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为电话,只能为固定电话或移动电话*/  
  function   isTel(ui){  
      var   valid=/(^0\d{2,3}\-\d{7,8}$)|(^0?13[0,1,3,5,6,8,9]\d{8}$)/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为邮件*/  
  function   isMail(ui){  
    if(isEmpty(ui)){return   true;}  
      var   notValid=/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(^\-)|(\-\.)|(\.\-)/;  
      var   valid=/^.+\@[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/;  
    return   (!notValid.test(ui)&&valid.test(ui));}  
   
  /*用户输入字符串长度是否在两值之间*/  
  function   isLenBetween(ui,minl,maxl)   {  
      return   (ui>=minl&&ui<=maxl);}

 


</SCRIPT>  
   
  <SCRIPT   language=JavaScript>  
  <!--  
  function   formCheck(){  
  if(!isIdno(document.testForm.id.value)){  
    alert("身份证号码输入有误!要求只能输入数字,长度为16或18位。");  
    document.testForm.id.focus();  
    return   false;}  
  if(!isChinaTel(document.testForm.tel.value)){  
    alert("固定电话号码输入有误!合法的格式为:区号-电话号码。");  
    document.testForm.tel.focus();  
    return   false;}  
  if(!isChinaMob(document.testForm.mobi.value)){  
    alert("移动电话号码输入有误!");  
    document.testForm.mobi.focus();  
    return   false;}  
  if(!isMail(document.testForm.mail.value)){  
    alert("邮箱输入有误!");  
    document.testForm.mail.focus();  
    return   false;}  
  if(!isPostCode(document.testForm.post.value)){  
    alert("邮政编码输入有误!要求只能输入数字,长度为6位。");  
    document.testForm.post.focus();  
    return   false;}  
  if(!isNLU(document.testForm.nlu.value)){  
    alert("该域只能输入数字、字母或下划线!");  
    document.testForm.nlu.focus();  
    return   false;}  
  var   len=getLength(document.testForm.leng.value);  
  if(len<4||len>6){  
    alert("该域要求输入长度范围是4至6个字符!");  
    document.testForm.leng.focus();  
    return   false;}  
  }  
  //-->  
  </SCRIPT>  
   
  <BODY   text=#000000   bgColor=#ffffff   onload=focusInFirst()>  
  <CENTER><B><FONT   face="Geneva,   Arial,   Helvetica,   san-serif"   color=#ff6600    
  size=4>The   sample   of   FormCheck</FONT></B>   <FONT    
  face="Arial,   Helvetica,   sans-serif"   size=2>(By   Roczhao)   </FONT>  
  <HR   width="60%"   color=#000000   noShade   SIZE=1>  
   
  <FORM   name=testForm   onsubmit="return   formCheck();"   method=post>  
  <TABLE   cellSpacing=0   cellPadding=0   width=500   border=1>  
      <TBODY>  
      <TR>  
          <TD   width=182   height=25>身份证:</TD>  
          <TD   width=312><INPUT   name=id>   </TD></TR>  
      <TR>  
          <TD   width=182   height=25>固定电话:</TD>  
          <TD   width=312><INPUT   name=tel>   </TD></TR>  
      <TR>  
          <TD   width=182   height=25>手机号码:</TD>  
          <TD   width=312><INPUT   name=mobi>   </TD></TR>  
      <TR>  
          <TD   width=182   height=25>邮箱:</TD>  
          <TD   width=312><INPUT   name=mail>   </TD></TR>  
      <TR>  
          <TD   width=182   height=25>邮编:</TD>  
          <TD   width=312><INPUT   name=post>   </TD></TR>  
      <TR>  
          <TD   width=182   height=25>只能输入数字、字母、下划线:</TD>  
          <TD   width=312><INPUT   name=nlu>   </TD></TR>  
      <TR>  
          <TD   width=182   height=25>输入长度在4-6之间:</TD>  
          <TD   width=312><INPUT   name=leng>   </TD></TR>  
      <TR   align=center>  
          <TD   colSpan=2   height=25><INPUT   type=submit   value="     点击测试     "   name=Submit>    
          </TD></TR></TBODY></TABLE></FORM></CENTER></BODY></HTML>  
   
   
   
  /*js函数文件   formcheck.js*/  
   
  /*------------------------------------------------------------------------------  
    *   File:   formcheck.js   
    *   Description:FormCheck组件的函数库文件(部分),共计110个方法  
    *------------------------------------------------------------------------------*/  
  /*焦点放置在第一个表单域*/  
  function   focusInFirst(){  
    document.forms[0].elements[0].focus();}  
   
  /*判断用户输入是否为空*/  
  function   isEmpty(ui)   {  
    return   (ui==null||ui=="");}  
   
  /*取得用户输入的字符串的长度*/  
  function   getLength(ui)   {  
    var   i,sum=0;  
    for(i=0;i<ui.length;i++)   {  
      if   ((ui.charCodeAt(i)>=0)   &&   (ui.charCodeAt(i)<=255))  
        sum++;  
          else  
    sum+=2;}  
    return   sum;}  
   
  /*是否为数字、字母或下划线*/  
  function   isNLU(ui)   {  
      var   valid=/^\w*$/;  
      return   (valid.test(ui));}  
   
  /*判断是否为身份证号码*/  
  function   isIdno(ui){  
      var   valid=/(^\d{16}$)|(^\d{18}$)/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为邮政编码*/  
  function   isPostCode(ui){  
      var   valid=/^\d{6}$/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为固定电话*/  
  function   isChinaTel(ui){  
      var   valid=/^0\d{2,3}\-\d{7,8}$/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为移动电话*/  
  function   isChinaMob(ui){  
      var   valid=/^0?13[0,1,3,5,6,8,9]\d{8}$/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为电话,只能为固定电话或移动电话*/  
  function   isTel(ui){  
      var   valid=/(^0\d{2,3}\-\d{7,8}$)|(^0?13[0,1,3,5,6,8,9]\d{8}$)/;  
      return   (isEmpty(ui)||valid.test(ui));}  
   
  /*判断是否为邮件*/  
  function   isMail(ui){  
    if(isEmpty(ui)){return   true;}  
      var   notValid=/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(^\-)|(\-\.)|(\.\-)/;  
      var   valid=/^.+\@[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/;  
    return   (!notValid.test(ui)&&valid.test(ui));}  
   
  /*用户输入字符串长度是否在两值之间*/  
  function   isLenBetween(ui,minl,maxl)   {  
      return   (ui>=minl&&ui<=maxl);}

posted @ 2008-07-30 10:57 zhouzhou@ 阅读(349) | 评论 (0)编辑 收藏

一个简单js验证的例子

<html>
 <head>
  <title>潜在用户网络调查</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <script language="javascript">
 function validate(myform){
    if(myform.name.value.length==0){
       alert("请填写用户名!");
       myform.name.focus();
       return false;
    }
   
   
    if(myform.password.value.length==0){
       alert("密码不能为空!");
       myform.password.focus();
       return false;
    }
 } 
 </script>
 </head>
 <body>
  <form name="form1" method="POST" action="/servlet/loginlorm1"
   id="form1" onsubmit="return validate(this)">
   <table border="0">
    <tr>
     <td align="right">
      姓名:
     </td>
     <td colspan="2" align="left">
      <input type="text" name="name" size="40">
     </td>
    </tr>
    <tr>
     <td align="right">
      密码:
     </td>
     <td colspan="2" align="left">
      <input type="password" name="password" size="40">
     </td>
     <td>
      <input type="reset" value="reset">
      <input type="submit" value="submit">
     </td>
    </tr>

   </table>
  </form>
 </body>
</html>

 

posted @ 2008-07-30 10:51 zhouzhou@ 阅读(268) | 评论 (0)编辑 收藏