有没有办法在index.jsp
上调用servlet?我的欢迎档案是index.jsp
。打开index.jsp
时,我需要通过servlet填充下拉列表值。
我尝试在<load-on-startup>
中设置web.xml
,但它没有任何效果。如何获取欢迎文件index.jsp
来调用servlet?
答案 0 :(得分:12)
只需将欢迎文件URL更改为servlet之一。
鉴于此servlet映射,
<servlet-mapping>
<servlet-name>indexServlet</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
只有这个欢迎文件列表:
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
不要忘记将/index.jsp
移动到/WEB-INF
文件夹中,以防止最终用户猜测其URL直接访问它(并且不要忘记将索引servlet中的前向调用更改为指向/WEB-INF/index.jsp
)。
或者,如果您只打算拥有“主页servlet”而不是“索引servlet”,那么将servlet映射到空字符串URL模式而不是欢迎文件。
<servlet-mapping>
<servlet-name>indexServlet</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
答案 1 :(得分:0)
根据您使用的框架,有多种方法可以实现此目的。
简单来说,您可以先调用servlet,然后将数据设置到表单中,然后重定向到JSP。
或者
如果您熟悉Ajax,可以从jsp进行ajax调用以获取数据
如果您可以告诉我您正在使用的框架工作,我可以为您提供一个示例
答案 2 :(得分:0)
只需创建空虚拟索引页 ...在该页面中添加以下行...
&lt;%request.getRequestDispatcher(&#34;您的Servlet名称&#34;)。include(请求,响应);%&gt; 例如: 的&LT;%的request.getRequestDispatcher(&#34; Alumni_Servlet选项=第一&#34)。包括(请求,响应);%&GT; 强>
然后在该Servlet类中,只需实现逻辑并重定向原始主页或索引页。
答案 3 :(得分:0)
使用JQuery Ajax
<body onload="functionName()">
<script>
function functionName(){
$.ajax({
url : 'YourServlet',
type: "GET",
async: false,
success:function(response){
},
error: function (event) {
console.log("ERROR: ", event);
}
});
}
</script>