从jsp调用jquery.ajax而不更改url-patterns

时间:2014-01-14 15:04:55

标签: java ajax jsp jquery servlets

我正在为Tomcat服务器上用.jsp技术编写的软件开发一个插件。

开发主要软件的软件公司(我只编写一个插件来管理该软件的日历事件),告诉我最好不要修改web.xml文件和其他配置文件。 事先,我没有访问(因而无法修改)Web应用程序的源代码。我只能添加jsp页面和.jars。

我可以将.jsp页面以及.js或.css文件放在前端的WEB-INF文件夹中。 我还可以访问WEB-INF / lib目录,使用我的后端逻辑为后端库添加我的.jar文件。

我有以下问题:

在这种情况下,我需要通过jquery.ajax方法从我的FrontEnd.jsp页面调用我的.jar库中的函数。我怎样才能做到这一点?


我应该这样做:

FrontEnd.jsp (调用jquery.ajax(传递方法调用))

- > Backend.jsp (读取request.getParameter(方法)并在BackEndLibrary.jar中调用相应的方法)

- > - > .jar库(执行服务器端代码并​​将结果返回到Backend.jsp)

< - Backend.jsp (获取响应并将其序列化为JSON对象)

< - < - FrontEnd.jsp(通过jquery.ajax方法获取JSON对象)


示例:

FrontEnd.jsp

 $("#click").click(function () {
        event= $("#event").val();
        date = $("#date").val();
        methodBackEnd = "getEventByDate";
        // call the ajax backend jsp passing the BackEnd Method to invoke 
        $.ajax({
            type: "POST",
            url: "BackEnd.jsp",
            data: "{'event':'" + event + "','date':'" + date + "','methodBackEnd':'" + methodBackEnd + "'}",
            contentType: "application/json",
            async: false,
            success: function (data) {
                $("#response").html(data.d);
            }

        });
    });

它称之为 的 BackEnd.jsp

<!-- this is the import of my .jar library -->
<%@page import="com.xyz.eventmanagement.*"%>
switch (request.getParameter("methodBackEnd").toString()){
        case "getEventByDate":
            // call getEventByDate method in the .jar and return a JSON object to the frontend
            break;
        case "getEventByDescription":
            // call getEventByDescription method in the .jar and return a JSON object to the frontend
            break;
        default:
            // don't call anything
            break;
    }

您认为这是正确的吗?有不同的方法来实现这一目标吗?我知道这有点奇怪,但我无法修改(例如)web.xml来更改url-patterns。 谢谢。

0 个答案:

没有答案