java - 如何从javascript调用servlet

标签 java javascript jsp servlets

web.xml 中的 Servlet 配置

<servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>DataEntry</servlet-name>
    <servlet-class>com.ctn.origin.connection.DataEntry</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>DataEntry</servlet-name>
    <url-pattern>/dataentry</url-pattern>
  </servlet-mapping>

Javascript:

<script type="text/javascript">
    function unloadEvt() {

        document.location.href='/test/dataentry';

    }
</script>

但是使用这个 javascript 不能调用我的 servlet。

有没有错误?如何调用servlet?

最佳答案

从你原来的问题:

document.location.href="/dataentry";

URL 中的前导斜杠 / 会将您带到域根目录。

那么如果包含脚本的JSP页面运行在

http://localhost:8080/contextname/page.jsp

然后您的位置 URL 将指向

http://localhost:8080/dataentry

但你其实需要

http://localhost:8080/contextname/dataentry

因此,相应地修改 URL

document.location.href = 'dataentry';
// Or
document.location.href = '/contextname/dataentry';
// Or
document.location.href = '${pageContext.request.contextPath}/dataentry';

除此之外,函数名称 unloadEvt() 表明您在 onunloadonbeforeunload 期间调用该函数。如果这是真的,那么您应该寻找其他解决方案。该请求不保证永远到达服务器。这取决于所使用的浏览器等。如何正确解决它取决于问题中不清楚的唯一功能需求。

关于java - 如何从javascript调用servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218237/

相关文章:

javascript - JSP 代码如何操作 Ajax javascript 代码中的值?

java - 如何使用 Hashmap 对字典中的困惑单词进行排序

javascript - 在 C# 中将 JavaScript AST (Esprima.Net) 遍历到树

mysql - 我如何在java中的输出中附加指定字符,其中输出是从数据库获取的

在只有 Java 代码的 JSP 文件中启用、禁用下拉菜单的 Javascript,直接没有 HTML

java - Java8中可以通过流给object中的变量赋值吗?

java - 我们在哪里使用 BitSet 以及为什么在 java 中使用它?

javascript - $ ("#myTextArea").val() 返回空字符串

javascript - 无法在 Javascript 中将文本复制到剪贴板

java - 如何使用jasper从jsp生成pdf格式的报告