谁可以详细讲解一下,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 源文件的这个过程是怎样的..
展开
 我来答
letitia61
2008-05-28 · TA获得超过155个赞
知道答主
回答量:92
采纳率:0%
帮助的人:63.8万
展开全部
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也要配置,配制方法和上面一样
SoldierBandit
2008-05-26 · TA获得超过191个赞
知道小有建树答主
回答量:605
采纳率:0%
帮助的人:281万
展开全部
JSP页面本身就是个servlet,需要编译吗?只是遇到显示标签代码就直接还原成html标签而已了!很少用JSP的标签写东西.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夫湛板姣
2019-04-07 · TA获得超过3764个赞
知道大有可为答主
回答量:3126
采纳率:34%
帮助的人:162万
展开全部
你看一下<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这个类,看了这个类你就知道你的问题的答案了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a_luky_dog
推荐于2016-01-05
知道答主
回答量:39
采纳率:0%
帮助的人:25.7万
展开全部
你看一下<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这个类,看了这个类你就知道你的问题的答案了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星火star_532
2012-11-27 · TA获得超过319个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:56.5万
展开全部
这个问题过了四年了,现在你肯定懂了吧?
不懂我们再讨论。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式