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 条评论
登录 后参与评论

相关文章

来自专栏pangguoming

kafka 主要内容介绍

根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:

1005
来自专栏Java技术栈

干货|基于 Spring Cloud 的微服务落地

4323
来自专栏芋道源码1024

【消息队列 MQ 专栏】RabbitMQ

关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整理记录一下了。

930
来自专栏SpringBoot 核心技术

SpringCloud组件:Eureka的服务发现与消费

在之前的章节我们已经把服务注册到Eureka Server,那么我们该怎么调用已经注册后的服务呢? 我们本章来简单的介绍我们具体该怎么调用服务节点请求内容。

711
来自专栏程序猿DD

Spring Cloud构建微服务架构:服务消费(基础)【Dalston版】

前言通过上一篇《Spring Cloud构建微服务架构:服务注册与发现》,我们已经成功地将服务提供者:eureka-client或consul-client注册...

1766
来自专栏王磊的博客

深入解读RabbitMQ工作原理及简单使用

MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递。

572
来自专栏MessageQueue

Pulsar-Producer实现分析

“Pulsar is a distributed pub-sub messaging platform with a very flexible messagi...

822
来自专栏java一日一条

HDFS知识点总结

HDFS是什么:HDFS即Hadoop分布式文件系统(Hadoop Distributed Filesystem),以流式数据访问模式来存储超大文件,运行于商用...

652
来自专栏喵了个咪的博客空间

[喵咪大数据]Hadoop节点添加下线和磁盘扩容操作

Hadoop绝非一个简单程序,集群模式下更是如此,所有的数据都存储在Hadoop中如果操作不当会存在丢失数据的风险,那么怎么在安全的情况,扩容下线维护或者磁盘满...

3774
来自专栏Java技术栈

分布式服务防雪崩熔断器,Hystrix理论+实战。

Hystrix是什么? hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋...

3565

扫码关注云+社区