一.JSP基础

1.<select  name="love"  size="3">当中的size属性指定了列表框显示选项的条数。假设全部选项多于这个数。将会出现滚动栏。

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

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

respense.addCookie(myCookie);   //将myCookie保存到client

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

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

5.application对象是JSP的一个内置对象,它是ServletContext类的实例。server启动后,就产生了appliaction对象。客户在站点的各个页面之间跳转浏览时,appliaction对象一直保持存在且是唯一的,直到server关闭。可是,与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;主要设置处理server端响应的函数,即JavaScript回调函数,表示client一旦获取server端响应,就马上运行该函数。

xmlHttp.open( "post", "HelloAjaxDo.jsp", true );表示向server程序创建一个异步请求,其目的页面为HelloAjaxDo.jsp。open函数中所指定的"true"參数说明想要异步运行该请求,在没有指定的情况下默觉得“true”。

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

3.XMLHttpRequest对象,能够使用send()方法发送參数,也能够通过open()方法的參数URL本身发送有參请求。其实。用URL发送数据更easy。假设须要发送安全信息或XML,应考虑使用send()方法发送,否则使用open()方法的參数URL本身发送,此时仅仅要传递“null”作为send()方法的參数就可以。

六.实现高级Ajax技术

七.Ajax数据库操作

1.在server。虽然XML数据解析有广泛的工具支持。如JDOM,DOM4J等;但在client,仍需使用DOM来解析XML数据,依旧是非常复杂。非常烦琐,并且DOM在各种浏览器中的实现细节不尽同样,其跨浏览器兼容性出现故障的可能性也极大,这将使编程更为复杂和烦琐。

如今。JSON作为一种更轻松,更友好的数据格式已经备受推崇。JSON和XML一样也是一种简单的数据格式,它比XML数据格式更易于阅读和编写。

JSON数据格式全然匹配JavaScript引擎,是JavaScript的原生格式。它为在client进行数据解析带来了方便和快捷。

八.Ajax时尚技术

九.Ajax框架的使用

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

2.request.getRemoteAddr()用来获得client的IP地址。

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

JSP+Ajax站点开发小知识的更多相关文章

  1. React Native环境配置、初始化项目、打包安装到手机,以及开发小知识

    1.前言 环境:Win10 + Android 已经在Windows电脑上安装好 Node(v14+).Git.Yarn. JDK(v11) javac -version javac 11.0.15. ...

  2. JSP页面中的小知识

    1.<%…%>和<%!…%>的区别? <%…%>用于在JSP页面中嵌入Java脚本,即代码块 <%!…%>用于在JSP页面中申明变量或方法,可以在该页面 ...

  3. ajax的一些小知识

    eval()可以把一个字符串转化为本地的js代码来执行 <script type="text/javascript"> var str = "alert('h ...

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

    这是我在学习Boostrap网页开发时遇到的主要知识点: 1.导航条navbar 添加.navbar-fixed-top类可以让导航条固定在顶部,固定的导航条会遮住页面上的其他内容,除非给<bo ...

  5. Python接口开发小知识

    关于数据库设计 接口开发多学习数据库表操作,这是要点 不存在删除数据,每个可能被删除数据的表加一个is_active属性 不同的表可以有多个相同的字段,字段属性少用禁止非空 不要设置太多主外键(高内聚 ...

  6. web开发小知识

    session共享机制:f5刷新是再次提交之前的数据请求 地址栏回车属于不同的请求 不同浏览器获取不到之前数据 同一浏览器可以获取同步数据 session注销:session.invalidate() ...

  7. 【ZeyFraのJavaEE开发小知识05】Mybatis-Plus & Axios

    关于如何在Mybatis-Plus中添加SQL拦截器 之前ZeyFra在MyBatis-Plus[踩坑记录01]一文中提到过,使用Mybatis-Plus时最好使用MybatisSqlSessionF ...

  8. Android开发小知识

    修改Android app图标(Android Studio) 1.  res\drawable 放置icon.png(此图片是你需要修改的图标); 2.  修改AndroidManifest.xml ...

  9. 【ZeyFraのJavaEE开发小知识01】@DateTimeFomat和@JsonFormat

    @DateTimeFormat 所在包:org.springframework.format.annotation.DateTimeFormat springframework的注解,一般用来对Dat ...

随机推荐

  1. JavaFX游戏开发效率浅谈

    声明:   本博客文章原创类别的均为个人原创,版权所有.转载请注明出处: http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com. ...

  2. [C++]C++中的运行时类型检测

    Date:2014-1-3 Summary: 使用C++中的运行时类型检测.(文章重点在于记录本人的使用情况,并非深层讨论RTTI) Contents:写习惯C#的我,在C++依然存在哪些.NET的惯 ...

  3. TestComplete实测Flex

    1.TestComplete提供了已经编译好的Flex界面,可以直接使用: http://support.smartbear.com/samples/testcomplete9/flex/orders ...

  4. CS0433: 类型“BasePage”同一时候存在于“c:\Windows\Microsoft.NETxxxxxxxxxxxxxxxx

    网上常见的我就不说了. 假设其他地址的方法解决不了你的问题,那么请往下看. 该类是否存放于 App_Code 下,假设是把该类从App_Code中拉出来,然后再次执行试试.

  5. ubuntu 64位下安装wps

    首先,去官网下载wps.地址:http://community.wps.cn/download/ 然后切换到下载文件夹.运行例如以下命令: $ sudo apt-get install ia32-li ...

  6. Python处理海量手机号码

    Python处理海量手机号码 一.任务描述 上周,老板给我一个小任务:批量生成手机号码并去重.给了我一个Excel表,里面是中国移动各个地区的可用手机号码前7位(如下图),里面有十三张表,每个表里的电 ...

  7. poj3281(最大流)

    传送门:Dining 题意:一些牛,一些食物,一些饮料,每头牛都有其喜欢的几种食物和几种饮料,求最多能给多少头牛即找到食物又找到饮料~也就是有多少个 牛---食物---饮料 的匹配,而且满足一一匹配, ...

  8. 我的EJB学习历程

    http://blog.csdn.net/sinapaper/archive/2004/06/28/28659.aspx http://blog.csdn.net/sinapaper/archive/ ...

  9. BGP拓扑错误模拟配置

    R1配置 --------------------------------------------- version 5.20, ESS 2207P45# sysname RT1# super pas ...

  10. linux编程进阶书推荐APUE,UNP

    编程进阶这里强烈推荐<unix环境高级编程>(简称APUE)和<unix网络编程>(简称UNP),这两本书可是经典中的经典啊,作 者是大名鼎鼎的 W.Richard Steve ...