WEB小知识学习集锦

来源:互联网 发布:游戏软件源码 编辑:程序博客网 时间:2024/04/30 13:36
1.防止JSP或SERVLET中的输出被浏览器保存在缓冲区中:
浏览器在默认情况下会把浏览过的网页保存在缓冲区中,在调试时,一般不希望这样.把下面的脚本加入程序中,就可防止JSP或SERVLET中的输出被浏览器保存在缓冲区中 
<%
  response.setHeader("Expires","-1");
  response.setHeader("Pragma","no-cache");
  response.setHeader("Cache-control","no-cache");
%>

2.<body onload="">
 onload 事件是页面载入时触发的事件
 onresize 调整页面位置
 onunload 关闭浏览器

3.cellpadding属性用来指定单元格内容与单元格边界之间的空白距离的大小
  CELLSPACING属性(以像素为单位)控制了栏位与栏位间的距离。

4.struts与jsf区别
  在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。

5.html特殊字元
&nbsp; 代表一个不断行空白
&lt;   <
&gt;    >
&amp;  &
&quot;  "

6.JSP有四种范围,分别为:Page,Request,Session,Application
  Page,指的是单单一页JSP Page的范围,若要将数据存入Page范围时,可以用pageContext对象的setAttribute()和getAttribute()
  Request的范围是指在一JSP网页发出请求到另一个JSP网页之间,随后这个属性就失效.
  Session的作用范围为一段用户持续和服务器所连接的时间,当与服务器断线后,这个属性就无效.只要将数据存入session对象,数据的范围就为Session.
  Application 的作用范围在服务器一开始执行服务,到服务器关闭为止.Application的范围最大,停留的时间也最久.

7.与Servlet有关的隐含对象:
  page:表示Servlet本身
  config:存放Servlet的初始参数值

  与Input/Ouput有关的隐含对象
  request 对象表示客户端请求的内容
  reponse 对象表示响应客户端的结果
  out 对象负责把数据的结果显示到客户端的浏览器

8.在 Microsoft 浏览器上创建 XMLHttpRequest 对象
  xmlHttp=new ActiveXObject("MSxml2.XMLHTTP");
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
非 Microsoft 浏览器
 xmlHttp = new XMLHttpRequest();

9.<label>标识有两个属性,一个是for,一个是accesskey
这个Lable是为哪个元件服务的?而ACCESSKEY则定义了访问这个元件的热键。

10.JSP的执行过程
  1.客户端发出Request
  2.JSP Container将JSP转译成Servlet的源代码
  3.将产生的Servlet的源代码经过编译后,并加载到内存执行/
  4.把结果Response(响应)至客户端

11.JSP的Quoting和Escape规则
  %>----%/>
  '-----/'
  "-----/"
  /-----//
  <%----&lt;%

12 Directives Elements
  起始符号:<%@ 终止符号:%>
  JSP1.2中有三种指令:page,include,taglib

  Scripting Elements包含三部分
  声明(Declarations) <%! %>
  Scriptlets         <% %>
 表达式(Expressions) <%= %>

  Action Elements
  主要有20项Action元素
 <jsp:useBean>
  <jsp:setProperty>
  <jsp:getProperty>
  <jsp:include>
  <jsp:forward>
  <jsp:param>
  <jsp:plugin>
  <jsp:params>
  <jsp:fallback>
  <jsp:root>
  <jsp:declaration>
  <jsp:scriptlet>
  <jsp:expression>
  <jsp:text>
  <jsp:output>
  <jsp:attribute>
  <jsp:body>
  <jsp:element>
  <jsp:invoke>
  <jsp:doBody>
    
13.JSP四种范围
  Page
     pageContext.getAttribute()  只能作用当前页
  Request
    范围是指在一JSP网页发出请求到另一个网页之间,随后这个属性就失效
   Session
       范围为一段用户持续和服务器所连接的时间,但与服务器断线后,这个属性就无效.
  Application 
    范围在服务器一开始执行服务,到服务器关闭为止.

14.隐含对象
 与Servlet有关的隐含对象
   page 对象表示Servlet本身
   config对象则存放Servlet的初识参数值
 
 与Input/Output有关的隐含对象request ,reponse,out
   request对象包含所有请求的信息,如:请求的来源,标头,cookies和请求相关的参数值等等
   reponse 对象主要是将JSP处理数据后的结果传回客户端.
   out对象能把结果输出到网页上.

 与Context有关的隐含对象:session,application,pageContext

与Error有关的隐含对象:exception
  必须声明<%@ page isErrorPage="true" %>


15.css
相对长度大小:
 em:相对于父对象的文字大小
 ex:相对于特定字体中的字母X的高度
 px:相对于特定设备的分辨率;是最常用的单位

16.<generator class="uuid.hex"/>会自动生成32位字符串作为主键值
 <generator class="assigned" /> 可以进行自定义主键值

17.PRIMARY KEY主键,纪录不重复字段可以设成主键方便检索,关系数据库中的作用很大。

18.Query q = session.createQuery("from Cat as c");
 q.setFirstResult(20000);
 q.setMaxResults(100);

19.学习夏昕的SpringGuide.pdf发现的问题,如是我个人理解问题请大家指正:
1、第33页最后一行:应该是successView
2、第36页,第3个小注的位置,对应上面的问题,要返回的应该是:getSuccessView()
3、第36页,第1个小注,类的参数有问题,应该是:protected ModelAndView onSubmit(Object cmd),BindException ex不需要
4、不能算是问题:记得在web-inf/lib下面除要放入spring.jar、log4j.jar、commons-logging.jar外,还需要两个JAR:jstl.jar、standard.jar
5、第70页:<form action="/login.action"> 应该是:<form action="login.action">

呵呵,这个文档在我学习的时候起了很大的作用,上面的几个问题导致我用了一整天才调试好这段范例,但解决后印象特别深刻。

20.${status.*}对应的实际是类
  org.springframework.web.servlet.support.BindStatus
BindStatus类提供了与当前CommandClass对象绑定的状态信息,如:
${status.errorMessages}对象绑定对象属性的错误信息
${status.expression}对应绑定对象属性的名称
${status.value}对应绑定对象属性的当前值

21.webwork
  com.opensymphony.webwork.dispatcher.ServletDispatcher接收到Servlet Container传递过来的请求,将进行一下几个动作:
  (1)从请求的服务名(/login.action)中解析出对应的Action名称(Login)
  (2)遍历HttpServletRequest,HttpSession,ServletContext中的数据,将其复制带Webwork的Map实现中.至此之后,所有的数据操作均在此Map结构中进行,从而将内部结构与Servlet API相分离.
  (3)以上述信息为参数,调用ActionProxyFactory创建相应的ActionProxy实例.ActionProxyFactory将根据Xwork配制文件(xwork.xml)中的设定,创建ActionProxy实例,ActionProxy中包含了Action的配制信息
  (4)ActionProxy创建相应的Action实例,

22.web开发的路径问题
在JSP中
获得Web项目的上下文路径
String strContextPath = request.getContextPath();
根目录所对应的绝对路径: request.getRequestURI()
文件的绝对路径String strPathFile = application.getRealPath(request.getRequestURI());
目录的绝对路径:  String strDirPath = new File(application.getRealPath(request.getRequestURI())).getParent();


  //Servlet中
  //JSP中的application对象就是Servlet中的ServerContext,所以在Servlet中是如此获得
  //import java.io.File;

System.out.println("根目录所对应的绝对路径:" + request.getServletPath() + "<br/>");

String strPathFile = request.getSession().getServletContext().getRealPath(request.getRequestURI());
System.out.println("文件的绝对路径:" + strPathFile + "<br/>");

String strDirPath = new File(request.getSession().getServletContext().getRealPath(request.getRequestURI())).getParent();
System.out.println("目录的绝对路径:" + strDirPath + "<br/>");

//获取Web项目的全路径
String strFullPath = getServletContext().getRealPath("/");
out.println(strFullPath);
//获得Web项目的上下文路径
String strContextPath = request.getContextPath();
out.println(strContextPath);

23.getOutputStream() has already been called for this response异常的原因和解决方法
在使用完输出流以后调用以下两行代码即可:
out.clear();
out = pageContext.pushBody();

24.post 传参登陆

25.邮箱格式合法性检验的javascript代码
 function test_email(strEmail){
  var myReg=/^[_A-Za-z0-9]+@([_A-Za-z0-9]+/.)+[A-Za-z0-9]{2,3}$/;
  if(myReg.test(strEmail)||strEmail="")
  return true;
  return false;
}

26.
<a href=url target=_blank>新窗口
<a href=url target=_self>本窗口
<a href=url target=_parent>父窗口
<a href=url target=_top>整个浏览器窗口

27:js实现页面跳转的几种方式
第一种:
    <script language="javascript" type="text/javascript">
           window.location.href="login.jsp?backurl="+window.location.href;
    </script>

第二种:
    <script language="javascript">
    alert("返回");
    window.history.back(-1);
   </script>

第三种:
   <script language="javascript">
    window.navigate("top.jsp");
  </script>

第四种:
   <script language="JavaScript">
          self.location='top.htm';
   </script>

第五种:
   <script language="javascript">
          alert("非法访问!");
          top.location='xx.jsp';
   </script>

28.以支持多种浏览器的方式创建 XMLHttpRequest 对象


/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @*/

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}
现在先不管那些注释掉的奇怪符号,如 @cc_on,这是特殊的 JavaScript 编译器命令,将在下一期针对 XMLHttpRequest 的文章中详细讨论。

27.<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行

28.用JS改变表格中某一单元格的值。只有table有ID值
<table border=1 width=200 height=150 id='tab'>
<tr><td>111</td><td>111</td></tr>
<tr><td>222</td><td>222</td></tr>
<tr><td>333</td><td>333</td></tr>
<tr><td>444</td><td>444</td></tr>
</table>
<p align=center><input type='button' onclick='change()'>
<script>
function change(){
document.getElementById('tab').rows[0].childNodes[0].innerText = 'aaa';
}
</script>

<table id="test">
<tr>
<td>hello</td>
</tr>
</table>
<script language="JavaScript">
alert(document.getElementById("test").rows[0].cells[0].innerText);
</script>

29.javascript 事件
onblur 使用在form元素,当一个元素失去焦点时执行
onchange 使用在form元素,当一些改变时执行
onclick 鼠标点击元素后执行
ondblclick 鼠标双击元素后执行
onfocus 当元素得到焦点时执行
onkeydown 当一个按键按下执行
onkeypress 当一个按键按下释放后执行
onkeyup 当一个按键释放后执行
onload 使用在body标签,当页面载入时执行
onmousedown 鼠标按下时执行
onmousemove 鼠标指针在元素上移动时执行
onmouseout 鼠标指针离开元素时执行
onmouseover 鼠标指针越过元素时执行
onmouseup 放松鼠标时执行
onreset 使用在form元素,初始化form时执行
onselect 使用在form元素,元素被选择时执行
onsubmit 使用在form元素,form提交时执行
onunload使用在