您的位置:首页 > 运维架构 > Tomcat

jsp和servlet的关系?答:jsp就是servlet,tomcat会把jsp编译成servlet,servlet就是一个java类,在tomcat下的work文件夹中

2016-05-28 23:15 741 查看
JSP与Servlet什么关系?JSP和ASP什么关系?下面我们一一来探讨。

 

第一个.jsp文件:

<html>

    <head>

           <title>HelloWorldJSP~</title>

    </head>

    <body>

           <%

                  out.println("HelloWorld");

           %>

    </body>
</html>

其实就是当你通过http请求一个JSP页面是,首先Tomcat会将JSP编译成为Servlet,然后执行Servlet.
详细说说这个运行过程:
1,             首先web客户端发送URL请求给Tomcat。服务器获得请求,对请求字符串分析,如果后缀名是.jsp文件的,则Tomcat把调用JspServlet处理。JspServlet是
2,             如果JSP文件第一次被调用,则会把jsp编译成servlet(编译后的servlet文件在tomcat下的work文件夹中,就是那个存放类似于缓存的文件夹),如果jsp不是第一次调用则不会被编译。Jsp文件在没有修改的情况下,只会编译一次。
3,             Tomcat调用service()方法编译jsp文件,创建一个.java和.class文件。该java文件继承自父类HttpJspBase类。



4,             创建HttpServletRequest类和HttpServletResponse类

5,             调用.java继承父类的HttpJspBase类方法service(request,response)

6,             在service方法里面调用jspService(request,reponse)方法,渲染html返回给客户端。

由此可见,什么是渲染?就是把tomcat把jsp编译成servlet,而servlet会将以HTML格式返回给浏览器,这就是渲染。可以简单理解为:浏览器可以直接运行html文件(双击打开一个html文件,就可以在浏览器中运行),而不能直接运行jsp文件(双击打开一个jsp文件,它是不可以再浏览器中运行的。而如果某个jsp如index.jsp在某个工程如test中的WebContent路径下(不能放在WEB-INF中,因为WEB-INF下的文件是不允许直接访问的),而把test工程在tomcat服务器中运行,那么输入http://127.0.0.1:8080/tes/index.jsp就可以运行,并显示jsp页面的内容了),所以需要通过tomcat服务器将jsp转换成HTML格式,然后再返回给浏览器进行显示。所以渲染工作时tomcat服务器做的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: