在jsp文件中输入application / json

我创建了一些jsp文件,返回一些json字符串作为响应。 但是我发现Content-Type自动设置为txt

我的jsp代码看起来像

<%@ page import="java.util.Random" %>
<%@ page language="java" %>
<%@ page session="false" %>

<%
  String retVal = "// some json string";

     int millis = new Random().nextInt(1000);
     //    System.out.println("sleeping for " + millis + " millis");
     Thread.sleep(millis);
%>
<%=retVal%>

我该如何执行类似的操作

setHeader("Content-Type", "application/json");

在这个例子中?


你可以通过Page指令来完成。

例如:

<%@ page language="java" contentType="application/json; charset=UTF-8"
    pageEncoding="UTF-8"%>
  • contentType =“mimeType [; charset = characterSet]”| “text / html的;字符集= ISO-8859-1”
  • MIME类型和编码JSP文件的字符用于发送给客户端的响应。 您可以使用对JSP容器有效的任何MIME类型或字符集。 默认的MIME类型是text / html,默认字符集是ISO-8859-1。


    试试这段代码,它也应该工作

    <%
        //response.setContentType("Content-Type", "application/json"); // this will fail compilation
        response.setContentType("application/json"); //fixed
    %>
    

    @Petr Mensik&kensen约翰

    谢谢,我无法使用页面指令,因为我必须根据某个URL参数设置不同的内容类型。 我将粘贴我的代码,因为它与JSON相当常见:

        <%
            String callback = request.getParameter("callback");
            response.setCharacterEncoding("UTF-8");
            if (callback != null) {
                // Equivalent to: <@page contentType="text/javascript" pageEncoding="UTF-8">
                response.setContentType("text/javascript");
            } else {
                // Equivalent to: <@page contentType="application/json" pageEncoding="UTF-8">
                response.setContentType("application/json");
            }
    
            [...]
    
            String output = "";
    
            if (callback != null) {
                output += callback + "(";
            }
    
            output += jsonObj.toString();
    
            if (callback != null) {
                output += ");";
            }
        %>
        <%=output %>
    

    当提供回调时,返回:

        callback({...JSON stuff...});
    

    内容类型为“text / javascript”

    当不提供回调时,返回:

        {...JSON stuff...}
    

    与内容类型的“应用程序/ json”

    链接地址: http://www.djcxy.com/p/1255.html

    上一篇: Type to application/json in jsp file

    下一篇: How to build a RESTful API?