浏览器向做事器发要求,不管访问的是什么资源,实在都是在访问Servlet,以是当访问一个jsp页面时,实在也是在访问一个Servlet,做事器在实行jsp的时候,首先把jsp翻译成一个Servlet,以是我们访问jsp时,实在不是在访问jsp,而是在访问jsp翻译过后的那个Servlet,
二:TomcatTomcat在Web中的浸染:
Tomcat是Web中的容器,
当客户在Web做事器中输入要求的时候, 如果要求的动态页面, 那么Web做事器会创建一个Servlet来处理, Servlet便是Java代码, 只是在做事器真个Java代码, Servlet通过配置文件来拦截客户所发出的要求, 并进行相应的处理, 末了反馈到客户端.
在这一系列的要求中,Web做事器是如何创建出Servlet来对要求进行处理? 而Tomcat的浸染便是帮助Web做事器来创建Servlet的
Tomcat是运用(java)做事器,它只是一个Servlet容器,是Apache的扩展,处理动态页面的部分
Tomcat各个文件夹的含义
bin:二进制实行文件。里面最常用的文件是startup.batconf:配置目录。里面最核心的文件是server.xml。可以在里面改端口号等。默认端口号是8080,也便是说,此端口号不能被其他运用程序占用。lib:库文件。tomcat运行时须要的jar包所在的目录logs:日志temp:临时产生的文件,即缓存webapps:web的运用程序。web运用放置到此目录下浏览器可以直接访问work:编译往后的class文件。当我们通过浏览器访问index.jsp时,做事器首先将index.jsp翻译成一个index_jsp.class,在Tomcat做事的work\Catalina\localhost\项目名\org\apache\jsp 目录下可以看到index_jsp.class的源代码文件index_jsp.java,
index_jsp这个类是继续 org.apache.jasper.runtime.HttpJspBase这个类的,通过查看Tomcat做事器的源代码,可以知道在apache-tomcat-6.0.20-src\java\org\apache\jasper\runtime目录下存HttpJspBase这个类的源代码文件
HttpJspBase 类是继续 HttpServlet 的,以是 HttpJspBase 类是一个 Servlet ,而 index_jsp 又是继续 HttpJspBase类的,以是index_jsp类也是一个Servlet,以是当浏览器访问做事器上的index.jsp页面时,实在便是在访问index_jsp这个Servlet,index_jsp这个Servlet利用_jspService这个方法处理要求。
三:Jsp中的HTML代码和Java代码如何发送到客户端1:jsp中的代码是由 Java代码 和 HTML 代码组成的 但是两种不同的代码是如何实现他们的浸染的?
在客户端发出要求时(要求的是动态代码) 但是客户端却只能看到HTML代码, Java代码是客户端看不到的
缘故原由是: 要求的JSP页面中,所有的代码是通过了Web做事器(在Tomcat下)编译后的Servlet代码, 在jsp中编写的java代码和html代码都会被翻译到_jspService方法中去,在jsp中编写的java代码会原封不动地翻译成java代码,如<%out.print(\"大众HelloJsp\"大众);%>直接翻译成out.print(\"大众Hello Jsp\"大众);,而HTML代码则会翻译成利用out.write(\"大众<html标签>\r\n\"大众);的形式输出到浏览器。在jsp页面中编写的html排版标签都因此out.write(\"大众<html标签>\r\n\"大众);的形式输出到浏览器,浏览器拿到html代码后才能够解析实行html代码。
当实行_jspService方法处理要求时,就会实行在jsp编写的java代码了,以是Jsp页面中的java代码做事器是通过调用_jspService方法处理要求时实行的。(_jspService中的Java代码是实现动态页面的逻辑根本)