JSP技术介绍

1. 技术介绍

JSP即Java Server Page,中文全称是Java服务器语言。它是由Sun Microsystems公司倡导、许多公司参与建立的一种动态网页技术标准,它在动态网页的建设中有强大而特别的功能。JSP是Java阵营中最具代表性的解决方案。使用JSP,不仅能够制作HTML静态页,还能够制作包含动态数据的网页。

2. JSP的运行原理

在JSP第一次获得来自于客户端浏览器的请求时,JSP文件将被JSP引擎(JSP engine)转换成一个Servlet,即将”.jsp”文档编译成Java Class文档。当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文档,检查该文档在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。如图2所示。

图2  JSP运行原理图

在编译时如果发现JSP文件有任何语法错误,转换过程将中断,并向客户端发出出错信息,如果编译成功,则所转换产生的Servlet代码被编译,然后该Servlet被JSP引擎加载到内存中。此时JSP引擎还请求了jspInit()方法的执行,并对此Servlet初始化。JspInit()方法在Servlet的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该JSP档的请求,服务器将检查该JSP档自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的Servlet的jspService()方法,执行回复操作。

由于Servlet始终驻于内存,所以响应是非常快的。Jsp页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件,所以速度非常得快。

3. JSP的生命周期

.jsp首先会被服务器编译为.java档,然后服务器自动编译.java档生成.class档,如果.jsp档的内容改变,服务器会重新生成.java文件和.class文件。如果有客户端访问JSP程序,那么_jsp_init方法被启动,JSP程序以实例的形式保存在服务器内,客户端通过_jspService方法与JSP程序交流数据,如果服务器关闭,JSP程序的jspDestroy方法被启动,然后JSP程序的生命周期结束。JSP的生命周期结构图如图3所示。

图3  JSP的生命周期结构图

4. Servlet和JavaBean技术介绍

java虚拟机是java语言的运行环境,它是java最具有吸引力的特性之一。Java程序在编译后生成的不是某种cpu的指令码,而是java语言二字节代码。这些位元组代码指令都是在虚拟机环境下运行的,虚拟机底层的运行系统把自己代码转化成实际的硬件调用,虽然每种操作系统的解释器各不相同,但java虚拟机是相同的,这就是java语言跨平台的原因。现在的jvm通常包含java软件开发包(jsdk)中,jsdk提供了java中最基础的类包,java程序开发工具JAVA2SDK在SUN公司的网站中下载。

5. JSP访问SQL Server 2000数据库

安装与配置JDBC驱动程序

  1. 找到微软公司提供的JDBC驱动程序:SQL Sever 2000 Driver for JDBC SP3,并安装到默认路径:C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC;
  2. 设置系统环境变量

a)   JDBC_HOME=C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC

b)   classpath=;%JDBC_HOME%\lib\msbase.jar;%JDBC_Home%\lib\mssqlserver.jar;%JDBC_Home%\lib\msutil.jar;

  1. 将JDBC目录下lib文件夹下的msbase.jar,mssqlserver.jar,msutil.jar复制到Tomecat 5.0安装目录下的common\lib中。
  2. 最好将SQL Server 2000升级一下,这样更好用,这是我从网上借鉴的经验。
  3. 在JSP使用JDBC访问SQL Server 2000数据库

a)   url="jdbc:Microsoft:sqlserver://localhost:1433;DatabaseName=master"

b)   driver为"com.microsoft.jdbc.sqlserver.SQLServerDriver"

  1. 在连数据库时还要注意server2000的数据库的访问权限和密码设置
  2. 引入sql包&io包
  3. at6.0,在浏览器的地址中输入http://localhost:8080,如jsp及bean等没有错误,一般会将你的index.jsp/index.html檔的内容给执行并显示。
  4. 或者是你可以在你 XML文件中加入一个<welcome-file-list><welcome-file>
  5. Login.jsp</welcome-file></welcome-file-list>,就可以指定启动Tomcat6.0后所显示的界面。可以为节省时间,我们可以将http://localhost:8080/bysj/login.jsp设为浏览器的主页。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏草根专栏

使用Angular CLI生成路由

为应用生成路由. 先创建一个项目: ng new my-routing --routing ? 可以看到生成了两个module. 看一下routing modu...

34213
来自专栏Porschev[钟慰]的专栏

.NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径 (在IIS7.5中的配置方法)

接上一篇  .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径 在IIS中新建网站(端口号8111)       直接运行http://...

1909
来自专栏ytkah

dedecms首页去掉index.html怎么设置

  很多网友用IIS服务器建站,反映说dedecms首页默认多了一个/index.html,一般是没有这个后缀的,直接就**.com,那么如何将dedecms首...

2645
来自专栏Laoqi's Linux运维专列

运维管理小知识

把CentOS启动进度条替换为详细信息 : CentOS 6 启动的时候,是一个进度条,并不像以前CentOS5启动的时候显示启动的信息,这是因为有一个参数所控...

1764
来自专栏运维小白

2.18 特殊权限set_uid

set_uid 例子 -rwsr-xr-x.中的s的权限 [root@hf-01 ~]# which passwd /usr/bin/passwd [root@...

1905
来自专栏从流域到海域

Vue.js项目目录结构

folder/flie 说明 bulid 最终生成代码存放位置。 config 配置目录,存放配置文件。index.js中存放了环境和端口等配置...

2195
来自专栏pangguoming

centos7安装nodejs

node下载地址 https://nodejs.org/en/download/ # wget https://nodejs.org/dist/v6.10.2/...

3959
来自专栏鬼谷君

cobbler koan自动重装系统

982
来自专栏cnblogs

restful Api 风格契约设计器:Swagger-editor和swagger-ui的应用

swagger-editor的安装 swagger-editor应用的yaml语法,有定义变量和数据结构,不明白可以参考其示例 安装步骤: 下载swagger...

2729
来自专栏Aloys的开发之路

Unix/Linux操作系统中如何在sqlplus/rman中使用方向键

默认情况下在Unix/Linux中使用Oracle的sqlplus/rman是无法使用↑↓←→几个方向键进行操作的,要想达到Windows下使用sqlplus/...

1776

扫码关注云+社区