JSP+Ajax网站开发小知识

一.JSP基础

1.<select  name="love"  size="3">其中的size属性指定了列表框显示选项的条数,如果所有选项多于这个数,将会出现滚动条。

2.addCookie(Cookie  cookie)方法将其放入客户端,获取Cookie对象可调用request对象的Cookie[]  getcookies()方法。

Cookie   myCookie  =  new  Cookie("name",  "Tom");

respense.addCookie(myCookie);   //将myCookie保存到客户端

3.当用户登录网站时,系统将为登录用户生成一个独一无二的session对象,并且不同的session对象不会相互干扰。这样就可以使用session对象存储特定的用户会话过程中的数据,当用户在页面之间跳转时,存储在session对象中的数据不会被清除,而是跟踪着用户在同一站点漫游过程中始终存在,只有当会话过期或被放弃后,服务器才终止维持这个对象。

4.<button  onclick="location.href=‘shop.jsp‘">继续购买商品</button>

5.application对象是JSP的一个内置对象,它是ServletContext类的实例。服务器启动后,就产生了appliaction对象,客户在网站的各个页面之间跳转浏览时,appliaction对象一直保持存在且是唯一的,直到服务器关闭。但是,与session对象不同的是,所有客户的application对象都是同一个,即所有客户共享appliaction对象,这样appliaction对象就可以起到一个全局变量的作用。

6.编写读取文件的核心代码。这里使用了java.io包里的几个类。类File是文件和目录路径名的抽象表示形式,其构造方法“public  File( String  parent,  String  child ) "根据父路径名字符串和子路径名字符串创建一个新的File对象;类FileReader是用字符流方式来读取字符文件的便捷类,其构造方法“public  FileReader( File  file )”创建一个新的从给定的File对象中读取文本,对一个字符输入流对象进行包装,能够缓冲各个字符,从而提供字符,数组和行的高效读取,其构造方法“public 
BufferedReader ( Reader  in )”创建一个以默认大小为缓冲区的缓冲字符输入流,可以对文本文件按行读取。

7.在这里创建的File对象必须用绝对路径:“C:\\Tomcat\\webapps\\JSP_Ajax”。此外,目录分隔符不能为“\”,必须为“\\”。

8.strB.append("<xmp>").append(str).append("</xmp>");由于浏览器遇见HTML代码总要进行解释,从HTML文件里读取的HTML标记全被浏览器“截获”而不被显示;而xmp标签可以让浏览器不解释其内部的所有内容(包括HTML标记),从而使读取到的HTML标记才会显示出来。

二.JSP与数据库

1.ResultSet类型的rs变量,用来保存从数据库里提取出来的记录,最后通过一个循环把所有的记录显示出来。

2.java.sql.PreparedStatement类是Statement的子类,并继承了Statement的所有功能。另外,它还添加了一整套方法,用于设置发送数据库以取代IN参数占位符的值。它的对象可以包含预编译的SQL语句,这就是使语句“准备好”。包含在PreparedStatement对象中的SQL语句可具有一个或多个IN参数。IN参数的值在SQL语句创建时未被指定,而是为每个IN参数保留一个问号“?”作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX方法来提供。由于PreparedStatement对象已预编译过,所以其执行速度要快于Statement对象。因此,多次执行的SQL语句经常被创建为PreparedStatement对象,以提高效率。

3.为PreparedStatement对象中的“?”占位符设置值的时候,要注意它们的编号是从1开始的。

4.在数据库操作中,一项事务是指由一条或多条对数据库操作的SQL 语句所组成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了,整个事务才能被提交到数据库,如果有一项操作没有完成,就必须撤销整个事务。在默认情况下,连接是自动提交模式。

5.con.setAutoCommit( false );//禁止自动提交事务

con.commit();  //统一提交

con.rollback();//如果其中一项SQL操作失败,就不会执行commit()方法,而是产生相应的sqlexception,此时就可以捕获异常代码块中调用rollback()方法撤销事务。

6.如果一个页面需要连接数据库,那么对它的每一次Web请求都会建立一次数据库连接。对于一次或几次操作来讲,或许觉察不到系统的开销,但是在实际中,即使在某一较短的时间段内,其操作请求数也远远不是一两次,而是数十次或上百次,在这种情况下,系统的开销是相当大的。

数据库连接池的最基本思想是,预先建立一些连接放置在一个抽象“池”中以备用,当程序中需要建立数据库连接时,只需要从池中取一个来用而不用新建。同样,使用完毕后,只需放回“池”中即可。连接的建立,断开都由连接池自身来管理,程序员则不用插手这个过程。由于它是预先建立了一些连接,并且这些连接可以共享,因此就节省了每次连接的时间开销。

三.JSP与JavaBean

1.JavaBean可以分为可视化Bean和不可视化Bean。可视化Bean可以表示为简单的GUI组件;不可视化JavaBean在后台完成业务逻辑处理功能。

2.在进行数据库操作时,必须用try{} catch{}语句进行异常处理。

3.文件上传页面,enctype属性必须设置为multipart/form-data。

四.JSP与Servlet

1.answer = Math.abs( new  Random().nextInt()  %   100 )   +    1;首先,生成一个随机类,并调用这个类的nextInt()方法生成一个随机整数;然后,取余;最后,通过abs()方法获得绝对值后加1就获得了1~100之间的随机数。

五.实现基本Ajax技术

1.xmlHttp.onreadystatechange = callback;主要设置处理服务器端响应的函数,即JavaScript回调函数,表示客户端一旦获取服务器端响应,就立即执行该函数。xmlHttp.open( "post", "HelloAjaxDo.jsp", true );表示向服务器程序创建一个异步请求,其目的页面为HelloAjaxDo.jsp。open函数中所指定的"true"参数说明想要异步执行该请求,在没有指定的情况下默认为“true”。

2.函数callback()是回调函数,它首先检查XMLHttpRequest对象的整体状态以保证它已经完成(readyStatus==4),然后根据服务器的设定询问请求状态。如果一切正常(status==200),就使用“var  data = xmlHttp.responseText;”这取得返回的数据,用innerHTML属性重写DOM的“pNode”节点的内容。

3.XMLHttpRequest对象,可以使用send()方法发送参数,也可以通过open()方法的参数URL本身发送有参请求。事实上,用URL发送数据更容易。如果需要发送安全信息或XML,应考虑使用send()方法发送,否则使用open()方法的参数URL本身发送,此时只要传递“null”作为send()方法的参数即可。

六.实现高级Ajax技术

七.Ajax数据库操作

1.在服务器,尽管XML数据解析有广泛的工具支持,如JDOM,DOM4J等;但在客户端,仍需使用DOM来解析XML数据,依然是很复杂,很烦琐,而且DOM在各种浏览器中的实现细节不尽相同,其跨浏览器兼容性出现问题的可能性也极大,这将使编程更为复杂和烦琐。现在,JSON作为一种更轻松,更友好的数据格式已经备受推崇,JSON和XML一样也是一种简单的数据格式,它比XML数据格式更易于阅读和编写。JSON数据格式完全匹配JavaScript引擎,是JavaScript的原生格式,它为在客户端进行数据解析带来了方便和快捷。

八.Ajax时尚技术

九.Ajax框架的使用

1.在诸多的Ajax框架中,Prototype框架是应用最广泛的框架之一,Prototype.js是由Sam Stephenson写的一个JavaScript类库,这个构思奇妙,而且兼容标准的类库,能帮助用户轻松建立具有高度互动的客户端页面。

2.request.getRemoteAddr()用来获得客户端的IP地址。

3.在使用Statement,PreparedStatement,ResultSet这些对象后,必须关闭它们。

JSP+Ajax网站开发小知识

时间: 2024-08-01 22:45:02

JSP+Ajax网站开发小知识的相关文章

JSP+Ajax站点开发小知识

一.JSP基础 1.<select  name="love"  size="3">当中的size属性指定了列表框显示选项的条数.假设全部选项多于这个数.将会出现滚动栏. 2.addCookie(Cookie  cookie)方法将其放入client,获取Cookie对象可调用request对象的Cookie[]  getcookies()方法. Cookie   myCookie  =  new  Cookie("name",  &q

ios开发小知识2

http://blog.sina.com.cn/s/blog_66450b500102vadq.html http://www.cnblogs.com/lovesmile/archive/2012/06/27/2565569.html ios开发小知识2(转自cc) 退回输入键盘  - (BOOL)textFieldShouldReturn:(id)textField{    [textField resignFirstResponder];} CGRectCGRect frame = CGRe

第三章web安全基础—互联网注册网站相关小知识

前面的碎碎念 像新浪.哔哩哔哩这种大的网站,类似于一个新闻站点.门户,都是比较大的知名企业,做网站以及对网站进行优化甚至都有几百人. 小一点的比如我们的学校也有对外发布的网站,还有其他大大小小的企业都会有自己的门户网站,这一级别的自己去开发网站就不太现实,所以网上就有许多可以快速生成网站的模板(开源的),各企业有自己再需要有的功能再自己进行这一块的开发,所以一旦有一个模板的漏洞被挖出来,就会有许多基于此模板进行开发的网站受影响,开源的好处是代码都是开放的,许多人在用也都能看到代码,这样漏洞一般也

iOS开发小知识

不是什么非常高深的知识.只是记载开发中用到过的一些小技巧.随时更新! 1.UILabel根据文字数量确定其Frame //定义UILable宽度最大值 CGFloat contentMaxW = 300; //获取UILabel的Size,注意传入的Font大小要与UILabel的的Font大小保持相同 CGSize contentSize = [content boundingRectWithSize:CGSizeMake(contentMaxW, MAXFLOAT) options:NSSt

bootstrap学习笔记(网页开发小知识)

这是我在学习Boostrap网页开发时遇到的主要知识点: 1.导航条navbar 添加.navbar-fixed-top类可以让导航条固定在顶部,固定的导航条会遮住页面上的其他内容,除非给<body>元素设置了padding. 导航条的默认高度是50px,比如设置:body{ padding-top:70px} 2.下拉菜单 注意:可以通过data属性API就能使用所有的Bootstrap插件,无需写一行JavaScript代码.这是Bootstrap中的一等API,也应该是你的首选方式. &

react项目开发---小知识总结

1.搭建开发环境 2.按照开发习惯建好源码的目录文件结构 3.开始开发 项目的js打包入口文件  index.js 项目的根组件 安装并导入项目开发依赖的包 react react-dom react-router-dom 结合react-ant-desing  ui组件开发 react中如何获取数据---如果跨域了可以装个包---fetchjsonp的包 传递过去的属性都在props里面 路由切换的2种方式: 1.标签式  2.编程式(js实现): 路由中Switch的使用场景 实现返回按钮

JSP网站开发基础总结《二》

有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的地方.网站是什么?网站就是通过一个个网页叠加起来的,通过一定的相互关联,最后便组成了网站,那既然是由一页页的网页组成的,我们就先从网页开始进入我们JSP开发世界. JSP网页与传统的HTML网页,基本语法方面是相通的,HTML中的语法规则,在JSP网页中同样适用,不同的是HTML网页的后缀名为.ht

JSP网站开发基础总结《一》

经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发,那它与传统的静态网站有什么区别呢?动态两字体现在什么地方?何为动态网站呢?相信学过HTML的小伙伴都知道,HTML是一个非常强大的网站开发语言,在没有出现动态网站开发语言之前,它被奉为网站开发利器,不过对于HTML网站开发存在一个问题,就是网站没办法实时更新,网站一旦开发完成不论经过多长时间,网站上

JSP网站开发基础总结《八》

JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页.就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一下. 1.分页数据获取方法: 获得数据总数: public int getSize() { int num = 0; Connection conn = null; Statement st = null; ResultSet rs = null; conn = DBO.getConnection(