[原创]jsp、servlet、jdbc理解熟练_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1956 | 回复: 0   主题: [原创]jsp、servlet、jdbc理解熟练        下一篇 
heli.jia
注册用户
等级:少校
经验:874
发帖:21
精华:0
注册:1970-1-1
状态:离线
发送短消息息给heli.jia 加好友    发送短消息息给heli.jia 发消息
发表于: IP:您无权察看 2016-4-7 9:01:54 | [全部帖] [楼主帖] 楼主

jsp:


JSP全名为Java Server Pages,中文名叫java服务器页面。JSP技术是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。

 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

jsp实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。

网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。

JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。


一个JSP页面可以被分为以下几部份:

a.静态数据,如HTML


b.JSP指令,如include指令,page指令

  例如page指令有如下选项:  

import  :使一个JAVA导入声明被插入到最终页面文件。

contentType  :规定了生成内容的类型。当生成非HTML内容或者当前字符集character set并非默认字符集时使用。

errorPage  :处理HTTP请求时,如果出现异常则显示该错误提示信息页面。

isErrorPage  :如果设置为TRUE,则表示当前文件是一个错误提示页面。

isThreadSafe  :表示最终生成的servlet是否安全线程(threadsafe)。


c.JSP脚本元素和变量

以下是永远可用的脚本变量:

out – JSPWriter用来写入响应流的数据

page – servlet自身

pageContext –一个PageContext实例包括和整个页面相联系的数据,一个给定的HTML页面可以在多个JSP之间传递。

request –HTTP request对象

response –HTTP response对象

session –用于保持客户端与服务器连接的对象


脚本元素

有三个基本的脚本元素,作用是使JAVA代码可以直接插入servlet.

一种是声明标签,在JAVA SERVLET的类体中放入一个变量的定义。静态的数据成员也可以如此定义。

<%! int serverInstanceVariable = 1; %>

一种是脚本标签,在JAVA SERVLET的类的_jspService()方法中放入所包含的语句。

<% int localStackBasedVariable = 1; out.println(localStackBasedVariable); %>

一种是表达式标签,在JAVA SERVLET的类中放入待赋值的表达式,表达式注意不能以分号结尾。

<%= "expanded inline data " + 1 %>


d.JSP动作

jsp:include

和子过程类似,JAVA SERVLET暂时接管对其它指定的JSP页的请求和响应。当处理完该JSP页后就马上把控制权交还当前JSP页。这样JSP代码就可以在多个JSP页中共享而不用复制。

jsp:param

可以在jsp:include, jsp:forward或jsp:params块之间使用。指定一个将加入请求的当前参数组中的参数。

jsp:forward

用于处理对另一个JSP或SERVLET的请求和响应。控制权永远不会交还给当前JSP页。

jsp:plugin

Netscape Navigator的老版本和Internet Explorer使用不同的标签以嵌入一个applet。这个动作产生为嵌入一个APPLET所需要的指定浏览器标签。

jsp:fallback

如果浏览器不支持APPLETS则会显示的内容。

jsp:getProperty

从指定的JavaBean中获取一个属性值。

jsp:setProperty

在指定的JavaBean中设置一个属性值。

jsp:useBean

创建或者复用一个JavaBean变量到JSP页。


e.用户自定义标签


jsp也有很多内置对象:

request、response、session、application、out、page、config、exception、pageContext等




servlet:


Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:

1) 客户端发送请求至服务器端;

2) 服务器将请求信息发送至 Servlet;

3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

4) 服务器将响应返回给客户端。


servlet生命周期:

1.客户端请求该 Servlet;

2.加载 Servlet 类到内存;

3.实例化并调用init()方法初始化该 Servlet;

4.service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions());

5.destroy()。


加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。

Server 创建一个 Servlet的实例

第一个客户端的请求到达 Server

Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 <servlet> 标签下配置 <load-on-startup> 标签,配置的值为整型,值越小 Servlet 的启动优先级越高)

一个客户端的请求到达 Server

Server 创建一个请求对象,处理客户端请求

Server 创建一个响应对象,响应客户端请求

Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数

service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息

service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 或程序员自己开发的新的方法。

对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。

如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象),当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。



jdbc:

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序


简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。下列代码段给出了以上三步的基本示例:

Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login","password");

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");

while (rs.next()) {

int x = rs.getInt("a");

String s = rs.getString("b");

float f = rs.getFloat("c");

}

尽管JDBC在JAVA语言层面实现了统一,但不同数据库仍旧有许多差异。为了更好地实现跨数据库操作,于是诞生了Hibernate项目,Hibernate是对JDBC的再封装,实现了对数据库操作更宽泛的统一和更好的可移植性。





赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论