iLeichun

当前位置:首页

CSS+DIV实现圆角

分类:网页设计  来源:网络  时间:2010-12-17 23:42:19

方法一:使用"•"来当圆角:
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title></title>

    <script type="text/javascript">
      function doResize()
      {
           document.getElementById("box-contents").style.height=(document.documentElement.clientHeight-60)+"px";
      }
      window.onresize = doResize;
    </script>

    <style type="text/css">
        body
        {
            background-color: black;
            margin: 0px;
            padding: 0px;
            color: White;
            font: 16px arial;
        }
        #content
        {
            margin: auto;
            width: 780px;
            height: 100%;
            padding: 0 0;
        }
        div.rounded-box
        {
            position: relative;
            background-color: red;
            margin: 3px;
            width: 780px;
            padding: 0 0;
        }
        /*********************
GLOBAL ATTRIBUTES
*********************/div.top-left-corner, div.bottom-left-corner, div.top-right-corner, div.bottom-right-corner
        {
            position: absolute;
            width: 20px;
            height: 20px;
            background-color: black;
            overflow: hidden;
        }
        div.top-left-inside, div.bottom-left-inside, div.top-right-inside, div.bottom-right-inside
        {
            position: relative;
            font-size: 150px;
            font-family: arial;
            color: red;
            line-height: 40px;
        }
        /*********************
SPECIFIC ATTRIBUTES
*********************/div.top-left-corner
        {
            top: 0px;
            left: 0px;
        }
        div.bottom-left-corner
        {
            bottom: 0px;
            left: 0px;
        }
        div.top-right-corner
        {
            top: 0px;
            right: 0px;
        }
        div.bottom-right-corner
        {
            bottom: 0px;
            right: 0px;
        }
        div.top-left-inside
        {
            left: -8px;
        }
        div.bottom-left-inside
        {
            left: -8px;
            top: -17px;
        }
        div.top-right-inside
        {
            left: -25px;
        }
        div.bottom-right-inside
        {
            left: -25px;
            top: -17px;
        }
        div.box-contents
        {
            position: relative;
            padding: 8px;
            color: white;
        }
    </style>
</head>
<body onload="doResize();">
    <div id="content">
        <span>Header</span>
        <div class="rounded-box">
            <div class="top-left-corner">
                <div class="top-left-inside">
                    •</div>
            </div>
            <div class="bottom-left-corner">
                <div class="bottom-left-inside">
                    •</div>
            </div>
            <div class="top-right-corner">
                <div class="top-right-inside">
                    •</div>
            </div>
            <div class="bottom-right-corner">
                <div class="bottom-right-inside">
                    •</div>
            </div>
            <div class="box-contents" id="box-contents">
                Contents go here, but it must be at least two lines to look any good.
                <br>
                Contents go here, but it must be at least two lines to look any good.
                <br>
                Contents go here, but it must be at least two lines to look any good.
                <br>
            </div>
            <!-- end div.box-contents -->
        </div>
        <!-- end div.rounded-box -->
        <span>Footer</span>
    </div>
</body>
</html>
 

方法二:
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <style type="text/css">
        u.corner u
        {
            height: 1px;
            font-size: 1px;
            display: block;
            overflow: hidden; /*author: meizz*/
            text-decoration: none;
            background-color: green;
        }
        u.corner u.h1
        {
            margin: 0 5px;
        }
        u.corner u.h2
        {
            margin: 0 3px;
        }
        u.corner u.h3
        {
            margin: 0 2px;
        }
        u.corner u.h4
        {
            margin: 0 1px;
            height: 2px;
        }
    </style>
    <head>
        <body>
            <div>
                <u class="corner"><u class="h1"></u><u class="h2"></u><u class="h3"></u><u class="h4">
                </u></u>
                <div style="background-color: green; height: 200">
                    content</div>
                <u class="corner"><u class="h4"></u><u class="h3"></u><u class="h2"></u><u class="h1">
                </u></u>
            </div>
        </body>
</html>
 

方法三:
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title>无标题页</title>
    <style>
        .up1
        {
            overflow: hidden;
            height: 1px;
            margin-left: 4px;
            margin-right: 4px;
            background-color: Aqua;
            border-left: solid 1px Aqua;
            border-right: solid 1px Aqua;
        }
        .up2
        {
            overflow: hidden;
            height: 1px;
            margin-left: 3px;
            margin-right: 3px;
            border-left: solid 1px Aqua;
            border-right: solid 1px Aqua;
        }
        .up3
        {
            overflow: hidden;
            height: 1px;
            margin-left: 2px;
            margin-right: 2px;
            border-left: solid 1px Aqua;
            border-right: solid 1px Aqua;
        }
        .content
        {
            margin-left: 1px;
            margin-right: 1px;
            height: 100px; /*这里控件高度*/ /*background-color: Aqua;*/
            border-left: solid 1px Aqua;
            border-right: solid 1px Aqua;
        }
        .down1
        {
            overflow: hidden;
            height: 1px;
            margin-left: 2px;
            margin-right: 2px;
            border-left: solid 1px Aqua;
            border-right: solid 1px Aqua;
        }
        .down2
        {
            overflow: hidden;
            height: 1px;
            margin-left: 3px;
            margin-right: 3px;
            border-left: solid 1px Aqua;
            border-right: solid 1px Aqua;
        }
        .down3
        {
            overflow: hidden;
            height: 1px;
            margin-left: 4px;
            margin-right: 4px;
            background-color: Aqua;
            border-left: solid 1px Aqua;
            border-right: solid 1px Aqua;
        }
        .cell
        {
            width: 50px; /*这里控制宽度*/
        }
    </style>
</head>
<body>
    <div class="cell">
        <div class="up1">
        </div>
        <div class="up2">
        </div>
        <div class="up3">
        </div>
        <div class="content">
            这里放内容
        </div>
        <div class="down1">
        </div>
        <div class="down2">
        </div>
        <div class="down3">
        </div>
    </div>
</body>
</html>
 

CSS网页背景渐变色

分类:CSS  来源:网络  时间:2010-12-17 23:39:16

css渐变色

FILTER:progid:DXImageTransform.Microsoft.Gradient使用

语法:

filter:progid:DXImageTransform.Microsoft.Gradient(enabled=bEnabled,GradientType,startColorStr=iWidth,endColorStr=iWidth)

属性:enabled:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。   true | false

       true: 默认值。滤镜激活。

       false:滤镜被禁止。

       GradientType:可读写。整数值(Integer)。设置或检索色彩渐变的方向。1 | 0

       1:默认值。水平渐变。

       0:垂直渐变。

       startColorStr:可选项。字符串(String)。设置或检索色彩渐变的开始颜色和透明度。

       其格式为 #AARRGGBB 。 AA 、 RR 、 GG 、 BB 为十六进制正整数。

         取值范围为 00 - FF 。   RR 指定红色值, GG 指定绿色值, BB 指定蓝色值,

         AA 指定透明度。 00 是完全透明。 FF 是完全不透明。超出取值范围的值将被恢复为默认值。

       取值范围为 #FF000000 - #FFFFFFFF 。默认值为 #FF0000FF 。不透明蓝色。 

       EndColorStr:可选项。字符串(String)。设置或检索色彩渐变的结束颜色和透明度。参阅

         startColorStr 属性。默认值为 #FF000000 。不透明黑色。

程序举例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>无标题文档</title>

<style type="text/css">

<!--

body {

font-size: 12px;

filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, EndColorStr=#6699cc, StartColorStr=#ffffff);

height: 100%;

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

-->

</style>

</head>

<body>

<p> </p>

</body>

</html>

文字的渐变效果:

.FadeLine

{

padding-right: 0px;

border-top: #538f65 2px solid;

padding-left: 0px;

font-size: 22px;

filter: progid:DXImageTransform.Microsoft.Alpha(style=1,opacity=100,finishOpacity=10,startX=10,finishX=100);

padding-bottom: 0px;

margin: 0px;

color: #3366cc;

padding-top: 0px;

}

渐变起始颜色,ff为16进制透明度

endColorStr=#ffeeeeee

endColorStr为渐变结束颜色,ff为16进制透明度

gradientType=0

gradientType渐变方向,0为垂直方向, 1为水平方向(默认值为1)
 

CSS的查找匹配原理

分类:CSS  来源:网络  时间:2010-12-17 23:34:24

用了这么多年的CSS,现在才明白CSS的真正匹配原理,不知道你是否也跟我一样?看1个简单的CSS:

DIV#divBox p span.red{color:red;},按习惯我们对这个CSS 的理解是,浏览器先查找id为divBox的DIV元素,当找到后,再找其下的所有p元素,然后再查找所有span元素,当发现有span的class为red的时候,就应用该style。多么简单易懂的原理,可是这个理解却是完完全全相反、错误的。

匹配原理:

     浏览器CSS匹配不是从左到右进行查找,而是从右到左进行查找。比如之前说的 DIV#divBox p span.red{color:red;},浏览器的查找顺序如下:

  先查找html中所有class=’red’的span元素,找到后,再查找其父辈元素中是否有p元素,再判断p的父元素中是否有id为divBox的div元素,如果都存在则匹配上。

    浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。比如如下html和css:

 view sourceprint?01 <style>

02   DIV#divBox p span.red{color:red;}

03 <style>

04 <body>

05   <div id="divBox">

06     <p><span>s1</span></p>

07     <p><span>s2</span></p>

08     <p><span>s3</span></p>

09     <p><span class=’red’>s4</span></p>

10   </div>

11 </body>

  如果按从左到右查找,哪会先查找到很多不相关的p和span元素。而如果按从左到右的方式进行查找,则首先就查找到<span class=’red’>的元素。firefox称这种查找方式为key selector(关键字查询),所谓的关键字就是样式规则中最后(最右边)的规则,上面的key就是span.red。

简洁、高效的CSS:
      所谓高效的CSS就是让浏览器在查找style匹配的元素的时候尽量进行少的查找,下面列出一些我们常见的写CSS犯一些低效错误(也是我以前常常犯的错误,还老以为这样写才是高效的):
  
  1.不要在ID选择器前使用标签名
 一般写法:DIV#divBox
 更好写法:#divBox
 解释: 因为ID选择器是唯一的,加上div反而增加不必要的匹配。
 
  2.不要再class选择器前使用标签名
 一般写法:span.red
 更好写法:.red
 解释: 同第一条,但如果你定义了多个.red,而且在不同的元素下是样式不一样,则不能去掉,比如你css文件中定义如下:
     p.red{color:red;}
     span.red{color:#ff00ff}
     如果是这样定义的就不要去掉,去掉后就会混淆,不过建议最好不要这样写
  3.尽量少使用层级关系
 一般写法:#divBox p .red{color:red;}     
 更好写法:.red{..}
 
  4.使用class代替层级关系
 一般写法:#divBox ul li a{display:block;}     
 更好写法:.block{display:block;}

PS:看有些同学对从右到左的理论保持怀疑,下面贴出firefox和google的2篇相关css解释的文章,供大家参考

  mozilla firefox:https://developer.mozilla.org/en/Writing_Efficient_CSS

  google page-speed:http://code.google.com/intl/zh-CN/speed/page-speed/docs/rendering.html
 

Jsp中getAttribute和getParameter的区别

分类:Jsp  来源:网络  时间:2010-12-17 23:31:04

1.getAttribute是取得jsp中用setAttribute設定的attribute
2.parameter得到的是string;attribute得到的是object
3.request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据;request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。
——getParameter得到的都是String类型的。或者是http://a.jsp?id=123中的123,或者是某个表单提交过去的数据。
——getAttribute则可以是对象。
——getParameter()是获取POST/GET传递的参数值;
——getAttribute()是获取对象容器中的数据值;
——getParameter:用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。
——getAttribute:用于服务器端重定向时,即在sevlet中使用了forward函数,或struts中使用了mapping.findForward。getAttribute只能收到程序用setAttribute传过来的值。
——getParameter()是获取POST/GET传递的参数值;
——getAttribute()是获取SESSION的值;
另外,可以用setAttribute,getAttribute发送接收对象.而getParameter显然只能传字符串。
setAttribute 是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存中。这样getAttribute就能取得你所设下的值,当然这种方法可以传对象。session也一样,只是对象在内存中的生命周期不一样而已。
getParameter只是应用服务器在分析你送上来的request页面的文本时,取得你设在表单或url重定向时的值。
getParameter   返回的是String,   用于读取提交的表单中的值;      
getAttribute   返回的是Object,需进行转换,可用setAttribute设置成任意对象,使用很灵活,可随时用。
 

C#把图片保存到数据库

分类:C#  来源:网络  时间:2010-12-17 23:27:55

在开发的过程中,难免遇到图片保存问题,解决的方法有很多,这里我把图片以二进制的形式保存到数据库中,也许这个形式并不是最高效的方式,但也不失为一种好的方法吧.呵呵,下面简单的demo可以作为参考:

1Code#region Code
2
3         //单击"浏览"按钮
4
5         private void button1_Click(object sender, System.EventArgs e)
6
7         {
8
9               DialogResult result=this.openFileDialog1.ShowDialog();
10
11              if(result==DialogResult.OK)
12
13              {
14
15                   this.textBox1.Text=this.openFileDialog1.FileName.ToString
16
17();
18
19                    Image img = Bitmap.FromFile(this.textBox1.Text);
20
21                   this.pictureBox1.Image=img;
22
23               }
24
25      
26
27          }
28
29         //单击"确定"按钮
30
31         private void button2_Click(object sender, System.EventArgs e)
32
33         {
34
35              //插入数据库操作,图片类型的参数为PicToBinary()返回的byte[]即可
36
37把图片以字节的形式保存到数据库中
38
39          }
40
41         //图片转换为字节数组
42
43         private byte[] PicToBinary()
44
45         {
46
47              //创建参数集
48
49              string path = this.textBox1.Text.Trim();
50
51              byte[] source = null;
52
53              if(!path.Equals("") && File.Exists(path))
54
55              {
56
57                    FileStream fs=new FileStream
58
59(path,FileMode.Open,FileAccess.Read);//创建文件流
60
61                    source=new byte[(int)fs.Length];
62
63                    fs.Read(source,0,(int)fs.Length);
64
65                    Image img = Bitmap.FromStream(fs);//把文件流转换为图片
66
67                   if(img.Width > 300 || img.Height > 400)
68
69                   {
70
71                        MessageBox.Show("图片过大,请上传400*300以下的图片");
72
73                       return;
74
75                    }                  
76
77                    fs.Flush();
78
79                    fs.Close();
80
81               }
82
83              return source;
84
85          }
86
87
88
89         #endregion1Code#region Code
2
3         //单击"浏览"按钮
4
5         private void button1_Click(object sender, System.EventArgs e)
6
7         {
8
9               DialogResult result=this.openFileDialog1.ShowDialog();
10
11              if(result==DialogResult.OK)
12
13              {
14
15                   this.textBox1.Text=this.openFileDialog1.FileName.ToString
16
17();
18
19                    Image img = Bitmap.FromFile(this.textBox1.Text);
20
21                   this.pictureBox1.Image=img;
22
23               }
24
25      
26
27          }
28
29         //单击"确定"按钮
30
31         private void button2_Click(object sender, System.EventArgs e)
32
33         {
34
35              //插入数据库操作,图片类型的参数为PicToBinary()返回的byte[]即可
36
37把图片以字节的形式保存到数据库中
38
39          }
40
41         //图片转换为字节数组
42
43         private byte[] PicToBinary()
44
45         {
46
47              //创建参数集
48
49              string path = this.textBox1.Text.Trim();
50
51              byte[] source = null;
52
53              if(!path.Equals("") && File.Exists(path))
54
55              {
56
57                    FileStream fs=new FileStream
58
59(path,FileMode.Open,FileAccess.Read);//创建文件流
60
61                    source=new byte[(int)fs.Length];
62
63                    fs.Read(source,0,(int)fs.Length);
64
65                    Image img = Bitmap.FromStream(fs);//把文件流转换为图片
66
67                   if(img.Width > 300 || img.Height > 400)
68
69                   {
70
71                        MessageBox.Show("图片过大,请上传400*300以下的图片");
72
73                       return;
74
75                    }                  
76
77                    fs.Flush();
78
79                    fs.Close();
80
81               }
82
83              return source;
84
85          }
86
87
88
89         #endregion1Code#region Code
2
3         //单击"浏览"按钮
4
5         private void button1_Click(object sender, System.EventArgs e)
6
7         {
8
9               DialogResult result=this.openFileDialog1.ShowDialog();
10
11              if(result==DialogResult.OK)
12
13              {
14
15                   this.textBox1.Text=this.openFileDialog1.FileName.ToString
16
17();
18
19                    Image img = Bitmap.FromFile(this.textBox1.Text);
20
21                   this.pictureBox1.Image=img;
22
23               }
24
25      
26
27          }
28
29         //单击"确定"按钮
30
31         private void button2_Click(object sender, System.EventArgs e)
32
33         {
34
35              //插入数据库操作,图片类型的参数为PicToBinary()返回的byte[]即可
36
37把图片以字节的形式保存到数据库中
38
39          }
40
41         //图片转换为字节数组
42
43         private byte[] PicToBinary()
44
45         {
46
47              //创建参数集
48
49              string path = this.textBox1.Text.Trim();
50
51              byte[] source = null;
52
53              if(!path.Equals("") && File.Exists(path))
54
55              {
56
57                    FileStream fs=new FileStream
58
59(path,FileMode.Open,FileAccess.Read);//创建文件流
60
61                    source=new byte[(int)fs.Length];
62
63                    fs.Read(source,0,(int)fs.Length);
64
65                    Image img = Bitmap.FromStream(fs);//把文件流转换为图片
66
67                   if(img.Width > 300 || img.Height > 400)
68
69                   {
70
71                        MessageBox.Show("图片过大,请上传400*300以下的图片");
72
73                       return;
74
75                    }                  
76
77                    fs.Flush();
78
79                    fs.Close();
80
81               }
82
83              return source;
84
85          }
86
87
88
89         #endregion
 

jsp分页显示案例

分类:Jsp  来源:网络  时间:2010-12-17 23:23:34

< %@ page contentType="text/html;charset=gb2312" % >

< %@ page language="java" import="java.sql.*" % >


< script language="javascript" >

function newwin(url) {

var


newwin=window.open(url,"newwin","toolbar=no,location=no,directories=no,status=no,


menubar=no,scrollbars=yes,resizable=yes,width=600,height=450");

newwin.focus();

return false;

}

< /script >

< script LANGUAGE="javascript" >

function submit10()

{

self.location.replace("fenye1.jsp")

}

< /script >

< %//变量声明

java.sql.Connection sqlCon; //数据库连接对象

java.sql.Statement sqlStmt; //SQL语句对象

java.sql.ResultSet sqlRst; //结果集对象

java.lang.String strCon; //数据库连接字符串

java.lang.String strSQL; //SQL语句

int intPageSize; //一页显示的记录数

int intRowCount; //记录总数

int intPageCount; //总页数

int intPage; //待显示页码

java.lang.String strPage;

int i;

//设置一页显示的记录数

intPageSize = 4;

//取得待显示页码

strPage = request.getParameter("page");

if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据

intPage = 1;

}

else{//将字符串转换成整型

intPage = java.lang.Integer.parseInt(strPage);

if(intPage< 1) intPage = 1;

}

//装载JDBC驱动程序

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//设置数据库连接字符串

strCon = "jdbc:odbc:heyang";

//连接数据库

sqlCon = java.sql.DriverManager.getConnection(strCon,"sa","");

//创建一个可以滚动的只读的SQL语句对象

sqlStmt =


sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.Result


Set.CONCUR_READ_ONLY);//准备SQL语句

strSQL = "select user_id,user_name from userinfo order by user_id desc";

//执行SQL语句并获取结果集

sqlRst = sqlStmt.executeQuery(strSQL);

//获取记录总数

sqlRst.last();//??光标在最后一行

intRowCount = sqlRst.getRow();//获得当前行号

//记算总页数

intPageCount = (intRowCount+intPageSize-1) / intPageSize;

//调整待显示的页码

if(intPage >intPageCount) intPage = intPageCount;

% >

< html >

< head >

< meta http-equiv="Content-Type" content="text/html; charset=gb2312" >

< title >会员管理< /title >

< /head >

< body >

< form method="POST" action="fenye1.jsp" >

第< %=intPage% >页 共< %=intPageCount% >页


< %if(intPage< intPageCount){% >< a


href="fenye1.jsp?page=< %=intPage+1% >" >下一页


< /a >< %}% > < %if(intPage >1){% >< a href="fenye1.jsp?page=< %=intPage-1% >" >


上一页< /a >< %}% >

转到第:< input type="text" size="8" > 页

< span >< input type=′submit′ value=′GO′ >< /span >

< /form >

< table border="1" cellspacing="0" cellpadding="0" >

< tr >

< th >ID< /th >

< th >用户名< /th >

< th width=′8%′ >删除< /th >

< /tr >

< %

if(intPageCount >0){

//将记录指针定位到待显示页的第一条记录上

sqlRst.absolute((intPage-1) * intPageSize + 1);

//显示数据

i = 0;

String user_id,user_name;

while(i< intPageSize && !sqlRst.isAfterLast()){

user_id=sqlRst.getString(1);

user_name=sqlRst.getString(2);

% >

< tr >

< td >< %=user_id% >< /td >

< td >< %=user_name% >< /td >

< td width=′8%′ align=′center′ >< a href="delete.jsp?user_id=< %=user_id% >"


onClick="return newwin(this.href);" >删除< /a >< /td >

< /tr >

< %

sqlRst.next();

i++;

}

}

% >

< /table >

 

< /body >

< /html >

< %

//关闭结果集

sqlRst.close();

//关闭SQL语句对象

sqlStmt.close();

//关闭数据库

sqlCon.close();

% >
 

浅谈视图的优点与缺点

分类:数据库  来源:网络  时间:2010-12-8 19:15:48

视图的优点与缺点

在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,视图具有如下的一些优点:

● 简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。

● 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。

● 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。 视图也存在一些缺点,主要如下。

● 性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也把它变成一个复杂的结合体,需要花费一定的时间。

● 修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。

所以,在定义数据库对象时,不能不加选择地来定义视图,应该权衡视图的优点和缺点,合理地定义视图。

杀毒软件业法则:自己研发病毒自己杀

分类:网络安全  来源:网络  时间:2010-12-7 19:40:34

杀毒软件业野蛮生长法则:自己研发病毒自己杀
http://tech.163.com/10/1202/01/6MS5IRPN000915BF.html

实习欢迎你——2009暑假实习

分类:个人日志  来源:网络  时间:2009-8-14 16:47:42
迎接另一个暑假
带来全新空气
地点改变情味不变
公司飘满情谊

公司大门常打开
等待的就是
实习过就有了经验
你会爱上这里

不管远近都是同事
请不用客气
工作久了为知己
我们欣赏

我家新技术
创造每段奇迹
软件发展贡献
为你留下回忆

陌生熟悉都是同事
请不用拘礼
做错一点没关系
同事会教你

实习欢迎你
为你提高技术
忙碌中的工作
充满着快乐

实习欢迎你
空调下分享凉爽
电脑里创造价值

公司大门常打开
开怀容纳是你
岁月绽放青春笑容
迎接每个挑战

天大地大都是同事
请不用客气
下班过后带笑意
宿舍等待你

实习欢迎你
像音乐鼓励
让我们都加油
改变自己

实习欢迎你
能力谁都羡慕你
有勇气就会有奇迹

实习欢迎你
为你提高技术

忙碌中的工作
充满着快乐

实习欢迎你
空调下分享凉爽
电脑里创造价值

实习欢迎你
像音乐鼓励
让我们都加油
改变自己

实习欢迎你
能力谁都羡慕你
有勇气就会有奇迹

回望2009

分类:个人日志  来源:网络  时间:2010-1-2 0:11:13
     一年的艰辛,创造了软件开发史上从静态网页到动态网站、从table布局到DIV+CSS布局、从Photoshop到CorelDRAW再到Flash、从做自己的项目到去企业实习、从用jsp脚本编程到使用MVC三层架构模式再到利用集成SSH综合编程、从Ajax到JQuery、从Java到C#、总学分从班级的第三到第一也即全专业(web)第一的飞跃。走过的风风雨雨仍历历在目。
我的印象告诉我,在我的历史长河中,偶数年总是比基数年幸运的,所以当2008年即将流逝的时候我在祈祷2009年减速来临并加速流去。但2009年却创造了我没有想到的奇迹,于是,当它即将过去的时候我在祈祷它减缓速度。却万万没有想到,奇迹居然会匆匆来到。
首先,我不得不感谢我学姐在我即将跨入大三的时候给我的目标引导。她们什么时候要面试,什么时候有招聘会,就业压力怎样我都很喜欢问她。虽然没有给我直接的目标,但是我从她们大三时候对就业准备的情况可以推测明年的这个时候我们将面临怎样的情况。如果到那时候(我们大三)还没有准备好的话,我就会像很多人一样后悔不及——为何不早点学呢?所以我开始了准备,不管理论知识,还是上机操作能力都得到了明显的提高,毕竟机会只会给有准备的人。3月份,利用一个月的课余时间准备Java二级考试,终于一次性通过了。4月份,我开始着手研究动态网站的建设,经过几天的努力,我可以用jsp技术做出简单的注册登录功能了。尽管从现在看来那不算什么,但那毕竟是一座里程碑。没过多久,老师布置了期末项目,我又开始了设计研究。经过十几天的努力,一个较完整的“在线考试系统”基本完成。从这个项目中我学会了很多,也懂得了很多网站设计的原则。
其次,我也得感谢软件园某王先生在我编程开发过程中给我的技术帮助。6月的一天,无意间看到了一个项目需要找会jsp的人做,尽管我认为我还没学得多好,但我想到至少我也做出了一个在线考试系统,所以我没加思索的勇敢地接下了这个项目。而这个项目就是给王先生作的,我得知他是没有时间做,他说我不会的他可以教我。然而,当他把SSH集成框架拷给我的时候,我晕了,我从来没有见过一个项目竟然会有这么多的文件。那时我根本不知道集成SSH框架怎么用,但我也没有害怕,我想我会慢慢弄懂的。除此之外,这个项目还要用到Ajax,我也开始了学习。尽管过了很久都没有把这个项目做好,但其中碰到了很多难题我都可以问王先生,所以我也学会了很多。终于有一天我把这个框架弄懂了,我也可以用它来开发项目了。后来,我和王先生成了合作伙伴,他教我的很多东西尽管有点难,但我还是觉得有些技术很有发展潜力,值得研究。
再次,我还得感谢其他同学对我的支持与帮助。在很多时候同学的帮助是对我很有益的,不管是生活上的还是技术上的。
最后,我更应该感谢我自己敢于逆水行舟、夜以继日、风雨无阻地拼搏。不管什么天气,什么心态,我差不多每天晚上都要去图书馆看书,有些是课内的,有些是课外的,但更多是自学的。我上课的时候不喜欢认真听讲,喜欢课后去认认真真地看书,并认真琢磨其间的内涵。在宿舍我很多时候是在编程,有些是对知识点的熟悉,有些是做项目。经过努力,暑假去了实习,在实习中我学会了很多关于SSH应用的技术,这也为我以后认真学SSH及综合使用都提供了很多帮助。慢慢地,要开始找工作了,我决定要有属于自己的作品,实现“国产化”。所以,我开始了一个论坛系统的开发,经过1个多月,我在很多方面实现了突破并最后完成了该系统的开发。我认为这是11个月以来,我做得最仔细最好的作品,还专门申请了一个域名。没过多久,期末考试的全部成绩揭晓,我惊奇地发现我的总学分全班排名第一,再一看,我又发现全专业(WEB)我还是第一。我为此感到幸运,幸运的是在读书史上“最后一次”考试能以第一结尾,幸运的是能在几个“应试高手”中重重突围。12月,我又设计了一个物流网站和一个家政网站,在这两个网站中我学会了很多前台布局与设计技术。
然而,今年我没有拿到国家励志奖学金,也没有拿到校一等奖学金。对于前者就算了,我不是喜欢计较的人,对于后者,我只想说那是被人占着茅坑不拉屎,浪费了一个名额,她们都是高干子弟,我也没办法。
我只想说:“2009,我不会忘记。”
我还想说:“2010我更期待,2010我也要有我自己的‘世博会’。”
  • 60
  • |<
  • <<
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • >>
  • >|