如何在index.jsp上加载servlet

时间:2013-04-05 17:24:03

标签: jsp servlets welcome-file

有没有办法在index.jsp上调用servlet?我的欢迎档案是index.jsp。打开index.jsp时,我需要通过servlet填充下拉列表值。

我尝试在<load-on-startup>中设置web.xml,但它没有任何效果。如何获取欢迎文件index.jsp来调用servlet?

4 个答案:

答案 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>