动态网页设计笔记

动态网页设计笔记

   JavaScript、ASP、ASP.Net、JSP笔记  


JavaScript  
ASP.net

  ASP
    1.基本控件的使用
6.客户端脚本的基本对象    ***
41.常用的Javascript内建类的方法 
***
2.让TextArea自动换行
3.让TextArea支持Table键
4.复制数据到剪贴板
5.得到当前选中的文本
7.保护自己编写的HTML和脚本的方法
8.IE地址栏前换成自己的图标
9.可以在收藏夹中显示出你的图标
10.关闭输入法
11.直接查看源代码
12.在Javascript中自定义一个对象(属性,方法) ***
13.取得控件的绝对位置
14.光标是停在文本框文字的最后
15.判断上一页的来源
16.最小化、最大化、关闭窗口
17.检查一段字符串是否全由数字组成
18.获得一个窗口的大小
19.怎么判断是否是字符
20.检测某个网站的链接速度
21.各种样式的光标
22.让TEXTAREA自适应文字的行数
23.日期减去天数等于第二个日期
24.选择了哪一个Radio
25.获得本页url的request.servervariables("")集合
26.ENTER键可以让光标移到下一个输入框
27.多用途的RichEdit控件
28.引用其他网页
29.常用的正则表达式
31.取得查询字符串,然后就生成成对的数组
32.另类的onload函数
33.取得IE的版本
34.提交表单到不同地方
35.判断是否是整数
36.链接css文件和js文件
37.引用框架的内容
38.打开没有最大化按钮的窗口
39.在页面上显示一个有边框的Frame
40.判断日期1是不是大于日期2
30.弹出来必须关闭才能继续运行的提示对话框
42.如何在另一个窗体对原来窗体进行操作
***
43.层的隐藏与显示
44.禁止右键
45.屏蔽页面中程序运行出错信息 **
46.得到当前显示器的分辨率
47.定时运行特定代码(Timer)
48.得到本页网址
49.保存当前页面的内容
50.刷新当前页面
51.获得当前日期
      1.ASP.net中如何在二个页面传递数
2.如何添加用户自定义标签、自定义控件、定制控件
3.添加客户端验证脚本
4.如何使得DataGrid有分页输出数据功能
5.如何写广告控件的XML
6.如何利用Session和Application
7.如何利用Cookie
8.利用ASP.net上传文件
9.Asp.net中自定义异常页
10.Asp.net的安全认证及Web.config的配置
11.Asp网页的EnableViewState属性对网页性能的影响
12.Web打印文档
13.将Web表格输出为word或者Excel格式的文件保存在客户端
    1.连接SQL Server数据库
2.连接Access数据库
3.使用系统DSN连接数据库
4.使用数据库操作
***
5.使用数据库带返回值的存储过程
6.使用数据库带返回记录集的存储过程
7.VB中使用split对字符串进行切割
8.VB和数据库中使用转义字符
9.如何强制要求VB声明变量
10.如何处理不用的对象
11.如何设定缓冲
12.设定Session超时时间
13.获得访问者IP和浏览器类型等信息
14.将query
string从一个asp文件传送到另一个

15.加密脚本
16.获得CPU信息
17.在ASP中读取注册表的信息 
18.取得所有的Session变量
19.定义数据库连接的一些常量
20.定义数据库的字段的初始值
21.修改contentType并下载gif等格式
22.RecordSet的基本属性和方法
23.获得查询获得的表的各个字段的名字
     

JSP


用VB编写ASP组件

  1.引入其他包和设置Html参数
2.包含文件,同时带设置参数
3.使用页面跳转并带参数
4.使用Applet
5.转为为数字
6.读取中文
7.Request对象(读取页面或者Form参数)
8.Response对象和out对象(输出值)
9.Session
和Application

10.JSP连接数据库
11.使用同步连接
12.使用beans
 
  1.用VB编写一般组件
2.用VB编写ASP组件(包含request,response,Session等)
3.在VB组件里面添加对数据库的访问
4.函数返回多个值和数组型属性
5.在VB控件中编写对文件的读写



JavaScript

 1.基本控件的使用

 


控件名.value

控件名.value

控件名[i].checked   
.value 

for each ob in控件名
   if
ob.checked then
  
   window.alert
ob.value
next


控件名.checked    .value


Select 1Select 3Select 2Select 1Select 2Select 3Select
4Select 1Select 2Select 3Select
4
 
   单行       
 多行     
   多选


添加选项


ExpList.add(new
Option("New Option","3"));


删除选项


ExpList.remove(ExpList.selectedIndex);


设置当前选项位置


ExpList.selectedIndex=ExpList.length-1;


循环整个选项
并判断是否被选择


for(i=0;i<ExpList.options.length;i++)
{
 
if(ExpList.options[i].selected){
    
//ExpList.options[i].text;
    
//ExpList.options[i].value;
 
}
}


单个选项的值

ExpList.options[i].text;

ExpList.options[i].value;
<span
id="SomePlace1"></span>
<div
id="SomePlace1"></div>

重新设计包含的html


SomePlace1.innerHTML="任意html字符串"


让该空间的内容消失


SomePlace1.style.display="none";


让该空间的内容显示


SomePlace1.style.display="block";

鼠标滑过出现提示 title="Help"

<input type="hidden"
name="MyValueName" value="123">

控件名.value
跟随事件Event(声明方式特殊) <div id=hello1
style=position:absolute>太过分了!吃饭不叫我</div>
<SCRIPT
for=document
EVENT=onmousemove>
document_onmousemove();
function
document_onmousemove() {
 
hello1.style.left=event.x+10;
 
hello1.style.top=event.y+10;
}
</SCRIPT>

<返回>

2.让TextArea自动换行

 
使用TextArea的Wrap属性

  • Wrap may be set to one of the following values:

    • OFF - Default, lines are not wrapped.
    • PHYSICAL - Wrap lines and place new line
      characters where the line wraps.
    • VIRTUAL - Wrap lines on the screen, but receive
      them as one line.

ASP中手动换行用: replace(rs("A"),"</br>", VBCRLF)

str=request.querystring("text1")
str=Replace(str, Chr(32), "
")
'把空格换成 标志
str=Replace(str, vbCrLf,
"<br>")
'把回车换行符换成<br>标志
调出时再转过来就好了

<返回>

3.让TextArea支持Table键
<SCRIPT
LANGUAGE="JavaScript">
<!--
function
testTab()
{
   var sel =
document.selection.createRange();
   var mytext=
sel.text;
   var i,j,k;
   if (event.shiftKey
&& event.keyCode == 9)
  
{
     
arr=mytext.split(String.fromCharCode(13,10))
     
mytext=""

     
for(k=0;k<arr.length;k++)
     
{
         for (j=1;
j<=4;j++)
        
{
           
if(arr[k].substr(0,1)=="\u0020")
           
{
              
arr[k]=arr[k].slice(1)
           
}
        
}
         mytext += arr[k] +
((k==(arr.length-1))? "" :
String.fromCharCode(13,10));
     
}
     
with(sel){
         sel.text =
mytext;
        
collapse(true)
        
moveEnd("character",0)
        
moveStart("character",(mytext.length ) *
-1)
        
select()
     
}

      window.event.cancelBubble = true;

      event.returnValue =
false;
      return;
   }

   if (event.keyCode == 9)
  
{
     
arr=mytext.split(String.fromCharCode(13,10))
     
mytext=""
     
for(j=0;j<arr.length;j++)
     
{
         mytext +=
"\u0020\u0020\u0020\u0020" + arr[j] + ((j==(arr.length-1))? "" :
String.fromCharCode(13,10));
     
}
     
with(sel){
         sel.text =
mytext;
        
collapse(true)
        
moveEnd("character",0)
        
moveStart("character",(mytext.length -4) *
-1)
        
select()
     
}

      window.event.cancelBubble = true;

      event.returnValue =
false;
      return;
  
}
}
//-->
</SCRIPT>

<返回>

4.复制数据到剪贴板

 JM_cc(txt)

 window.clipboardData.setData("Text",
txt);
 global.focus();
 document.execCommand('Paste');
 window.clipboardData.setData("Text", old);

<返回>

5.得到当前选中的文本

var sel =
document.selection.createRange();
var mytext= sel.text; 
//当前选中的文本

var e = event.srcElement;  //设置文本为选中
var r
=e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();

<返回>

6.客户端脚本的基本对象
 


浏览器对象
屏幕对象
窗口对象
 历史对象
 地址对象
 框架对象 文档对象
  连接对象
  Java小程序对象
  插件对象
  表单对象
   按钮对象
   复选框对象
   表单元素对象
   隐藏对象
   密码输入区对象
   单选域对象
   重置按钮对象
   选择区(下拉菜单、列表)对象
    选择项对象
   提交按钮对象
   文本框对象
   多行文本输入区对象
  图片对象

<返回>

7.保护自己编写的HTML和脚本的方法
  (1).
oncontextmenu="window.event.returnValue=false"
将彻底屏蔽鼠标右键
    <table border
oncontextmenu=return(false)><td>no</table>
可用于Table
  (2). <body onselectstart="return false">
取消选取、防止复制
  (3). onpaste="return false" 不准粘贴
  (4).
oncopy="return false;" oncut="return false;" 防止复制
  (5).
防止被人frame
      <SCRIPT
LANGUAGE=JAVASCRIPT><!--

         if (top.location !=
self.location)top.location=self.location;
      
// -->
      </SCRIPT>
  (6).
永远都会带着框架
     <script
language="JavaScript"><!--
       
if (window == top)top.location.href = "frames.htm";
//frames.htm为框架网页
     //
--></script>
  (7).网页将不能被另存为
    
<noscript><iframe src=*.html></iframe></noscript>

<返回>

8.IE地址栏前换成自己的图标
 <link rel="Shortcut
Icon" href="favicon.ico">

<返回>

9.可以在收藏夹中显示出你的图标

 <link
rel="Bookmark" href="favicon.ico">

<返回>

10.关闭输入法

 <input
style="ime-mode:disabled">

<返回>

11.直接查看源代码
 
 <input
type=button value=查看网页源代码 onclick="window.location = 'view-source:'+
'http://www.csdn.net/'">

<返回>

12.在Javascript中定义一个对象(属性,方法)

function
pasta(grain, width, hasEgg) {
    this.grain = grain;

    this.width = width;
   
this.hasEgg = hasEgg;
    this.toString =
pastaToString;
}

function pastaToString() {

    return "Grain: " + this.grain + "\n" + "Width: " +
this.width + "\n" + "Egg?: " + Boolean(this.hasEgg);
}

var
P1=new pasta(3,3,false);

<返回>

13.
取得控件的绝对位置


//Javascript
<script
language="Javascript">
function getIE(e){
   var
t=e.offsetTop;
   var l=e.offsetLeft;
  
while(e=e.offsetParent){
     
t+=e.offsetTop;
     
l+=e.offsetLeft;
   }
  
alert("top="+t+"\nleft="+l);
}
</script>

<返回>

14.
光标是停在文本框文字的最后


<script
language="javascript">
function cc()
{
   var e =
event.srcElement;
   var r
=e.createTextRange();
  
r.moveStart('character',e.value.length);
  
r.collapse(true);
  
r.select();
}
</script>
<input type=text name=text1
value="123" onfocus="cc()">

<返回>

15.
判断上一页的来源


asp:
 
request.servervariables("HTTP_REFERER")

javascript:
 
document.referrer

<返回>

16.
最小化、最大化、关闭窗口


<object id=hh1
classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param
name="Command" value="Minimize"></object>
<object id=hh2
classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param
name="Command" value="Maximize"></object>
<OBJECT id=hh3
classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM
NAME="Command" VALUE="Close"></OBJECT>

<input
type=button value=最小化 onclick=hh1.Click()>
<input type=button
value=最大化 onclick=hh2.Click()>
<input type=button value=关闭
onclick=hh3.Click()>
本例适用于IE

<返回>

17.
检查一段字符串是否全由数字组成


<script
language="Javascript"><!--
function checkNum(str){return
str.match(/\D/)==null}
// --></script>

<返回>

18.
获得一个窗口的大小


document.body.clientWidth,document.body.clientHeight

<返回>

19. 怎么判断是否是字符

if
(/[^\x00-\xff]/g.test(s))
  alert("含有汉字");
else
 
alert("全是字符");

<返回>

20.
检测某个网站的链接速度


把如下代码加入<body>区域中:
<script
language=Javascript>
tim=1
setInterval("tim++",100)
b=1

var
autourl=new
Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"

function
butt(){
   document.write("<form
name=autof>")
   for(var
i=1;i<autourl.length;i++)
     
document.write("<input type=text name=txt"+i+" size=10 value=测试中……>
=》<input type=text name=url"+i+" size=40> =》<input type=button
value=GO
onclick=window.open(this.form.url"+i+".value)><br/>")
  
document.write("<input type=submit
value=刷新></form>")
}
butt()
function
auto(url){
  
document.forms[0]["url"+b].value=url
  
if(tim>200)
   {
     
document.forms[0]["txt"+b].value="链接超时"
   }
  
else
   {
     
document.forms[0]["txt"+b].value="时间"+tim/10+"秒"
  
}
   b++
}
function run()
{
   for(var
i=1;i<autourl.length;i++)
     
document.write("<img src=http://"+autourl[i]+"/"+Math.random()+"
width=1 height=1
onerror=auto('http://"+autourl[i]+"')>")
}
run()</script>

<返回>

21. 各种样式的光标

auto
:标准光标
default :标准箭头
hand :手形光标
wait :等待光标
text
:I形光标
vertical-text :水平I形光标
no-drop :不可拖动光标
not-allowed
:无效光标
help :?帮助光标
all-scroll :三角方向标
move :移动标
crosshair
:十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

<返回>

22.让TEXTAREA自适应文字的行数

<textarea
rows=1 name=s1 cols=27
onpropertychange="this.style.posHeight=this.scrollHeight"></textarea>

<返回>

23.
日期减去天数等于第二个日期

<script
language=Javascript>
function
cc(dd,dadd)
{
//可以加上错误处理
   var a = new
Date(dd)
   a = a.valueOf()
   a = a - dadd * 24
* 60 * 60 * 1000
   a = new Date(a)
  
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() +
"日")
}
cc("12/23/2002",2)
</script>

<返回>

24.
选择了哪一个Radio


<HTML>
<script
language="vbscript">
function checkme()
   for each ob
in radio1
   if ob.checked then

      window.alert ob.value
  
next
end function
</script>
<BODY>
<INPUT
name="radio1" type="radio" value="style" checked>Style
<INPUT
name="radio1" type="radio" value="barcode">Barcode
<INPUT
type="button" value="check"
onclick="checkme()">
</BODY></HTML>

<返回>

25.获得本页url的request.servervariables("")集合

Response.Write
"<TABLE border=1><!-- Table Header
--><TR><TD><B>Variables</B></TD><TD><B>Value</B></TD></TR>"
for
each ob in Request.ServerVariables
   Response.Write
"<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
next
Response.Write
"</TABLE>"

<返回>

26.ENTER键可以让光标移到下一个输入框

<input
onkeydown="if(event.keyCode==13)event.keyCode=9">

<返回>

28.引用其他网页

<table
width=100% border="0"><tr><td><script
language="JavaScript" location="http://91down.7161.net" id="nd91down"
src="http://91down.7161.net/js/new1-1.htm"></script></td><td><script
language="JavaScript" location="http://91down.7161.net" id="nd91down"
src="http://91down.7161.net/js/new1-2.htm"></script></td></tr></table>

<返回>

29.常用的正则表达式

匹配中文字符的正则表达式:
[\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s|
]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w-
./?%&=]*)?

(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)        

    String.prototype.len=function(){return
this.replace([^\x00-\xff]/g,"aa").length;}

(2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现
  
String.prototype.trim = function()
  
{
      return this.replace(/(^\s*)|(\s*$)/g,
"");
   }
(3)应用:利用正则表达式分解和转换IP地址
  
function IP2V(ip) //IP地址转换成对应数值
  
{
      re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g
//匹配IP地址的正则表达式
     
if(re.test(ip))
     
{
         return
RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
     
}
      else
     
{
         throw new Error("Not
a valid IP address!")
      }
  
}
(4)应用:从URL地址中提取文件名的javascript程序
  
s="http://www.9499.net/page1.htm";
  
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2") ; //Page1.htm
(5)应用:利用正则表达式限制网页表单里的文本框输入内容
  
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
  
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
  
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
  
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

<返回>

30.弹出来提示对话框
window.showModalDialog(url);

<返回>

31.取得查询字符串,然后就生成成对的数组
var
argstr =
window.top.location.search.substring(1,window.top.location.search.length);
var
args = argstr.split('&');

<返回>

32.另类的onload函数
<SCRIPT
FOR=window event=onload>
try
{
  Start();
}
catch
(exception)
{
}
</script>

<返回>

33.取得IE的版本
var ieVer =
parseFloat(navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE
")+5, navigator.appVersion.length))
var isIE6 = ieVer >=
6.0

<返回>

34.提交表单
// aimForm
为表单名    aimPage为提交到的页

//提交表单到新建的网页
function
SubmitFormToNewPage(aimForm,aimPage){
  
aimForm.method="POST";
  
aimForm.target="_blank";
  
aimForm.action=aimPage;
  
aimForm.submit();
}

//在本地提交表单
function
SubmitFormToLocalPage(aimForm,aimPage){
  
aimForm.method="POST";
  
aimForm.target="_self";
  
aimForm.action=aimPage;
  
aimForm.submit();
}

<返回>

35.判断是否是整数
function
IsNum(s)  //整数
{
  
if(s=="null"||s=="undefined"||s.length<1)
     
return false;
  
if(isNaN(parseInt(s)))
      return
false;
   else
  
if((parseInt(s)+"").length!=s.length)
     
return false;
   else
     
return true;
}

function IsNumber(JudgeNum){ 
//判断大于0的数
   var
JudgeStr=JudgeNum.toString();
   for (var
i=0;i<JudgeStr.length;i++) {
      var
oneChar=JudgeStr.charAt(i);

      if
(oneChar<"0" || oneChar
>"9"){
         return
false;
      }
  
}
   return true;
}

<返回>

36.链接css文件和js文件
<link
rel="stylesheet" href="../css/style.css" type="text/css">
<script
language="javascript" src="../includes/jslib.js"
></script>

<返回>

37.引用框架的内容
window.top.frames["mainFrame"].location.href=s;
在IFRAME标签中引用框架的内容
parent.frames["mainFrame"].location.href
在窗口中引用IFrame中的内容
window.top.frames["mainFrame"].confFrame.location.href

<返回>

38.打开没有最大化按钮的窗口
window.open("http://www.google.com","","width=250,height=220,scrollbars=no,resizable=no,center=yes");

<返回>

39.在页面上显示一个有边框的Frame
<fieldset
style="width:500;height:100">
<legend>标题</legend>

具体内容
</fieldset>

<返回>

40.判断日期1是不是大于日期2

function
IsDate1AfterThanDate2(year1,month1,day1,year2,month2,day2){
  
var iFrom=Date.parse(month1+"-"+day1+"-"+year1);
   var
iTo=Date.parse(month2+"-"+day2+"-"+year2);
  
if(iFrom>iTo)
      return
true;
   else
      return
false;
}

function IsDate(year,month,day){
   if(
(!IsNumber(year))||(year.length!=4))
     
return false;
   if(
(!IsNumber(month))||(month>12)||(month<1)
)
      return false;
   if(
(!IsNumber(day))||(day>31)||(day<1)
)
      return false;

   var
myDate=new Date();
     
myDate.setFullYear(year,month-1,day);
   if
(isNaN(myDate.getFullYear())){
      return
false;
   }
  
else{
      if(
(myDate.getFullYear()!=year)||(myDate.getDate()!=day)||(myDate.getMonth()!=(month-1).toString())
)
         return false;

   }
      return true;

}

function IsNumber(JudgeNum){
   var
JudgeStr=JudgeNum.toString();
   for (var
i=0;i<JudgeStr.length;i++) {
      var
oneChar=JudgeStr.charAt(i);

      if
(oneChar<"0" || oneChar
>"9"){
         return
false;
      }
  
}
   return true;
}

<返回>

41.常用的Javascript内建类的方法
 


对象


方法或属性


意义


例子


Array


length


表示数组大小,也可以通过该属性动态调整数组大小。设置可以不调整它直接扩大数组。


var theMonths = new
Array(12);

theMonths[0] =
"Jan";

theMonths[1] =
"Feb";
theMonths[2] = "Mar";

theMonths[20] =
"12";


concat


把两个数组合并


a = new
Array(1,2,3);

b = new
Array(4,5,6);

a = a.
concat(b)


join


把数组变为字符串


   a = new
Array(0,1,2,3,4);

   b =
a.join("-");


Date


Date.parse(dateVal)


将日期转为数字,用于比较两个日期的大小。dateVal格式为month+day+year


iFrom=Date.parse(“10-1-2004”);


setFullYear
(year,month-1,day)


用于判断3个字符串合起来是不是日期或者判断该天是不是存在。这里month从0开始,故和实际值差1


myDate.setFullYear(year,month-1,day);

if
(isNaN(myDate.getFullYear())){

      return
false;

}

else{

  if(
(myDate.getFullYear()!=year)||

(myDate.getDate()!=day)||

(myDate.getMonth()!=(month-1)
)

      return
false; 

}


Date()


获得当前时间


d = new
Date();                          


Global (全局类,引用方法可以不要带Global.)


isNaN


当从字符到日期转换失败,或者从字符到数字转换失败,都返回NaN。用isNaN可以判断返回值是不是NaN


 


parseInt


将字符串转换为整数,转换失败返回NaN或者尽量转换。所以用它来判断是不是数字,还要加上判断转化后长度是不是一样


parseInt("abc")    
// 返回 NaN。

parseInt("12abc")   //
返回 12。
parseInt("12")   //
返回 12


parseFloat


转为实数


 


String


主要函数和Java或者C#一样


replace


替代某个字符。如果仅替代一个和C#一样,如果要替代全部某字符,就得用到了匹配串


  re=/#/g;

 
str=str.replace(re,"<br>");

 

把#用<br>代替


split


将某个字符串按指定间隔符分割


var s = "The rain in
Spain";

ss = s.split(" "); 
//ss是一个数组

<返回>

42.如何在另一个窗体对原来窗体进行操作

 
(1)对用window.open打开的新窗体,用window.opener来访问原来窗体的对象。例如重新加载页面
window.opener.location.reload();  可以通过window.opener.varName
来访问原变量。
  (2)对用showModalDialog打开的新窗体
    
(主页面)   var
returnvalue=window.showModalDialog('2.htm',this,"status=no; help=no;
dialogWidth=330px; dialogHeight=305px;"); 
//第二个参数传入本窗体
     (子页面)  
window.dialogArguments.varName
来访问原变量
               
window.returnValue=***        
来设定returnvalue的值
<返回>

43.层的隐藏与显示

只要设置style的display属性即可。比如<div
style="display:none"
id="MyDiv">隐藏的层</div>
(1)如果要显示它可以通过脚本来控制   
window.document.getElementById("MyDiv").style.display =
"";
(2)如果要隐藏它可以通过脚本来控制   
window.document.getElementById("MyDiv").style.display = "none";

<返回>

44.禁止右键

<body
oncontextmenu="return false">

<返回>

45.屏蔽页面中程序运行出错信息
 

window.onerror =
function()
{
   return true;
}
try{
......
}
catch(e){}

<返回>
46.得到当前显示器的分辨率

window.srceen.width
得到屏幕的宽度
window.srceen.height
得到屏幕的高度
如果当前分辨率为800*600,window.srceen.width是800,window.srceen.height是600
<返回>

47.定时运行特定代码

setTimeout(Code,Timeout);
setInterval(Code,Timeout);
Code是一段字符串,里边是js代码,Timeout是时间间隔,单位是微秒
setTimeout是从现在算起多少微秒后运行该代码(只运行一次)
setInterval是每隔多少微秒运行一次代码

<返回>

48.得到本页网址

var Url =
window.location.href;

<返回>

49.保存当前页面的内容

document.execCommand("SaveAs","","C:\\index.htm"); 

//execCommand实际上是一个功能强大的函数,一般的编辑器都是用其实现。详见 http://www.51js.com/viewthread.php?tid=13450&fpage=1&highlight=execCommand

<返回>

50.刷新当前页面

window.location.reload();
<返回>

51.获得当前日期

var d; d = new
Date();
alert (d.getMonth() + 1); // 获取月份。
alert (d.getDate()); //
获取日。
alert (d.getYear()); // 获取年份。

<返回>
 



ASP

1.连接SQL
Server数据库

<!--#include file="adovbs.inc"
-->
Dim ConnStr
Dim
SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName =
"translate"      
'数据库名
SqlUsername = "WebCVO"             
'用户名
SqlPassword = "webcvo"             
'用户密码
SqlLocalName = "192.168.105.204"   
'连接名(本地用local,外地用IP)
ConnStr = "Provider = Sqloledb; User
ID = " & SqlUsername & "; Password = " & SqlPassword & ";
Initial Catalog = " & SqlDatabaseName & "; Data Source = " &
SqlLocalName & ";"

Set conn =
Server.CreateObject("ADODB.Connection")
conn.open ConnStr

<返回>

2.连接Access数据库

strconn =
"DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &
Server.MapPath("aspfree.mdb")
set conn =
server.createobject("adodb.connection")
conn.open strconn

<返回>

3.使用系统DSN连接数据库

Set Conn=Server.CreateObject("ADODB.Connection")

Conn.Open "DSN=test;"

<返回>

4.使用数据库操作
<%
exec="delete from tbl_Privileges where
PrivilegeGUID="+cstr(ParaID)
conn.Execute(exec)

Set rs =
Server.CreateObject("ADODB.Recordset")
sql="select top 10 * from
japanese"
rs.Open sql,conn,adopenStatic

while not(rs.eof)
%><%=rs("word")%>
<%rs.movenext
wend
rs.Close()
Set rs = nothing
%>

<返回>

5.使用数据库带返回值的存储过程
 

<%
Set
Comm=server.CreateObject("ADODB.Command")
Set Comm.ActiveConnection=conn

Comm.CommandType=adCmdStoredProc

Comm.CommandText="ProductsInfo"
'存储过程名称
Comm.Parameters.Append
Comm.CreateParameter("returncode",adInteger,adParamReturnValue)
Comm.Parameters.Append
Comm.CreateParameter("word",adVarChar,adParamInput,30,"愛情")
'输入参数
Comm.Parameters.Append
Comm.CreateParameter("ID",adinteger,adParamInput,4,45)
Comm.Parameters.Append
Comm.CreateParameter("mean1",adVarChar,adParamOutput,30)
'输出参数
Comm.Execute
'调用执行存储过程。
rs=Comm.parameters("mean1").value '返回参数
%><%=rs%>
<%
Set rs = nothing
Set
Comm.ActiveConnection = nothing
Set Comm = nothing
%>
adEmpty
adTinyInt
adSmallInt
adInteger
adBigInt
adUnsignedTinyInt
adUnsignedSmallInt
adUnsignedInt
adUnsignedBigInt
adSingle
adDouble
adCurrency
adDecimal
adNumeric
adBoolean
adError
adUserDefined
adVariant
adGUID
adDATE
adDBDate
adDBTime
adDBTimeStamp
adBSTR
adChar
adVarChar
adLongVarChar
adWChar
adVarWChar
adLongVarWChar
adBinary
adVarBinary
adLongVarBinary
adChapter
adPropVariant
adIDispatch
adIUnknown

<返回>

6.使用数据库带返回记录集的存储过程
<%
Set
Comm=server.CreateObject("ADODB.Command")
Set Comm.ActiveConnection=conn

Comm.CommandType=adCmdStoredProc
Comm.CommandText="SearchWord"
'存储过程名称
Comm.Parameters.Append
Comm.CreateParameter("returncode",adInteger,adParamReturnValue)
Comm.Parameters.Append
Comm.CreateParameter("word",adVarChar,adParamInput,30,"私") '输入参数
Set Rs
= Comm.Execute() '调用执行存储过程。
While Not rs.eof
%><%=rs("mean1")%><br>
<%rs.movenext
wend

Set rs = nothing
Set
Comm.ActiveConnection = nothing
Set Comm = nothing
%>

<返回>

7.用split分割字符串

str =
"ftp://username:password@server"
aryReturn = Split(str,":")
If
UBound(aryReturn)<>-1 then
  For i = LBound(aryReturn) To
UBound(aryReturn)
    aryReturn(i)
 
Next
End If

<返回>

8.vb和数据库中使用转义字符

有些字符不转义,显示时候会出错
 

HTML ASP SQL查询
   FormatInSql =
replace(tmpStr,"<","&lt;")      

   FormatInSql =
replace(tmpStr,">","&gt;")      

   FormatInSql =
replace(tmpStr,chr(13),"<br/>")
   FormatInSql =
replace(tmpStr," ","&nbsp;")    

   FormatInSql =
replace(tmpStr,"'","&apos;")    

FormatInSql = replace(tmpStr,chr(34),"""") 
str=  " id=""20"" 
"         

reString=chr(13)+chr(10)     

str=replace(str,reString,"")
CammandParaName=replace(CammandParaName,"'","''")

<返回>

9.如何强制要求VB声明变量

   
在asp文件头部用Option Explicit

<返回>
10.如何处理不用的对象

  当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”来释放对象占用的内存,否则会因为对象太多导致WEB服务站点运行效率降低乃至崩溃,相应语句如下:
  <%
  对象.close
  set对象=
nothing
  %>

<返回>

11.如何设定缓冲

 
(1)设定缓冲
    Response.Buffer = True

    在结尾写:Response.Flush
  (2)不允许用缓冲
  
<HTML>
   <HEAD>
     <META HTTP-EQUIV="REFRESH"
CONTENT="5">
     <TITLE> 你的标题 </TITLE>
  
</HEAD>
   <BODY>
      你的页面的其它部分。。。。。
  
</BODY>
   <HEAD>
     <META HTTP-EQUIV="PRAGMA"
CONTENT="NO-CACHE">
   </HEAD>
  
</HTML>

    
HTM网页
      <META HTTP-EQUIV="pragma"
CONTENT="no-cache">
      <META
HTTP-EQUIV="Cache-Control" CONTENT="no-cache,
must-revalidate">
      <META
HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57
GMT">
      或者<META HTTP-EQUIV="expires"
CONTENT="0">

    
ASP网页
      Response.Expires =
-1
      Response.ExpiresAbsolute = Now() -
1
      Response.cachecontrol =
"no-cache"|

      response.addHeader
"pragma" , "no-cache"
      response.addHeader
"cache-control" , "private"

    
PHP网页
      header("Expires: Mon, 26 Jul 1997
05:00:00 GMT");
      header("Cache-Control:
no-cache, must-revalidate");
     
header("Pragma: no-cache");

<返回>

12.设定Session超时时间

这么写:Session.Timeout=60
'设定超时时间为60分钟

<返回>

13.获得访问者IP和浏览器类型等信息 

本机ip<%=request.servervariables("remote_addr")%>
服务器名<%=Request.ServerVariables("SERVER_NAME")%>
服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服务器端口<%=Request.ServerVariables("SERVER_PORT")%>
服务器时间<%=now%>
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
脚本超时时间<%=Server.ScriptTimeout%>
本文件路径<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服务器解译引擎<%=ScriptEngine
& "/"& ScriptEngineMajorVersion
&"."&ScriptEngineMinorVersion&"."&
ScriptEngineBuildVersion
%>
服务器操作系统<%=Request.ServerVariables("OS")%>
检查来访者是否用了代理<%
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>""
then
                             
response.write "<font color=#FF0000>您通过了代理服务器,"&
_"真实的IP为"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
                       
end if%>
<返回>

14.将query string从一个asp文件传送到另一个

前者文件加入下句:
Response.Redirect("second.asp?"
& Request.ServerVariables("QUERY_STRING"))

<返回>

15.加密脚本

可以去下载一个微软的Windows Script
Encoder(http://www.wrclub.net/down.aspx?id=223),它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有script
engine 5(装一个ie5就有了)才能执行。

<返回>

16.获得CPU信息

<%
Set objShell =
CreateObject("WScript.Shell")
Set objEnv =
objShell.Environment("SYSTEM")
Response.Write "<H4>Number of
Processors: " & objEnv("NUMBER_OF_PROCESSORS") & "</H4>"

%>

<返回>

17.在ASP中读取注册表的信息 

通过 Windows
Scripting object 的 Regread 方法,可以从注册表中读取信息。
下面的例子演示了如何得到 common files
的路径:
<%
Dim strPath
strPath =
"HKLMSOFTWAREMICROSOFTWINDOWSCURRENTVERSIONCOMMONFILESDIR"
Set
objShell = CreateObject("WScript.Shell")
Response.Write
"<b>Registry value(Common files dir):</b> " &
objShell.RegRead(strPath)
%>

<返回>

18.取得所有的Session变量

  在程序调试中,有时候需要知道有多少Session变量在使用,她们的值如何?由于Session对象提供一个称为Contents的集合(Collection),我们可以通过For...Each循环来达到目标:

Dim strName, iLoop
For Each strName in Session.Contents

Response.Write strName & " - " &
Session.Contents(strName)& "<BR>"
Next

<返回>

19.定义数据库连接的一些常量

Const
adOpenForwardOnly = 0 '游标只向前浏览记录,不支持分页、Recordset、BookMark
Const
adOpenKeyset = 1
'键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
Const
adOpenDynamic = 2
'动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
Const
adOpenStatic = 3
'静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

Const
adLockReadOnly = 1 '锁定类型,默认的,只读,不能作任何修改
Const adLockPessimistic = 2
'当编辑时立即锁定记录,最安全的方式
Const adLockOptimistic = 3
'只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
Const
adLockBatchOptimistic = 4 '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

Const
adCmdText = &H0001
Const adCmdTable = &H0002

<返回>

20.定义数据库的字段的初始值

 
在Default中用(newid())  (getdate())
<返回>

21.修改contentType并下载gif等格式
<%
function
dl(f,n)
   on error resume next
   set
s=CreateObject("Adodb.Stream")
   S.Mode=3
  
S.Type=1
   S.Open
  
s.LoadFromFile(server.mappath(f))
   if err.number>0 then

      response.write err.number & ":"
& err.description
  
else
     
response.contentType="application/x-gzip"
     
response.addheader "Content-Disposition:","attachment; filename=" &
n
     
response.binarywrite(s.Read(s.size))
   end if
end
function
call dl("012922501.gif","t1.gif")
%>
<返回>

22.RecordSet的基本属性和方法

rs.movenext
将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst
将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N
将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N
设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数 
rs.bof
返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否

rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update
更新数据表记录

<返回>

23.获得查询获得的表的各个字段的名字

For i=0 to rs.fields.count-1
   response.write "
"&rs(i).Name&" "
Next

'取字段内容
rs.movefirst
while
not rs.eof
  For i=0 to rs.Fields.count-1
   
response.write(rs(i))
  Next
 
rs.MoveNext
wend

<返回>
 



Asp.net

1.ASP.net中如何在二个页面传递数据

 

一、提交数据
(1) 用服务器端控件后,再利用Server.Execute("send4.aspx");
或者Server.Transfer("receive1.aspx"); 提交。前者仍然保持原有的web控件,后者不保存。
(2)
写在URL参数里Response.Redirect("receive3.aspx?name=" +
this.TextBox1.Text);
(3) 通过HTML控件,加入带有action的form。

二、接收数据
(1)
按类接收数据
  if(Context.Handler is MyWebExample.send4)
 
{
    send4 send = (send4)Context.Handler;
   
Response.Write("Name:"+((TextBox)send.FindControl("TextBox1")).Text+"<p>");
 
}
(2) 从URL中接收

  if(!IsPostBack)
  {
   
Request.QueryString["text1"]

  }
(3) 从Form中接收Request.Form["text1"]
(4)
作为参数笼统接收Request.Params["text1"]

 

<返回>

 

2.如何添加用户自定义标签、自定义控件、定制控件

 

 <1>定制标签较容易,把HTML代码保存到一个文件。然后用二句话在需要的地方引用:

 
  <%@ Register TagPrefix="mycontrol" TagName="myc"
Src="myUserControl.ascx"%>
    <mycontrol:myc
runat="server" id="Myc1"></mycontrol:myc>

 <2>自定义控件

   
和定制标签类似,只是可以自己添加属性。

   

 

<返回>

 

 

3.添加客户端验证脚本
 

(1)添加JavaScript
   <script
language="javascript">
   function
ClientCheck(source,arguments)
  
{
      if(arguments.Value<1 ||
arguments.Value>100 )
     
{
        
arguments.IsValid=false;
        
return false;
     
}
      else
     
{
        
arguments.IsValid=true;
        
return true;
      }
  
}
   </script>

(2)添加CustomValidator控件,并且把ClientValidateFunction设为该函数

(3)设置ControlToValidate

 

<返回>

 

 

4.如何使得DataGrid有分页输出数据功能

(1).对DataGrid按右键,在弹出菜单的“属性生成器”中可以设置分页。
(2).接着对控件添加PageIndexChanged事件。并且输入以下代码
  
private void DataGrid1_PageIndexChanged(object source,
System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  
{
      DataGrid1.EditItemIndex =
-1;
      DataGrid1.CurrentPageIndex =
e.NewPageIndex;
     
DataGrid1.DataBind();
   }
 

<返回>
 

5.如何写广告控件的XML

<?xml
version="1.0" encoding="utf-8" ?>

<Advertisements>
<Ad>
  
<ImageUrl></ImageUrl>
  
<NavigateUrl>http://www.neusoft.com</NavigateUrl>
  
<AlternateText>欢迎</AlternateText>
  
<Keyword>Keyword</Keyword>
  
<Impressions>50</Impressions>
</Ad>
</Advertisements>

 

<返回>

 

6.如何利用Session和Application

 

使用Session和Application不要初始化,和普通的asp一样

  
if(Application["userCount"]==null)
     
Application["userCount"]=0;
  
else
     
Application["userCount"]=Convert.ToInt32(Application["userCount"])+1;

session用法和Application一样。

 

<返回>

 

7.如何利用Cookie

 

  
if(Request.Cookies["cookie"]==null)
  
{
      HttpCookie cookie = new
HttpCookie("cookie","1");
     
Response.Cookies.Add(cookie);

     
this.Label3.Text="Cookies is 1";
   }
  
else
   {
      HttpCookie cook =
Request.Cookies["cookie"];

     
Response.Cookies["cookie"].Value=(Int32.Parse(cook.Value)+1).ToString();

     
this.Label3.Text=string.Format("Cookies is
{0}",cook.Value);
   }

 

<返回>

8.利用ASP.net上传文件

 
1.从HTML控件栏中拖入一个文件浏览控件
  2.设置该控件在服务器端运行
 
3.给它的上传添加代码
   string
fileName=this.File1.PostedFile.FileName;
   string
UploadFileName=Request.MapPath(Request.ApplicationPath+"\\"+
System.IO.Path.GetFileName(fileName));
  
this.File1.PostedFile.SaveAs(UploadFileName);
 

<返回>

9.在Asp.net中自定义异常页面

  按异常处理优先级排序
  (0)在Global.asax的Application_Error添加代码
   
protected void Application_Error(Object sender, EventArgs e)

    {

        Context.ClearError();
       
Response.Write("Error");
       
Response.Redirect("errorpage.htm");

    }
 
(1)后台代码中的WebForm1_Error
    
aspx页面的属性中UI.Page的Error事件中添加异常处理代码
     private
void WebForm1_Error(object sender, System.EventArgs
e)
    
{
        Exception
ex=Server.GetLastError();
       
Session["error"]=ex.Message;
       
Server.ClearError();
       
Response.Redirect("error.aspx");
     }
 
(2)在html代码中加入ErrorPage
    
ErrorPage="http://www.21cn.com"
  (3)在Web.config中添加异常处理的页面
   
<customErrors mode="On"
defaultRedirect="error.aspx">
    <error
statusCode="401" redirect="error.aspx"/>
   
<error statusCode="404"
redirect="http://www.sina.com.cn"/>
   
</customErrors>
  (4)在IIS中设置异常处理页

<返回>

10.Asp.net的安全认证及Web.config的配置

 (1)在Web.config的配置   

   在<system.web>中修改选项
    
验证模式设为Form,并且验证页为
      <authentication
mode="Forms">
        <forms
loginUrl="Login.aspx" />
     
</authentication>
    
不允许匿名用户
     
<authorization>
       
<deny users="?" />
     
</authorization>

  
在</system.web>后加入不要验证就能使用数据库的页面,用于在该页访问数据库,察看是否存在该用户。
    
<location path="Reg.aspx">
      
<system.web>
        
<authorization>
          
<allow
users="*"/>
        
</authorization>
      
</system.web>
    
</location>

 
(2)在代码中按普通方式,例如要求对方输入信息查找数据库或者XML进行验证,验证通过后,执行这句就表示验证通过同时跳会开始进入的页面
     
System.Web.Security.FormsAuthentication.RedirectFromLoginPage(userName,true);
     
注销用 System.Web.Security.FormsAuthentication.SignOut();  

      如果不想跳回原处,可以先授权再redirect到其他页面 
System.Web.Security.FormsAuthentication.SetAuthCookie();

<返回>

11.Asp网页的EnableViewState属性对网页性能的影响

   
ViewState主要是在提交以后回显用的,它只有在页面中的数据是提交到本页时才有用,在这个时候,比如Textbox,你用EnableViewState="false",后台同样可以得到数据,但由于你提交到本页,所以提交以后此Textbox中为空;而如果用EnableViewState="true",则提交以后返回时页面中Textbox中为你提交以前的数据。
   
另外,除了页面Page中的EnableViewState,每个可以提交的控件,Textbox、Dropdownlist都有EnableViewState属性。实际上,回发的数据并不依赖于ViewState。回发的控件都实现了IPostBackDataHandler接口,该接口的LoadPostData方法中,会对返回的值和ViewState中的值进行判断,如果改变了的话,调用RaisePostDataChangedEvent方法触发相应的事件(对于TextBox来说就是TextChanged事件)。
   
如果你把EnableViewState="False",LoadPostData方法中返回的值始终会和文本框的默认值比较大小,也就是说,如果你在页面TextBox中改变值以后,每次你点按钮提交窗口都会触发TextBox的TextChanged事件LoadPostData中如果返回的值和ViewState中的值不同的话,将把TextBox的值设置成返回的值这就是你看到的结果

   
在很多情况下,把EnableViewState设为false,可以提高应用程序的性能。特别在等待后台把数据填充到DataGrid的情况下。如果这个时候设为true,那么cpu的时间都浪费
在序列化数据到 ViewState 中。
     每个控件(在标记上):sp:datagrid
EnableViewState="false" ?/>
     每个页面(在指令中):
<%@ Page EnableViewState="False" ?%>
    
每个应用程序(在 web.config 中): <Pages EnableViewState="false" ?/>

    更多请查看微软中国

<返回>
 

12.Web打印文档

<!--语言无关 保存成
.HTML-->
<html>
<head>
<meta
name=vs_targetSchema
content="http://schemas.microsoft.com/intellisense/ie5">
<title>网络打印模板页</title>
<meta
http-equiv="Content-Type" content="text/html;
charset=gb2312">
<!--media=print 这个属性可以在打印时有效-->
<style
media=print>
.Noprint{display:none;}
.PageNext{page-break-after:
always;}
</style>

<style>
.tdp
{
border-bottom:
1 solid #000000;
border-left: 1 solid #000000;
border-right: 0 solid
#ffffff;
border-top: 0 solid
#ffffff;
}
.tabp
{
border-color: #000000 #000000 #000000
#000000;
border-style: solid;
border-top-width:
2px;
border-right-width: 2px;
border-bottom-width:
1px;
border-left-width: 1px;
}
.NOPRINT {
font-family:
"宋体";
font-size:
9pt;
}
</style>

</head>

<body
>
<center class="Noprint" >
<p>
<OBJECT
id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0
width=0>
</OBJECT>
<input type=button value=打印
onclick=document.all.WebBrowser.ExecWB(6,1)>
<input type=button
value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>
<input
type=button value=页面设置
onclick=document.all.WebBrowser.ExecWB(8,1)>
</p>
<p>
<input type=button value=打印预览
onclick=document.all.WebBrowser.ExecWB(7,1)>
<br/>
</p>
<hr
align="center" width="90%" size="1"
noshade>
</center>

<table width="90%" border="0"
align="center" cellpadding="2" cellspacing="0"
class="tabp">
<tr>
<td colspan="3"
class="tdp">第1页</td>
</tr>
<tr>
<td
width="29%" class="tdp"> </td>
<td width="28%"
class="tdp"> </td>
<td width="43%"
class="tdp"> </td>
</tr>
<tr>
<td
colspan="3"
class="tdp"> </td>
</tr>
<tr>
<td
colspan="3" class="tdp"><table width="100%" border="0"
cellspacing="0" cellpadding="0">
<tr>
<td width="50%"
class="tdp"><p>这样的报表</p>
<p>对一般的要求就够了。</p></td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
<hr
align="center" width="90%" size="1" noshade class="NOPRINT"
>
<!--分页-->
<div
class="PageNext"></div>
<table width="90%" border="0"
align="center" cellpadding="2" cellspacing="0"
class="tabp">
<tr>
<td
class="tdp">第2页</td>
</tr>
<tr>
<td
class="tdp">看到分页了吧</td>
</tr>
<tr>
<td
class="tdp"> </td>
</tr>
<tr>
<td
class="tdp"> </td>
</tr>
<tr>
<td
class="tdp"><table width="100%" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td width="50%"
class="tdp"><p>这样的报表</p>
<p>对一般的要求就够了。</p></td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>

在基于框架的网页打印时,用如下函数可以打印某个框架内的网页
<input
type=button onclick="printweb(this)">
<script>
function
printweb()
{
this.focus();
window.print();
}
</script>
 

<返回>

13.将Web表格输出为word或者Excel格式的文件保存在客户端

  
Response.Clear();
   Response.Buffer= true;
  
if (Session["Language"]!=null &&
Session["Language"].ToString()!="EN")
  
{
     
Response.Charset="GB2312";
   }
  
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");

   if (Session["Language"]!=null &&
Session["Language"].ToString()!="EN")
  
{
     
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
  
}//设置输出流为简体中文
   Response.ContentType =
"application/ms-excel";//设置输出文件类型为excel文件。
  
//application/ms-word || application/ms-txt || application/ms-html ||
或其他浏览器可直接支持文档

   this.EnableViewState = false;

   System.Globalization.CultureInfo myCItrad = new
System.Globalization.CultureInfo("ZH-CN",true);
  
System.IO.StringWriter oStringWriter = new
System.IO.StringWriter(myCItrad);
  
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new
System.Web.UI.HtmlTextWriter(oStringWriter);
  
DataGrid1.RenderControl(oHtmlTextWriter);
//DataGrid1为DataGrid控件,也可以是动态生成的HtmlTable 
<---唯一需要修改的地方
  
Response.Write(oStringWriter.ToString());
  
Response.End();
 

<返回>



JSP

1.引入其他包和设置Html参数
 
  字体<%@ page lanage="java"%>
  <%@ page
import="java.io.*","java.util.Date"%>
  <%@ page
contentType="text/html; charset=GBK" %>
  <%@ page
buffer="24kb"%>

<返回>

2.包含文件,同时带设置参数

  <jsp:param
name="userName" value="kes2000">

 
<%@ include file="filename"%>
  String
a=request.getParameter("userName");
 
out.print(a);

<返回>

3.使用页面跳转并带参数

 
<jsp:forward page="result.jsp">
     <jsp:param name="number"
value="10">
  </jsp:forward>

<返回>

4.使用Applet

  
<jsp:plugin type="applet" code="B.class" codebase="/myfile"
jreversion="1.2" width="200" height="260" > 
</jsp:plugin>

<返回>

5.
转为为数字

  
number=Double.parseDouble(textContent);

<返回>

6.
读取中文

   String
str=request.getParameter("girl");
   byte
b[]=str.getBytes("ISO-8859-1");
  
str=new String(b);

<返回>

7.Request对象(读取页面或者Form参数)

 
request.getProtocol()   getServletPath()  
getContentLength()   getMethod()   getHeader(String
s)   getRemoteAddr()   getRemoteHost() 
getServerName()
 
request.setContentType("application/msword;charset=GB2312");

<返回>

8.Response对象和out对象(输出值)

 
response.sendRedirect("example.jsp");  
setStatus(500);   setStatus(200);
 
out.print("hello");

<返回>

9.Session
和Application

 String
s=session.getId();   setAttribute(key,value) 
getAttribute(key)  
removeAttribute(key)   invalidate()  
getCreationTime()   getLastAccessedTime()

<返回>

10.JSP连接数据库
 

一、jsp连接Oracle8/8i/9i数据库(用thin模式) <%@ page
contentType="text/html;charset=gb2312"%>
<%@ page
import="java.sql.*"%>
<html>
<body>

<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

String url="jdbc:oracle:thin:@localhost:1521:orcl";

//orcl为你的数据库的SID
String user="scott";
String
password="tiger";
Connection conn=
DriverManager.getConnection(url,user,password);
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()) {%>

您的第一个字段内容为:<%=rs.getString(1)%>

您的第二个字段内容为:<%=rs.getInt(2)%>
<%}%>

<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();

stmt.close();
conn.close();
%>
</body>

</html>
二、jsp连接Sql Server7.0/2000数据库 <%@ page
contentType="text/html;charset=gb2312"%>
<%@ page
import="java.sql.*"%>
<html>
<body>

<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

String
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

//pubs为你的数据库的
String user="sa";
String password="";

Connection conn= DriverManager.getConnection(url,user,password);

Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()) {%>

您的第一个字段内容为:<%=rs.getString(1)%>

您的第二个字段内容为:<%=rs.getInt(2)%>
<%}%>

<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();

stmt.close();
conn.close();
%>
</body>

</html>
三、jsp连接DB2数据库 <%@ page
contentType="text/html;charset=gb2312"%>
<%@ page
import="java.sql.*"%>
<html>
<body>

<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver
").newInstance();
String url="jdbc:db2://localhost:5000/sample";

//sample为你的数据库名
String user="admin";
String password="";

Connection conn= DriverManager.getConnection(url,user,password);

Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()) {%>

您的第一个字段内容为:<%=rs.getString(1)%>

您的第二个字段内容为:<%=rs.getInt(2)%>
<%}%>

<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();

stmt.close();
conn.close();
%>
</body>

</html>
 
四、jsp连接Informix数据库 <%@ page
contentType="text/html;charset=gb2312"%>
<%@ page
import="java.sql.*"%>
<html>
<body>

<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();

String url =

"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;

user=testuser;password=testpassword";
//testDB为你的数据库名

Connection conn= DriverManager.getConnection(url);
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()) {%>

您的第一个字段内容为:<%=rs.getString(1)%>

您的第二个字段内容为:<%=rs.getInt(2)%>
<%}%>

<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();

stmt.close();
conn.close();
%>
</body>

</html>
五、jsp连接Sybase数据库 <%@ page
contentType="text/html;charset=gb2312"%>
<%@ page
import="java.sql.*"%>
<html>
<body>

<%Class.forName("com.sybase.jdbc.SybDriver").newInstance();

String url =" jdbc:sybase:Tds:localhost:5007/tsdata";

//tsdata为你的数据库名
Properties sysProps =
System.getProperties();
SysProps.put("user","userid");

SysProps.put("password","user_password");
Connection conn=
DriverManager.getConnection(url, SysProps);
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()) {%>

您的第一个字段内容为:<%=rs.getString(1)%>

您的第二个字段内容为:<%=rs.getInt(2)%>
<%}%>

<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();

stmt.close();
conn.close();
%>
</body>

</html>
六、jsp连接MySQL数据库 <%@ page
contentType="text/html;charset=gb2312"%>
<%@ page
import="java.sql.*"%>
<html>
<body>

<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();

String url
="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"

//testDB为你的数据库名
Connection conn=
DriverManager.getConnection(url);
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()) {%>

您的第一个字段内容为:<%=rs.getString(1)%>

您的第二个字段内容为:<%=rs.getInt(2)%>
<%}%>

<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();

stmt.close();
conn.close();
%>
</body>

</html>
七、jsp连接PostgreSQL数据库 <%@ page
contentType="text/html;charset=gb2312"%>
<%@ page
import="java.sql.*"%>
<html>
<body>

<%Class.forName("org.postgresql.Driver").newInstance();

String url ="jdbc:postgresql://localhost/soft"
//soft为你的数据库名

String user="myuser";
String password="mypassword";

Connection conn= DriverManager.getConnection(url,user,password);

Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()) {%>

您的第一个字段内容为:<%=rs.getString(1)%>

您的第二个字段内容为:<%=rs.getInt(2)%>
<%}%>

<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();

stmt.close();
conn.close();
%>
</body>

</html>

<返回>

11.使用同步连接

  
if(conn!=null){
     
synchronized(conn){
         //do
something
      }
   }
<返回>

12.使用beans  

Jsp代码 Bean代码
<jsp:useBean id="jsp2BeanId"
scope="session" class="myjsp.Jsp2Bean" />
<jsp:setProperty
name="jsp2BeanId" property="*" />
<jsp:getProperty
name="jsp2BeanId" property="sample" />

<@
import="tom.jiafei.primNumber">

 public class Jsp2Bean
{
    private String sample = "Start
value";
    //Access sample
property
    public String getSample()
{
        return
sample;
    }
    //Access sample
property
    public void setSample(String newValue)
{
        if (newValue!=null)
{
           
sample = newValue;
       
}
    }
 }

<返回>

 



用VB写ASP的组件

1.用VB编写一般组件

(1)在建立工程时候,ActiveX
Dll方式建立工程

(2)添加一个类,会参数如下代码
Option Explicit

Private Sub
Class_Initialize()  '构造函数

End Sub

Private Sub
Class_Terminate()  '析构函数

End Sub
(3)添加自己的函数
Function
String2Integer(data As String)
   If Len(data) = 1
Then
     String2Integer = "0" &
data
   Else
     String2Integer =
data
   End If
End Function

<返回>

2.用VB编写ASP组件(包括Response,Request,Session等内建对象)

Visual Basic工程

  创建组件的步骤是:启动Visual
Basic,在对话框提示时,选择要创建的工程类型,这里选择ActiveX DLL:

设置工程的属性

  创建工程的名字为Project1,它包含一个单独的类模块叫做class1。这些就足够了。点击菜单“Project/Project1
Properties”,在出现的如下所示画面中设置工程的属性:

  在General/Tab页面上有一对需要注意的信息。首先,工程名Project
Name已经改变为ASPToday,这将形成调用名字的第一个部分,这个调用的名字就是被ASP页面使用的CreateObject的名字。这里还选择了Unattended
Execution选项,从而禁止了图形界面的交互(比如错误信息对话框),这么做,有可能导致IIS错误。

  在Make页面唯一发生重要变化的是设置Auto
Increment选项,这样做,当程序编译后,组件的版本号就会提升。调试程序时,知道组件的版本号是非常有用的,特别是当拥有一个source
safe系统时,不过这是另外的话题。

  编译(Compile)页面是选择让编译器如何创建组件的地方。在这里选择Optimize For Small
Code,因为我要让Web服务器得到它能得到的最多内存。这个页面真正重要的选项是DLL基础地址,这和计算机调入组件相关的代码库的方式有关。做为一个32位的系统,会留下2兆字节的内存装入代码。你要设置的基础地址必须是建立在64K基础上,用英语方式表达出来就是需要设置类似
&Hxxxx0000 的数值,xxxx表示从1100到7FFF的16进制数字。

在Component页面,初始的版本兼容性默认是Project
compatibility,如果不编译成第一个版本,这将会是不错的。当编译时,为了有利于注册表,就应该改变为Binary
Compatibility,如上图所示。请查阅在线帮助得到关于这个复杂项目的详细资料。

设置工程的引用

  完成了工程属性的选择,下一步就是设置组件运行的ASP环境。通过引用对话框实现这一步。选择菜单“Project
/ References”,出现一个对话框,选择组件需要的库,在这里选择“Microsoft Active Server Pages Object
Library”。

  通过上述引用,在程序中就可以访问ScriptingContext对象,从而能够使用在ASP页面中的5个对象:Request,
Response, Session, Application 和 Server。

  如果在列表中找不到“Microsoft
Active Server Pages Object
Library”,点击“Browse”按钮定位寻找。ASP库引用实际上就是一个后缀为.tlb的文件,默认的路径应该位于:\Program
Files\Microsoft Visual Studio\ Common IDE\IDE98\ASP.TLB。

在组件中命名对象

  在开始编程前,工程的唯一类模块class1,实在应该含有一个更有意义的名字。在工程浏览(Project
Explorer)窗口中选择类项目:

  (如果在编程环境中看不到这个窗口,按“Ctrl+R”组合键调出它)在上面的窗口中就可以修改类的名字属性,接着出现属性对话框。

  修改名字为VisitorID。如果看不到这个对话框,按F4显示它。

编制代码

  到此为止,已经为组件设置了足够的属性,建立好了在ASP页面中调用组件实例的基础。但是,还需要一个接口方法。下面的图表显示了将要建立的接口(用长方形描述对象的方法,用园描述属性)。

在Visual
Basic中,打开类VisitorID的代码编辑器(在工程浏览器中双击它的图标)。

《1》首先建立类的一些变量声明:
Private mstrError As
String
Private ojbSContext As ScriptingContext  '定义了一个ScriptingContext类型的对象变量,ASP处理器根据这个应用传递给组件。
Private objResponse As
Response
Private objRequest As Request
Private
objApplication As Application
Private objServer As
Server
Private objSession As Session
Private
Const VISITOR_COOKIE = "VID"

Private
Type GUID
  Data1 As Long
  Data2 As Integer
 
Data3 As Integer
  Data4(7) As Byte
End
Type

《2》其次定义类的函数:

 (1)首先看看OnStart,用于初始化与ASP内置对象的连接
(Request,Response,Session)

Public Function OnStartPage(ByVal mysc As
ScriptingContext)
Dim strID As String
Dim dtmExpires As
Date

'IMPORTANT NEVER Leave a public method
without an error handler.
On Error Resume Next

Set
ojbSContext = mysc  'ASP处理器检查Scripting Context,并存储引用到事先声明的变量中。
Set
objResponse = mysc.Response
Set objRequest = mysc.Request
Set
objServer = mysc.Server
Set objApplication = mysc.Application
Set
objSession = mysc.Session

'Exit Function
End Function

 
(2)OnEndPage方法是放置清理代码的地方。

Public Function OnEndPage()
'Release Scripting context
Set ojbSContext =
Nothing
Set objResponse = Nothing
Set objRequest = Nothingt
Set
objServer = Nothing
Set objApplication = Nothing
Set objSession =
Nothing
End Function

  (3)自定义函数GetGUID 

Public
Function GetGUID() As String
 GetGUID =
"00000000"
End Function

《3》最后定义属性

Private mvarResult As String
Public
Property Let Result(ByVal vData As String)
   mvarResult =
vData
End Property
Public Property Get Result() As
String
   Result = mvarResult
End
Property

   可以通过对类按右键,选择 Add -> Class Module
可视化地添加函数和属性

编译组件和分发组件

  为了使用新组件,必须将之生成DLL文件。选择菜单“File/make
ASPToday.dll ...”,接着选择生成组件的路径。

  组件创建完成后,就要建立一个组件分发软件包。除了Visual
Studio自带的,有许多第3方工具可以做这件事情,它们都提供了强大的向导来帮助建立一个安装程序,从而在Web服务器上安装组件。
   

    也可以手动发布,在命令提示符中输入 regsvr32 c:\test\fc1.dll
   
手动卸载,在命令提示符中输入       regsvr32
c:\test\fc1.dll
/u

在ASP页面中使用组件

  要实现组件要完成的任务“设置Cookie和到期时间”,需要在页面主体(Body)送到浏览器之前,在HTTP头部完成GUID的计算。执行下面的代码将足够为浏览器设置一个永久的GUID。

<
%@ LANGUAGE="VBSCRIPT" % >
< %
Dim oCookieSetter
Set
oCookieSetter = Server.CreateObject ("ASPToday.VisitorID")
% >

...

  创建这个独立组件的简单对象,足够可以完成要求的任务。这样做,就保证了Server.CreateObject方法不仅创建了一个组件的实例,而且将检查组件的一对方法:OnStartPage()和
OnEndPage(),它们将在适当的时候被执行。这是创建ASP组件、访问ASP内在对象的关键。

如:组件编译后,又要修改,发生”权限被拒绝,’f:\csdn\fcom.dll’”等等的错误。


修改组件时权限问题的解决

 
可以使用以下几种方式来解决
  1. 重新启动iis.
   
在控制面板中找到管理工具->internet信息服务->右键点击左边树图第二层本地计算机->所有任务->重新启动IIS即可,这个操作需要一点时间。
   
此时你可以看到这个dllhost.exe的进程已经关闭
  2.
针对单个网站或者虚拟目录的重启
    
在控制面板中找到管理工具->internet信息服务->找到你的组件运行的虚拟目录。->右键属性->第一项虚拟目录中->应用程序保护->点击卸载即可。此时你可以看到这个dllhost.exe的进程已经关闭
 
3. 如果你觉得麻烦,直接在Windows任务管理器中结束该进程(有时是多个进程)既可。不过要多结束几次(平均3次可以得手)。
 
4. 最后一种方法
    
在控制面板中找到管理工具->组件服务->在树图中点击计算机,我的电脑,正在运行的进程->IIS Out-Of-Process
Pooled Applications(2860)->右键关闭即可

<返回>

3.
在VB组件里面添加对数据库的访问


(1)在WebCVO项目中,可以通过  Private
mobjDataAccess As New uti_DataCOM.DataAccess 构建对数据库的访问

例如

Private mobjDataAccess As New
uti_DataCOM.DataAccess

Dim searchRS As New
ADODB.Recordset
Dim str As String

searchRS.CursorLocation =
adUseServer
searchRS.CursorType = adOpenKeyset
searchRS.LockType =
adLockReadOnly

Set searchRS =
mobjDataAccess.SelectSQL(SearchSQL)
searchRS.PageSize =
PageSize

If Not searchRS.EOF Then
  
str=searchRS("UserName")
End If

searchRS.Close
Set searchRS =
Nothing

(2)在其他地方通过如下方法实现

设置工程的引用

  选择菜单“Project
/ References”,出现一个对话框,选择组件需要的库,在这里选择“Microsoft ActiveX Data Objects 2.7
Library”,如果没有这个版本的,选择其他版本的ADO
library。

创建数据库对象
 
 
这里的数据库对象不要用server来创建,而改为直接创建。或者用参数方式从asp传入已经建立好的连接。

Public Sub MakeSearchValue(conn As
ADODB.Connection)
  Dim Rs As New
ADODB.Recordset
  Rs.Open "select top 10 * from
tbl_webPri_Privileges", conn, 1
  While
Not (Rs.EOF)
    objResponse.Write (Rs("privilegeName")
& "<br>")
    Rs.MoveNext
  Wend
  Rs.Close
  Set Rs =
Nothing
End Sub

<返回>

4.函数返回多个值和数组型属性

   Dim
a(3)
    
    Public
Property Get MyArray() As Variant
     a(0) = 1

     a(1) = 2
     a(2) =
3
     MyArray = a()

    End Property
   调用时为:

   Dim n As New Class1
    

   Print n.MyArray(1)

<返回>

5.在VB控件中编写对文件的读写

folderName =
临时文件的目录
todayString = Year(Now()) & "-" & Month(Now()) &
"-" & Day(Now())
    
'如果定义了格式化日期的函数用   todayString = Year(Now()) & "-" &
String2Integer(Month(Now())) & "-" &
String2Integer(Day(Now()))
subFolodName = folderName & "\" &
todayString
fileName = subFolodName & "\" & 你的文件名字 &
".html"

Set objFile =
CreateObject("Scripting.FileSystemObject")
If
objFile.FolderExists(subFolodName) = False Then
  
objFile.CreateFolder (subFolodName)
End If

Set TempFile =
objFile.CreateTextFile(fileName, True)
TempFile.Write ("hello
World")

TempFile.Close

<返回>

 

 

时间: 2024-11-05 17:23:56

动态网页设计笔记的相关文章

动态网页设计:ASP连接数据库的11种方法

动态|连接数据库|设计|网页|网页设计 ASP连接的11种方法--本文总结了使用ASP链接各种的方法: 1.Access的DSN-less连接方法: setadocon=Server.Createobject("adodb.connection")adoconn.Open"Driver={MicrosoftAccessDriver(*.mdb)};DBQ="&_Server.MapPath("所在路径") 2.AccessOLEDB连接方

动态网页设计-关于设计动态网页,需要?

问题描述 关于设计动态网页,需要? 请问设计动态网页需要什么知识,求详细点的解答,如果这个问题很多人问过,勿喷 解决方案 设计网页有多个方向,比如C#(.NET),软件功能比较强大,操作起来简单,但是发展前景比较依赖于微软的发展方向. php是一个专门用于编写动态网站的语言,如果发展方向定下来在这方面,可以学习. 个人比较喜欢java,前几年比较流行servlet,但是其和静态网页在一块编写,不利于分工.现在比较流行的技术是ajax.基本上网站开发分为三个部分:前端,后端,数据库 前端主要是ht

企业网站建设为何选择动态网页设计

众所周知,网站主要是分静态网页和动态网页.静态网页是以HTML语言制作,而动态网页则以ASP或PHP或 JSP等语言制作.简而言之,静态网页就是以静态化的页面和代码组成,永远不会变.而动态网页则相反由程序编写页面构架,再从数据调用对应内容进行显示.那么,为何企业网站建设大多都选择动态网页呢? 1.动态页面以数据库为基础,降低工作量 动态网站采用了数据库技术,通过代码调用数据库来显示,依靠动态网站技术,也可以将网页内容转化为静态网页发布.动态网站采用静动结合的原则,适合采用动态网页的地方用动态网页

PHP Squid中可缓存的动态网页设计_php技巧

当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期.呵,我只会php,就用php写一个,别的程序也是一样 见我下面的程序,呵呵,5分钟过期. <?php $headers = apache_request_headers()

基于ASP.NET技术的驾校网页设计

asp.net|设计|网页|网页设计 摘 要 本文以驾校管理系统为例,介绍如何利用asp.net和SQL server 2000来进行动态网页设计,以满足用户对数据库实时更新以及查询的要求. 关键词 asp.net; c#; SQL server 2000 引言 近年来,随着Internet的迅速发展以及网页制作技术的日臻完善,驾校信息管理系统软件的设计也日趋简单化和规范化.这里我们将采用asp.net动态网页技术,通过编写c#脚本语言对SQL server 2000数据库进行操作,以实现系统中

网页设计教学或学习计划

节次 教学内容 时数 1 网页设计概述 2 2 HTML的基本标志与格式标志 2 3 HTML的文本.图片与超级链接标志 2 4 HTML表格.表单与框架标志 2 5 HTML标志综合运用案例 2 6 Dreamweaver中简单WEB站点建立与管理 2 7 Dreamweaver中静态网页设计 2 8 Dreamweaver中动态网页设计 2 9 Dreamweaver综合性网页设计案例 2 10 VBScript概述 2 11 VBScript的基本元素与输入输出 2 12 VBScript

网页美工设计Photoshop+Flash+Dreamweaver从入门到精通》——1章 初识网页设计与配色1.1 网页设计的相关术语

1章 初识网页设计与配色 为了能够使网页初学者对网页设计有个总体的认识,在介绍设计制作网页前,本书首先介绍网页设计的基础知识,如网页的相关术语.网页设计常用工具Dreamweaver.Flash和Photoshop以及网页的布局与配送.通过本章的学习可以为后面设计制作更复杂的网页打下良好的基础. 1.1 网页设计的相关术语 网页美工设计Photoshop+Flash+Dreamweaver从入门到精通 在学习网页设计之前,先来了解一下网页中静态网页和动态网页的基本概念. 1.1.1 什么是静态网

动态网页学习:JSP学习笔记全记录

js|笔记|动态|网页 JSP学习笔记(一)-----概述 JSP学习笔记(二)-----使用Tomcat运行JSP文件 JSP学习笔记(三)-----使用JSP处理用户注册和登陆 JSP学习笔记(四)-----JSP动作的使用 JSP学习笔记(五)-----JSP中使用JavaBean JSP学习笔记(六)-----在多个JSP页面之间传递参数 JSP学习笔记(七)-----猜数字游戏 JSP学习笔记(八)-----include的运用 JSP学习笔记(九)-----JSP标签库

JavaScript + PHP 应用二:网页设计中树形菜单的动态实现

树形菜单,熟悉Windows程序管理器的读者一定不会陌生.单击项目左侧的+号,项目展开:再次单击,项目收缩.读过很多篇有关树形菜单的JavaScript实现方法,原理很简单,都是利用Style中display属性的控制.笔者本文的重点并不侧重于此,倒是想谈一谈如何实现每一次从数据库中提取数据并动态更新树形菜单. 树形菜单主要用来导航.网站有很多栏目,每个栏目下有很多子栏目,栏目经常变动,如增加新栏目,改变现有栏目名称,调整主次栏目之间关系等等,如果每一次都去改动页面代码,非常不便.而且因为信息都