谁可以详细讲解一下,Tomcat是如何将JSP页面编译成servlet的?
谁可以详细讲解一下,Tomcat是如何将JSP页面编译成servlet的?主要是自定义tag方面,是如何解析tag的tld文件地址声明,并且如何判断页面中含有自定义tag...
谁可以详细讲解一下,Tomcat是如何将JSP页面编译成servlet的?
主要是自定义tag方面,是如何解析tag的tld文件地址声明,并且如何判断页面中含有自定义tag的标记的?
希望高手可以帮忙解答一下,谢谢!
我的QQ: 80107919
互相交流!
补充一下,自己写出来的JSP页面,就像生成静态页做的模板一样,需要 tomcat 来解析 JSP 页面来生成相应的 servlet 的源文件,然后再编译为 .class 文件,最后再执行 .class 文件,在浏览器内打印出相应的 HTML 代码,最后用户才看到具体的内容
现在我就是想问 tomcat 解析 JSP 页面到生成 servlet 源文件的这个过程是怎样的.. 展开
主要是自定义tag方面,是如何解析tag的tld文件地址声明,并且如何判断页面中含有自定义tag的标记的?
希望高手可以帮忙解答一下,谢谢!
我的QQ: 80107919
互相交流!
补充一下,自己写出来的JSP页面,就像生成静态页做的模板一样,需要 tomcat 来解析 JSP 页面来生成相应的 servlet 的源文件,然后再编译为 .class 文件,最后再执行 .class 文件,在浏览器内打印出相应的 HTML 代码,最后用户才看到具体的内容
现在我就是想问 tomcat 解析 JSP 页面到生成 servlet 源文件的这个过程是怎样的.. 展开
5个回答
展开全部
jsp用于显示页面
servlet用于后台处理
通过提交将jsp数据传到servlet
我觉得这样比较清楚
jsp用于显示页面
servlet用于后台处理
通过提交将jsp数据传到servlet
我觉得这样比较清楚
jsp通过post、get、javascript等方法将后台处理所需要的值传到后台经行处理
post、get方法:
例如:
<form action="servlet/PurchaseServlet"method="post">
<!-- ...-->
</form>
这里的method 方法可以填post/get表示提交的方法 action为提交的url-pattern(即请求)
在<TOMCAT_HOME>/conf/web.xml文件中要做相应配置
<servlet>
<servlet-name>PurchaseServlet</servlet-name>
<servlet-class>com.servlet.PurchaseServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PurchaseServlet</servlet-name>
<url-pattern>/servlet/PurchaseServlet</url-pattern>
</servlet-mapping>
顺序是在servlet-mapping通过url-pattern来寻找servlet-name,这里的servlet-name使用户自定义的,相当于一个映射,servlet中也有一个servlet-name,两者的名字要相同,这样就可以通过servlet-name映射在servlet中寻找相应的servlet文件,这样就可以将提交的数据传到servlet中并作相应处理。
javascript方法:
<a href="javascript:shopping('${mp3.name }');">购买</a>
在一个超链接上加上javascript方法shopping并加上所要传递的值('${mp3.name }')(我这里是用标签写的)
在head里写javascript方法:
<head>
<!--...-->
<script type="text/javascript">
function shopping(Name){
var url = "../servlet/PurchaseServlet?mp3Name="+mp3Name;
location.href=url;
}
</script>
</head>
方法中的 var url = "../servlet/PurchaseServlet?mp3Name="+mp3Name;就表示要将值传到哪里
其中servlet/PurchaseServlet为请求
?mp3Name=为要传的值得名称也就是说servlet中用getAttribute("mp3Name")就能获取到Name也就是('${mp3.name }')标签里的值
同样web.xml也要配置,配制方法和上面一样
servlet用于后台处理
通过提交将jsp数据传到servlet
我觉得这样比较清楚
jsp用于显示页面
servlet用于后台处理
通过提交将jsp数据传到servlet
我觉得这样比较清楚
jsp通过post、get、javascript等方法将后台处理所需要的值传到后台经行处理
post、get方法:
例如:
<form action="servlet/PurchaseServlet"method="post">
<!-- ...-->
</form>
这里的method 方法可以填post/get表示提交的方法 action为提交的url-pattern(即请求)
在<TOMCAT_HOME>/conf/web.xml文件中要做相应配置
<servlet>
<servlet-name>PurchaseServlet</servlet-name>
<servlet-class>com.servlet.PurchaseServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PurchaseServlet</servlet-name>
<url-pattern>/servlet/PurchaseServlet</url-pattern>
</servlet-mapping>
顺序是在servlet-mapping通过url-pattern来寻找servlet-name,这里的servlet-name使用户自定义的,相当于一个映射,servlet中也有一个servlet-name,两者的名字要相同,这样就可以通过servlet-name映射在servlet中寻找相应的servlet文件,这样就可以将提交的数据传到servlet中并作相应处理。
javascript方法:
<a href="javascript:shopping('${mp3.name }');">购买</a>
在一个超链接上加上javascript方法shopping并加上所要传递的值('${mp3.name }')(我这里是用标签写的)
在head里写javascript方法:
<head>
<!--...-->
<script type="text/javascript">
function shopping(Name){
var url = "../servlet/PurchaseServlet?mp3Name="+mp3Name;
location.href=url;
}
</script>
</head>
方法中的 var url = "../servlet/PurchaseServlet?mp3Name="+mp3Name;就表示要将值传到哪里
其中servlet/PurchaseServlet为请求
?mp3Name=为要传的值得名称也就是说servlet中用getAttribute("mp3Name")就能获取到Name也就是('${mp3.name }')标签里的值
同样web.xml也要配置,配制方法和上面一样
展开全部
JSP页面本身就是个servlet,需要编译吗?只是遇到显示标签代码就直接还原成html标签而已了!很少用JSP的标签写东西.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看一下<TOMCAT_HOME>/conf/web.xml这个文件,里面有这样一段
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
然后你再去看看org.apache.jasper.servlet.JspServlet这个类,跟着就会看到org.apache.jasper.servlet.JspServletWrapper这个类,看了这个类你就知道你的问题的答案了。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
然后你再去看看org.apache.jasper.servlet.JspServlet这个类,跟着就会看到org.apache.jasper.servlet.JspServletWrapper这个类,看了这个类你就知道你的问题的答案了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看一下<TOMCAT_HOME>/conf/web.xml这个文件,里面有这样一段
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
然后你再去看看org.apache.jasper.servlet.JspServlet这个类,跟着就会看到org.apache.jasper.servlet.JspServletWrapper这个类,看了这个类你就知道你的问题的答案了。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
然后你再去看看org.apache.jasper.servlet.JspServlet这个类,跟着就会看到org.apache.jasper.servlet.JspServletWrapper这个类,看了这个类你就知道你的问题的答案了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题过了四年了,现在你肯定懂了吧?
不懂我们再讨论。
不懂我们再讨论。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询