Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript到javaweb应用程序_Java_Javascript_Web Applications_Servlets - Fatal编程技术网

Javascript到javaweb应用程序

Javascript到javaweb应用程序,java,javascript,web-applications,servlets,Java,Javascript,Web Applications,Servlets,我正在尝试在eclipse中执行一个简单的web项目。我的目标是让.jsp/html文件成为表示层,让javascript处理逻辑,让Java处理服务器端的东西。对于我的简单测试,我只希望我的javascript代码能够与web服务器联系,并让java代码返回一个日期。这是我现在拥有的(注意我只显示“故障”部分) .jsp(Timer.jsp): 爪哇: 我确信JavaScript是错误的,可能是问题所在。所以本质上,我的目标是让标题id“date”从javascript获取日期,javascr

我正在尝试在eclipse中执行一个简单的web项目。我的目标是让.jsp/html文件成为表示层,让javascript处理逻辑,让Java处理服务器端的东西。对于我的简单测试,我只希望我的javascript代码能够与web服务器联系,并让java代码返回一个日期。这是我现在拥有的(注意我只显示“故障”部分)

.jsp(Timer.jsp):

爪哇:

我确信JavaScript是错误的,可能是问题所在。所以本质上,我的目标是让标题id“date”从javascript获取日期,javascript将从javaservlet获取值

如果有人能给我指出正确的方向,无论是资源方面,还是你所拥有的,那就太棒了。谢谢大家!

编辑:这是我最后使用的代码。经过数小时的努力找出问题所在……eclipse中没有提到右键单击HTML并在服务器上运行。一个耻辱的错误,但我永远不会忘记

下面是我用来返回简单日期字符串的代码:

.jsp(Timer.jsp):

爪哇:


至少有两个问题

第一:servlet的结果是Timer.jsp呈现的结果。并且Timer.jsp对servlet存储在请求中的日期不做任何处理。如果您只希望servlet返回格式化的日期,则不需要转发到JSP。只需将日期写给回复的作者即可

第二:JavaScript代码甚至在发送请求之前都会尝试使用响应的内容更改标题的innerHTML。这不行。我的建议是,为了使您的JS代码更易于编写、理解和在浏览器之间移植,请使用jQuery及其AJAX功能:

$('#date').load('CoopTimer');

至少有两个问题

第一:servlet的结果是Timer.jsp呈现的结果。并且Timer.jsp对servlet存储在请求中的日期不做任何处理。如果您只希望servlet返回格式化的日期,则不需要转发到JSP。只需将日期写给回复的作者即可

第二:JavaScript代码甚至在发送请求之前都会尝试使用响应的内容更改标题的innerHTML。这不行。我的建议是,为了使您的JS代码更易于编写、理解和在浏览器之间移植,请使用jQuery及其AJAX功能:

$('#date').load('CoopTimer');

使用jquery进行ajax调用,这本身非常简单 . 下面是javascript代码片段

function pullResultFromServlet() {
  var url = 'servletURL';
  $.ajax({
    url: url,
    dataType: 'json',
    data:{
      "dateValue: $('#date').val(),
    },
    type: 'POST',
    success: function(responseFromServlet) {
      // further processing
      }


    },
    error: function(jqXHR, textStatus, errorThrown) {
    }
  });
}

使用jquery进行ajax调用,这本身非常简单 . 下面是javascript代码片段

function pullResultFromServlet() {
  var url = 'servletURL';
  $.ajax({
    url: url,
    dataType: 'json',
    data:{
      "dateValue: $('#date').val(),
    },
    type: 'POST',
    success: function(responseFromServlet) {
      // further processing
      }


    },
    error: function(jqXHR, textStatus, errorThrown) {
    }
  });
}

我为
servlet
添加了一个标记。您应该查看我们在SO的文档:如果您想发送AJAX请求,那么您不想转发到jsp,您需要直接写入响应输出流(可能是json)。我为
servlet
添加了一个标记。您应该查看我们在SO的文档:如果您想发送AJAX请求,那么您不想转发到jsp,您需要直接写入响应输出流(可能是json);我会找出是什么在试图发出请求,然后将响应发送给它?第二:我已经读了很多关于jQuery的书,它让事情变得简单多了。有没有一种方法可以使用HttpRequest()根据响应而不是我正在做的事情来获取赋值?或者这只适用于jQuery?首先:如果URL的控件要返回当前日期,则只需返回当前日期,而无需找出试图发出请求的内容。请求就是请求,servlet应该总是做同样的事情。第二:当然,没有jQuery也是可能的。jQuery没有比您自己编写的任何脚本更强大的功能。但它使事情变得如此简单和便携,以至于不使用它就像是在射自己的脚。当我在加载时,我应该使用什么地址?我遇到了与使用HTTPRequest.open时相同的问题,在那里它找不到CoopTimer文件。[警告]SRVE0190E:找不到文件:/CoopTimer.java您需要使用servlet映射到的URL。这应该在关于servlet的最基本教程或书籍中介绍。我的Javascript现在将成功联系服务器,但是我不认为Java没有正确返回字符串,或者我的Javascript没有正确接收值。当我在eclipse中测试并运行页面时,Servlet地址/CoopTimer将显示字符串。但是,如果我转到Timer.jsp,它不会显示字符串。相反,它会显示Object.First:So,而不是说equest.getRequestDispatcher(“/Timer.jsp”).forward(请求,响应);我会找出是什么在试图发出请求,然后将响应发送给它?第二:我已经读了很多关于jQuery的书,它让事情变得简单多了。有没有一种方法可以使用HttpRequest()根据响应而不是我正在做的事情来获取赋值?或者这只适用于jQuery?首先:如果URL的控件要返回当前日期,则只需返回当前日期,而无需找出试图发出请求的内容。请求就是请求,servlet应该总是做同样的事情。第二:当然,没有jQuery也是可能的。jQuery没有比您自己编写的任何脚本更强大的功能。但它使事情变得如此简单和便携,以至于不使用它就像是在射自己的脚。当我在加载时,我应该使用什么地址?我遇到了与使用HTTPRequest.open时相同的问题,在那里它找不到CoopTimer文件。[警告]SRVE0190E:找不到文件:/CoopTimer.java您需要使用servlet映射到的URL。这应该包含在关于servlet的最基本的教程或书籍中
$("#date").load("http://127.0.0.1:14949/CoopTimer/CoopTimer");
/**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();

        response.setContentType("text/plain");  
        response.setCharacterEncoding("UTF-8"); 
        response.getWriter().write(date.toString());

        //System.out.println("PING");
    }
$('#date').load('CoopTimer');
function pullResultFromServlet() {
  var url = 'servletURL';
  $.ajax({
    url: url,
    dataType: 'json',
    data:{
      "dateValue: $('#date').val(),
    },
    type: 'POST',
    success: function(responseFromServlet) {
      // further processing
      }


    },
    error: function(jqXHR, textStatus, errorThrown) {
    }
  });
}