java - 我的 .jsp AJAX 调用从我的 Servlet Controller 返回代码而不是执行它

标签 java ajax jsp tomcat servlets

我有一个 index.jsp 调用一个执行操作并返回结果的 Java Controller 。所有代码都位于服务器中。所以我让 Tomcat 在服务器上运行并从我的本地机器调用索引页面。问题在于调用 Controller 的 AJAX 正在带回整个 Java 代码,而不是在服务器中执行它并带回结果。所以我真的得到了

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginController extends HttpServlet {

public LoginController()
{
    super();
}

等这是 Ajax 代码:

function loadRows()
{
     var review_ID = location.search.split('review=')[1];

     $.ajax({
            url : "../src/mvcdemo/controllers/LoginController.java",
            type : "post",
            data : {
                "reviewID" : review_ID 
            },
            success : function(data) {
                alert(data);
            ...
            }
     });

PS:服务器中安装了 Java,如果我从本地主机运行它,整个项目工作正常。问题出在本地计算机和服务器之间的通信中。此外,在我的本地主机上运行它时,URL 只是“LoginController”,但在服务器上运行它时找不到文件,所以我不得不使用相对路径并在末尾添加“.java”工作,我不确定这是否与它有任何关系。

提前感谢您提供任何信息!

编辑:

我正在使用 web.xml 来定义我的 Servlet,这是代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
   <display-name>MVCDemo</display-name>
   <servlet>
      <description></description>
      <display-name>LoginController</display-name>
      <servlet-name>LoginController</servlet-name>
      <servlet-class>mvcdemo.controllers.LoginController</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>LoginController</servlet-name>
      <url-pattern>/LoginController</url-pattern>
   </servlet-mapping>
   <servlet>
      <description></description>
      <display-name>UpdateController</display-name>
      <servlet-name>UpdateController</servlet-name>
      <servlet-class>mvcdemo.controllers.UpdateController</servlet-class>
   </servlet>
   <servlet>
      <description></description>
      <display-name>SubmitController</display-name>
      <servlet-name>SubmitController</servlet-name>
      <servlet-class>mvcdemo.controllers.SubmitController</servlet-class>
   </servlet>

最佳答案

如果我错了请纠正我,但您的 jsp 没有调用 Controller 。

解决方案一

无论如何使用 servlet 3.0 注释(未测试)试试这个:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/login")
public class LoginController extends HttpServlet {

    public LoginController() {
        super();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
        // do whatever it is you want
    }

}

然后

$.ajax({
        url : "/login",
        type : "post",
        data : {
            "reviewID" : review_ID 
        },
        success : function(data) {
            alert(data);
        ...
        }
 });

方案二

如果你不能使用 servlet 3.0 注释(这真的很有用,比 web.xml 更直观)

那么你将不得不使用 web.xml

您需要确保服务器正确加载了您的 web.xml。

关于java - 我的 .jsp AJAX 调用从我的 Servlet Controller 返回代码而不是执行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29080901/

相关文章:

java - jar 未加载。请参阅 Servlet 规范 2.3,第 9.7.2 节。违规类 : javax/servlet/Servlet. 类

java - 如何测试 Hibernate HQL 查询?

jsp - 连接到 solr 实例时在 tomcat 中出现错误 :org. apache.solr.common.SolrException : Unable to create HttpClient instance.

java - 我的 JSP 页面未从数据库获取数据。我应该做什么来改善这个?

java - JSP中通过servlet检索网页

java - IntelliJ IDEA Community Edition 中的 Spring 未绑定(bind) @Autowired

java - 对 LinkedHashSet 进行排序

java - 如何在具有动态下拉列表的Android中制作表单

ajax - ASP.NET Core Razor ajax POST 请求数据对象为空

ajax - Google 使用 # 而不是搜索?在网址中。为什么?