愚僧

赢与输的差别通常是--不放弃

BlogJava 首页 新随笔 联系 聚合 管理
  23 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks

#


提供一套标准, 实现web服务器之间信息通讯, 接口调用
posted @ 2013-02-26 09:44 ywm 阅读(108) | 评论 (0)编辑 收藏


语法:
(select ...)
union [all] | intersect | minus
(select ...)

union              并集,排重, 排序
union all          并集, 排重
intersect         交集
minus             差

from : http://1632004.blog.163.com/blog/static/29991497201282653334529/
posted @ 2013-02-26 09:33 ywm 阅读(503) | 评论 (0)编辑 收藏

变量
1. 传值赋值和传地址赋值(&)
- 传地址比较适合大对象,如数组和对象类型, 这样赋值变量时效率更高.
- 只有变量才可以传地址赋值

同一内存

2. 预定义变量(数组形式存在)

$GLOBALS         当前脚本中全局范围内的有效的变量
$_SERVER         有WEB服务器设定或当前脚本的执行环境相关的变量
$_GET               get请求参数
$_POST             post请求参数
$_COOKIE         客户端传递至服务器的cookie
$_FILES            文件上传变量
$_ENV              执行环境变量
$_REQUEST      请求变量
$_SESSION       会话变量

3. 变量的范围
在include 和 require 引入的文件中有效
全局范围的变量在局部范围内(如函数体内)无效, 需要使用global(关键字或者globals数组)去声明使用全局变量.

4.静态变量
static $变量名;
其值会一直保存


5. 可变变量名
$vn = "varName";
$$vn = "varValue";
echo $varName;
结果 : 
varValue

6. 确定变量的类型
gettype()
array    : is_array()

float     : is_float()
integer  : is_int()
object   : is_object()
string    : is_string()


posted @ 2013-02-25 17:45 ywm 阅读(93) | 评论 (0)编辑 收藏

有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现

例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。


package web;

import java.util.Arrays;

/**
 * 有一个已经排序的数组(升序), 数组中可能有正数、负数或0,求数组中元素的绝对值最小的数, 要求,不能用顺序比较的方法 求绝对值最小的数
 * 
 * 
@author mayw
 
*/
public class FindMinValue {

    /**
     * 
     * 
@param source
     *            原数组
     * 
@return 绝对值最小的数
     * 
@throws Exception 
     
*/
    public static int[] getMinAbsoluteValue(final int[] source) throws Exception {
        int[] rvs = null;
        if(source==null){
            throw new Exception("非法的原数组, 对象为null");
        }
        int index = binarySearch(source,0);
        int insertPos = -1 - index;
        if(index >= 0){
            return new int[]{0}; // 存在0, 0绝对值最小 
        }else if(source.length==1){
            return new int[]{source[0]};
        }else if(insertPos == source.length){
            return new int[]{source[source.length - 1]};
        }else if(insertPos == 0){
            return new int[]{source[0]};
        }else if(Math.abs(source[insertPos]) > Math.abs(source[insertPos - 1])){
            return new int[]{source[insertPos - 1]};
        }else if(Math.abs(source[insertPos]) == Math.abs(source[insertPos - 1])){
            return new int[]{source[insertPos - 1],source[insertPos],};
        }else{
            return new int[]{source[insertPos]};
        }
//        int rv = index >= 0 ? 0
//                : source[insertPos == source.length ? source.length - 1
//                        : insertPos];
//        if(){
//            
//        }
//        return index >= 0 ? 0
//                : source[insertPos == source.length ? source.length - 1
//                : insertPos];
    }

    /**
     * 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
     * 
     * 
@param source
     *            要查找的目标数组
     * 
@param target
     *            要查找的数
     * 
@return 如果它包含在数组中,则返回搜索键的索引; 否则返回 (-(插入点) - 1)。 插入点
     *         被定义为将键插入数组的那一点:即第一个大于此键的元素索引, 如果数组中的所有元素都小于指定的键,则为 a.length。
     *         注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
     
*/
    public static int binarySearch(final int[] source, int target) {
        int low = 0;
        int high = source.length - 1;
        while(low<=high){
            int midIdx = (low+high)>>1; // 去中间索引
            int midVal = source[midIdx]; // 去中间值
            if(target < midVal){
                high = midIdx - 1; // 去中间索引的前半部分, 不包含中间索引
            }else if(target > midVal){
                low = midIdx + 1; // 去中间索引的后半部分, 不包含中间索引
            }else{
                return midIdx; // 返回当前索引
            }
        }
        return -low-1;
    }

    public static void main(String[] args) throws Exception {
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{0})));
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{-1})));
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{1})));
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{-4,-2,-1})));
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{-4,-2,-1,1,2,3,4})));
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{-4,-2,-1,2,3,4})));
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{-4,-2,-2,1,3,4})));
        System.out.println(Arrays.toString(getMinAbsoluteValue(new int[]{1,2,3,4})));
    }

}


from : http://www.cnblogs.com/nokiaguy/archive/2013/01/29/2881476.html
posted @ 2013-02-24 20:51 ywm 阅读(177) | 评论 (0)编辑 收藏

/* 参考 : http://www.w3school.com.cn/xmldom/dom_http.asp */
/*
 * 获取ajax对象
 
*/
function getXmlHttpRequest(){
    var xhr = null;
    if(typeof(XMLHttpRequest) != 'undefined'){
        xhr = new XMLHttpRequest();
    }else{
        xhr = new ActiveXObject("Microsoft.XMLHttp");
    }
    return xhr;
}

/*
 * post方式请求
 
*/
function post(url, queryString,fn){
    var xhr = getXmlHttpRequest();
    xhr.open('post',url,true);
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr.onreadystatechange=function(){
        if(xhr.readyState == 4){
            if(xhr.status == 200){
                fn.apply(this,[xhr]);
            }
        }
    };
    xhr.send(queryString);
}

/*
 * get方式请求
 
*/
function get(url,fn){
    var xhr = getXmlHttpRequest();
    xhr.open('get',url,true);
    xhr.onreadystatechange=function(){
        if(xhr.readyState == 4){
            if(xhr.status == 200){
                fn.apply(this,[xhr]);
            }
        }
    };
    xhr.send(null);
}

 /*
  * 测试
  
*/
post("ajax","",function(xhr){
    alert(xhr.responseText);
});
posted @ 2013-02-22 17:18 ywm 阅读(100) | 评论 (0)编辑 收藏


作用:
监听Container中对象状态的变化

可监听的对象:
  • ServletContext
  • HttpSession
  • ServletRequest
8个Listener接口和6个Event类:




from : http://www.blogjava.net/i369/articles/236313.html
posted @ 2013-02-22 11:08 ywm 阅读(104) | 评论 (0)编辑 收藏

posted @ 2013-02-22 11:00 ywm 阅读(107) | 评论 (0)编辑 收藏

test1.jsp=======================

<a href ="test.jsp?p=fuck">跳转到test2</a>

test2.jsp=======================

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

out.println("basePath:"+basePath);
out.println("<br/>");
out.println("getContextPath:"+request.getContextPath());
out.println("<br/>");
out.println("getServletPath:"+request.getServletPath());
out.println("<br/>");
out.println("getRequestURI:"+request.getRequestURI());
out.println("<br/>");
out.println("getRequestURL:"+request.getRequestURL());
out.println("<br/>");
out.println("getRealPath:"+request.getRealPath("/"));
out.println("<br/>");
out.println("getServletContext().getRealPath:"+getServletContext().getRealPath("/"));
out.println("<br/>");
out.println("getQueryString:"+request.getQueryString());

%>

请求路径:
http://localhost:8080/test/test.jsp?p=fuck

显示结果:

basePath:http://localhost:8080/test/

getContextPath:/test 
getServletPath:/test.jsp 
getRequestURI:/test/test.jsp 
getRequestURL:http://localhost:8080/test/test.jsp 
getRealPath:D:\Tomcat 6.0\webapps\test\ 
getServletContext().getRealPath:D:\Tomcat 6.0\webapps\test\ 
getQueryString:p=fuck

在一些应用中,未登录用户请求了必须登录的资源时,提示用户登录,此时要记住用户访问的当前页面的URL,当他登录成功后根据记住的URL跳回用户最后访问的页面:

String lastAccessUrl = request.getRequestURL() + "?" + request.getQueryString();

from : http://www.cnblogs.com/JemBai/archive/2010/11/10/1873764.html

posted @ 2013-02-22 10:56 ywm 阅读(92) | 评论 (0)编辑 收藏

1. 语法格式

  • 静态包含:<%@ include file="被包含页面" %>;
  • 动态包含:<jsp:include page="被包含页面" />。

 

2. 区别

  • 导入路径 : 静态包含是相对于被包含页面, 动态包含是相对于包含页面
  • 动态包含先编译成servlet然后包涵(2个servlet) , 静态包含先包含后解析成一个servlet
3.相同点
  • 公用一个request

 

 

posted @ 2013-02-21 23:10 ywm 阅读(149) | 评论 (0)编辑 收藏


全局变量
1. 方法外
  • var variableName = "variableValue";
  • variableName = "variableValue";
2. 方法内
  • variableName = "variableValue";
  • window.variableName = "variableValue";
局部变量
1. 方法内
  • var variableName = "variableValue";
posted @ 2013-02-21 17:09 ywm 阅读(98) | 评论 (0)编辑 收藏

仅列出标题
共3页: 上一页 1 2 3 下一页