第一章:
jsp技术不仅是开发web应用的先进技术,而且是进一步学习相关技术的基础。
jsp引擎是支持jsp程序的web容器,负责运行jsp,并将有关结果发送到客户端。目前流行的jsp引擎之一是tomcat。
安装tomcat服务器,首先要安装jdk,并需要设置java_home环境变量。
jsp页面必须保存在web服务目录中。Tomcat服务器的Webapps以外的其他的服务目的录作为Web的服务目录,必须修改Tomcat服务器
下conf文件夹中的server.xml文件,并重新启动Tomcat服务器。
当服务器上的一个jsp页面被第一次请求执行时,服务器上的jsp引擎首先将jsp页面文件转译成一个java文件,再将这个java文件
编译生成字节码文件,然后通过执行字节码文件响应客户的要求。
当过个客户请求一个jsp页面是,Tomcat服务器为每个客户启动一个线程,该线程负责执行常驻内存的字节码文件来响应响应客户
的请求。这些线程都是由Tomcat服务器来管理,将Cpu的使用权在各个线程之间快速切换,以保证每个线程都有机会执行字节码文
件。
第二章:
一个jsp页面可由普通的html标记,jsp标记,成员变量和方法的声明,java程序片和java表达式组成。jsp引擎把jsp页面中的HTML
标记交给客户的浏览器执行显示;jsp引擎负责处理jsp标记,变量和方法声明,jsp引擎负责运行java程序片,计算java表达式,
并将需要显示的结果发送到客户的浏览器。
jsp页面中的成员变量是被所有客户共享的变量,java程序片可以操作成员变量,任何一个用户对jsp页面成员操作的结果,都会影
响到其他客户。
如果多个用户访问一个jsp页面,那么该页面中的java程序片就会被执行多次,分别运行在不同的线程中,即运行在不同的时间片
内。运行在不同的线程中的java程序片的局部变量互不干扰,即一个用户改变java程序片中的局部变量的值,是不会影响到其他用
户的java程序片的局部变量。
page指令用来定义整个jsp页面的一些属性和这些属性的值。比较常用的两个属性是contentType和import。page指令只能为
contentType的指定一个值,但可以为import属性指定多个值。
include指令标记是在编译剪短就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前的jsp页面,其优点是页面执行速度
快,而include动作标记是在jsp页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前的jsp页面,其优点是可以使用
param子标记更灵活的处理所需要的文件。
第三章
http通讯协议是客户与服务器之间一种提交信息和响应信息(request/response)的通信协议。在jsp中,内置对象request封装了
客户提交的信息。request对象获取用户提交的信息的最常用的方法时getParameter(String s)。内置对象response对象对客户
的请求作出动态响应,向客户端发送数据。
HTTP协议是一种无状态协议。一个客户向用户端发出请求(request),然后服务器返回响应(response),连接就关闭了。所以
,Tomcat服务器必须使用内置session对象(会话)记录有关连接的信息。同一个客户在某个Web服务目录中的session是相同的,同
一个客户在不同的web服务目录中的session是不同的,不同用户的session是互不相同的。
一个用户在某个Web服务器目录中的session对象的生存期限依赖于用户是否关闭浏览器,session对象是否调用invalidate()方
法使得session无效或session对象是否达到了设置的最长的“发呆”状态时间。
内置对象application由服务器负责创建,每个web服务目录下的application对象被访问该服务目录的所有哦的用户共享,不同web
目录下的application互不相同。
第四章:
javaBean是一个可重复使用的软件组件,是遵循一定标准,用java语言编写的一个类,该类实例称作一个JavaBean。
一个jsp页面可以将数据的处理过程指派给一个或几个Bean来完成,只需在jsp页面中调用该Bean即可。在jsp页面中调用bean可以
将数据的处理代码从页面中分离出来,实现代码复用,更有效的维护一个web应用。
bean的声明周期为page,request,session,applcation。
第五章:
输入流的指向称为源,程序从指向源的输入流中读取源中的数据。而输出流的指向是数据要去的目的地,程序通过向输出流中写入
数据把信息送到目的地。
FileInputStream和FileReader流都顺序的读取文件,只要不关闭流,每次调用read方法就顺序的读取源中的其余内容,直到源的
末尾或流被关闭。二者的区别是,FileInputStream流以字节(byte)为单位读取文件;FileReader以字符(char)为单位读取文
件。
FileOutStream和FileWriter以顺序的写文件,只要不关闭流,每次调用writer方法就顺序的向输出流写入内容,直到流被关闭。
二者的区别是FileOutStream流以字节(byte)为单位写入文件,而FileWriter流以字符(char)为单位写文件。
RamdomAccessFile流的指向即可以作为源也可以作为目的地,在读写文件是可以调用seek方法改变读写位置。
第六章:
jsp使用jdbc提供的api和数据库进行交互。jdbc技术在数据库开发中占有很重要的地位,jdbc操作不同的数据库仅有连接方式上的
差异。使用jdbc的应用程序一旦和数据库建立连接,就可以使用jdbc提供的API操作数据库。
jdbc和数据库建立连接有两种常用的方式:建立JDBC-ODBC桥接器和加载纯java数据库驱动程序,无论哪一种防暑连接数据库,都
不会永祥操作数据库的逻辑代码。
数据库连接池的思想是:tomcat服务器可以事先预备好若干个数据库的连接对象,将这些连接对象放在一个称谓连接池的容器中,
当某个客户需要操作数据库是,只要从连接池中取出一个连接对象即可,当用户用完该连接对象后,将连接对象放回连接池中,
当查询Result对象中的数据时,不可以关闭和数据库的连接。
CachedRowSetImpl对象可以保存resultset对象中的数据,CachedRowSetImpl对象中的数据不依赖connection对象,因此,查询
CachedRowSetImpl对象中的数据时,可以关闭和数据库的连接。
使用PreparedStatement对象可以提高操作数据库的效率。
第七章:
java servlet的核心思想是在服务器端创建相应用户请求的对象。
如果web服务器目录需要创建servlet对象,那么需要根据Servlet类的包名,在Web服务目录建立相应的子目录,比如Servlet类的
包名star.moon,那么在Web服务目录下建立子目录WEB-INF\classes\star\moon.
servlet对象第一次被请求加载是,服务器创建一个servlet对象,这个对象调用init方法来完成必要的初始化工作,init方法只被
servlet对象调用一次,当后续的 客户请求该servlet对象服务时,服务器将启动一个新的线程,在该线程中,servlet对象调用
service方法响应客户的请求。每个客户的每次请求都导致service方法被调用执行,调用过程执行在不同的线程中,互不干扰。
Servlet类继承的service方法检查HTTP请求类型(Get,Post等),并在service方法中根据用户的请求方式,对应地调用doget或
dopost方法。因此,Servlet类不必重写service方法,直接继承该方法即可,可以在Servlet类中重写dopost或doget方法来响应用
户的请求。
RequestDispatcher对象可以把用户对当前的jsp页面或servlet的请求转发给另一个jsp页面或servlet,而且将用户对当前的jsp页
面或servlet的请求和响应(HttpServletRequest对象和HttpServletResponse对象)传递给所转发的jsp页面或servlet。也就是说
,当前页面所要转发的目标页面或servlet对象可以使用request获取用户提交的数据。
第八章:
MVC模式的核心思想是有效的组合“视图”“模式”和“控制器”。在jsp技术中,视图是一个或多个jsp页面,其作业主要是想控
制器提交必要的数据和为模型提供数据显示;模型是一个或多个Javabean对象,用于储存数据;控制器是一个或多个servlet对象
,根据属兔提交的要求进行数据处理操作,并将有关的结果储存到Javabean中,然后servlet使用重定向方式请求视图中的某个jsp
页面更新显示。
在MVC 模式中,模型由控制器负责创建和初始化。
第九章:
XML文件是由标记构成的文本文件。XML文件有且只有一个根标记,其他标记都必须封装在根标记中。文件的标记必须是树型结构,
非空标记必须由“开始标记”和“结束标记”组成,空标记没有“开始标记”和“结束标记”。
DOM解析器在内存中按树型结构组织数据,DOM解析器通过读入XML文件在内存中建立一棵“树”,XML文件的标记,标记的文本内容
都会和内存中的“树”的某个节点相对应。
SAX解析器根据从文件中解析出的数据产生相应的事件,并报告这个事件给事件处理器,事件处理器就会处理所发现的数据。
通过将XML文件和一个CSS样式表文件相关联,可以方便显示XML文件中标记所含有的文本。