日期:2014-05-16 浏览次数:20352 次
一.JSP运行原理:
1.首先,根据web.xml中的如下配置信息可知,以. JSP为扩展名的URL请求都将交给org.apache.jasper.servlet.JspServlet处理。
<servlet>
??????? <servlet-name>jsp</servlet-name>
??????? <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
…….
<servlet-mapping>
??????? <servlet-name>jsp</servlet-name>
??????? <url-pattern>*.jsp</url-pattern>
</servlet-mapping>
2.每个jsp页面在第一次被访问时,jsp引擎将它翻译成一个servlet程序,接着把这个servlet源程序编译成class类文件,然后由Web容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个有JSP页面翻译成的Servlet程序。
3.Tomcat6.0将由JSP页面翻译成的Servlet源程序和class类文件放在“<TOMCAT_HOME>\work\Catalina\<主机名>\<应用程序名>\org\apache\jsp\<jsp程序在Web应用程序中的目录名>”中。例如,在
<TOMCAT_HOME>\webapps\中有一个MyServlet的Web应用程序,在MyServlet中建了一个jspSource文件及存放jsp页面,则由jsp页面翻译成的Servlet源程序和class类文件放在如下目录中:
<TOMCAT_HOME>\work\Catalina\localhost\MyServlet\org\apache\jsp\jspSource。
二.注册与配置JSP访问路径:
JSP页面可以像普通Servlet程序一样在web.xml中进行注册,包括设置它可以处理的URL请求和设置供ServletConfig.getInitParameter方法调用的的初始化参数。在web.xml中注册JSP页面的方式与主责Servlet程序类似,只要吧<servlet-class>标签换成<jsp-file>标签。
例如:上面同个例子,在<TOMCAT_HOME>\webapps\MyServlet\WEB-INF\web.xml中相应位置加入如下两段内容:
<servlet>
??? <servlet-name>simpleJsp</servlet-name>
??? <jsp-file>/jspSource/simple.jsp</jsp-file>
??? <load-on-startup>1</load-on-startup>
</servlet>
……
<servlet-mapping>
??? <servlet-name>simpleJsp</servlet-name>
??? <url-pattern>/simple.html</url-pattern>
</servlet-mapping>
则在浏览器中输入如下两段地址:
http://localhost:8080/MyServlet/jspSource/simple.jsp
http://localhost:8080/MyServlet/simple.html
效果是一样的。
?