大家好,今天小编关注到一个比较有意思的话题,就是关于jsp serverlet搭建网站的问题,于是小编就整理了3个相关介绍jsp serverlet搭建网站的解答,让我们一起看看吧。
jsp和servlet的区别是什么?
1.Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
2.JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
3.JSP和Servlet相同点:
JSP可以被看作一个特殊的Servlet,它只不过是对Servlet的扩展,只要是JSP能够完成的工作,使用Servlet都可以完成,例如生成动态的页面;
由于JSP页面最终要被转换成Servlet来运行,因此处理请求实际上是编译后的Servlet。
4.JSP和Servlet的擅长方便不同:
Servlet的实现方式是在java代码中嵌入HTML代码,编写和修改HTML非常不方便,所以适合做流程控制和业务逻辑的处理;
JSP实现的方式是在HTML中嵌入java代码,比较适合页面的显示。
5.JSP和Servlet内置对象不同:
Servlet中没有内置对象,JSP中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。
jsp servlet内置对象有哪些?
JSP有九个内置对象(又叫隐含对象),不需要预先声明就可以在脚本代码和表达式中随意使用(JSP本质上就是一个Servlet, 是一种特殊的servlet,提前声明好了这九大对象)
JSP九大内置对象分为四类:
输入输出对象:out对象、response对象、request对象
通信控制对象:pageContext对象、session对象、application对象
Servlet对象:page对象、config对象
错误处理对象:exception对象
Tomcat是如何将JSP代码编译成Servlet代码的?
要知道tomcat如何将JSP编译成Servlet,还得从源代码入手。
tomcat中,和jsp处理相关的功能都在org.apache.jasper包中,包中有一个JspC类,命名和java的编译命令JAVAC有异曲同工之妙,我们在这个类里可以找到编译JSP的相关代码。
JspC.execute()方法是编译的入口,我们来看看这个方法都是怎么做的。
首先是初始化工作,先初始化classloader 和 ServletContext,然后扫描所有的JSP文件。
接下来,就是将所有JSP文件编译成Servlet了。processFile()方法,封装了整个编译过程,我们再来看看这个方法。
在这里,我们终于找到了编译器(Compiler类),就要找到最终答案了!
org.apache.jasper.compiler.Compiler类是一个抽象类,它的核心方法是compile方法:
这里最重要的两个步骤就是将JSP文件生成JAVA代码,再将JAVA代码编译成class。
其中generateClass方法是抽象方法,由子类实现,tomcat中有两个Compiler的实现:JDTCompiler和AntCompiler,这两个类分别调用Eclipse JDT Compiler和Ant Compiler来编译上一步生成的JAVA代码。
以上就是tomcat将JSP文件编译成Servlet的过程,希望能解答题主的疑惑。欢迎大家批评指正,如果喜欢请点赞,关注。
到此,以上就是小编对于jsp serverlet搭建网站的问题就介绍到这了,希望介绍关于jsp serverlet搭建网站的3点解答对大家有用。
还没有评论,来说两句吧...