JSP上的2个请求第二个删除变量内容

时间:2017-02-03 08:30:27

标签: java jsp orbeon

我在JSP页面上收到2个请求,然后我在Util类中处理数据。但是如何保留第一次请求的数据呢?似乎第二个请求删除了我在vars中保存的第一个请求的所有内容。

请求由我的orbeon流程中的2个不同的send()发出。

以下是我希望如何在JSP上保存数据:

// read request parameters
String documentId = request.getParameter("document");
String pdfUrl = "";
String base64Data = "";
// read request content (XML data entered by the user)
String data = Utils.readRequestBody(request);
if (Utils.isUrl(data)) {
    pdfUrl = Utils.getUrl(data);
} else {
    base64Data = Utils.encodeb64(data);
}

这是我在Utils类中的方法:

    public static boolean isUrl(String data) {
        boolean isUrl = false;
        String urlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><uri>";
        if (data.toLowerCase().contains(urlString.toLowerCase())) {
            isUrl = true;
        }
        return isUrl;
    }

    public static String getUrl(String data) {
        String urlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><uri>";
        data = data.substring(urlString.length(), data.length()-7);
        return data;
    }
 public static String readRequestBody(HttpServletRequest req) throws IOException {
        StringBuilder sb = new StringBuilder();
        String line = null;
        BufferedReader reader = req.getReader();
        while ((line = reader.readLine()) != null) {
            // important to add lineSeparator to preserve line feeds in multiline text fields
            sb.append(line).append(System.lineSeparator());
        }
        return sb.toString();
    }
    public static String encodeb64(String s) {
        return new String(Base64.getEncoder().encode(s.getBytes()));
    }

所以我觉得我不明白,所以我需要帮助来学习如何处理这种情况。

致以最诚挚的问候,

约瑟夫

1 个答案:

答案 0 :(得分:0)

我只需要在JSP中创建HttpSession以使其工作。感谢@Jacek Cz提醒我们。