繁体   English   中英

从java中的servlet调用javascript?

[英]call javascript from servlet in java?

我想从servlet调用javascript函数。

servlet代码:

File ff = new File(uploadedFile+"/"+fileName+".mp4");

FileOutputStream fileOutSt = new FileOutputStream( ff );

fileOutSt.write(data);

fileOutSt.close();

request.setAttribute("src", ff);

RequestDispatcher dispatcher=request.getRequestDispatcher("/WEB-INF/jsfunction.js");
dispatcher.include(request, response);

我的javascript代码:

myfunction(fileInput)
{
  var fileUrl = window.URL.createObjectURL(fileInput);
}

问题是javascript调用,但它显示代码内容但不执行它。 我怎样才能获得fileURL。

这里有几件事是错的:

首先,包含您的javascript源是不合适的,因为必须始终在HTML文件中包含(或引用)javascript。 相反,在您的情况下,您正在提供MP4文件。

如果你必须绝对执行那个js代码(记住js总是在浏览器中执行),我建议你改为提供HTML页面。 在这种情况下,必须在HTML代码中引用jsfunction.js脚本:

<html>
<head>
<script type="text/javascript" src="jsfunction.js" />
</head>
<body>
...
</body>
</html>

第二:即使您包含脚本,也必须调用您的函数。 您可以立即从scriptlet中调用它,也可以作为对某些客户端事件的响应( onclickonload等)。

javascript在客户端播放,Servlet在服务器端播放。 您无法在服务器端执行Javascript。 它应该由浏览器执行。

我建议你在window onload中调用javascript。

RequestDispatcher接口提供了将请求分派给另一个资源的功能,它可能是htmlservletjsp 但不是JS 因为JS总是在浏览器中运行。

request.setAttribute("filename",filenamehere); //put filename    
RequestDispatcher requestDispatcher; 
requestDispatcher = request.getRequestDispatcher("/filename.jsp");//dispatch here
requestDispatcher.forward(request, response);

filename.jsp

String value = (String)request.getAttribute("filename");//getting filename

这样做。 这样我们就可以得到文件网址了。

如何将响应从servlet传递给html

使用带有jquery ajax在相同的html调用servlet

servlet

    //getting input from `html` page
    String userName = request.getParameter("userName").trim();
    //now process your request here
    //forward response to `html` page
    response.setContentType("text/plain");
    response.getWriter().write("your file url");

html使用ajax调用此servlet

  $.ajax({
        url : 'yourservletaction',
        data : {
            userName : $('#userName').val()//if you want to send any input do like this
        },
        success : function(responseText) {
            $('#ajaxGetUserServletResponse').text(responseText);//getting file url as response. so use this url in you js  
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM