2017-02-03 12 views
1

Я получаю 2 запроса на странице JSP, а затем обрабатываю данные в классе Util. Но как я могу хранить данные с первого запроса? Кажется, что второй запрос удаляет все содержимое первого запроса, которое я сохраняю в vars.2 запроса на JSP второй удаляет содержимое переменных

Запрос оформляется 2 различными способами send() в моем процессе orbeon.

Вот как я хотел бы сохранить мои данные на 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

Вы также не должны хранить код Java в JSP. Вместо этого отделите представление (JSP) и бизнес-логику (Servlet). Также становится яснее, что происходит, когда у вас нет всего в одном месте. К сожалению, если вы привыкли к PHP (ужасный и склонный к ошибкам) ​​способ писать все вместе в одном и том же месте, это может показаться раздражающим. – Kayaman

ответ

0

Я просто должен был создать HttpSession в JSP, чтобы заставить его работать. Спасибо @Jacek Cz за напоминание об этом.