gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:07:01 24 4
gpt4 key购买 nike

我有一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com