Как отобразить строку из сервлета в теге HTML <textarea>? - PullRequest
0 голосов
/ 15 апреля 2019

В моем коде сервлета (см. Ниже) генерируются 2 строки, когда ему отправляется команда post: 1 - закодированный BufferedImage, а другая - стандартная строка Java, содержащая буквы.

При нажатии кнопки на веб-странице закодированный BufferedImage отправляется на холст на моей HTML-странице и работает нормально. Но я также хотел бы, чтобы 2-я строка, содержащая письма, была отправлена ​​в тег на моей веб-странице. Я пытаюсь добавить на существующий PrintWriter, но это не работает, так как 2 строки Goign в 2 разных местах HTML ...

Как сделать, чтобы 2-я строка, содержащая буквы (показанная в моем коде как s.getIdentifiedText () ), отображалась в теге моей веб-страницы?

Код сервлета:

protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws IOException, ServletException {
    Part filePart = request.getPart("file");
    InputStream fileContent = filePart.getInputStream();
    BufferedImage imBuff = ImageIO.read(fileContent);

    SequentialRecursiveImpl s = new SequentialRecursiveImpl(imBuff);
    s.boxFeaturesInImage(imBuff);

    String base64String = encodeToString(imBuff, "jpg");
    response.setContentType("text/html");
    PrintWriter out1 = response.getWriter();
    out1.append(base64String);
   ~~~~~~out1.append(s.getIdentifiedText());~~~~~~~~~~~
    out1.close();
}

Соответствующий JavaScript:

function processImage(){

var dataURL = canvas.toDataURL('image/jpeg', 1);
var blob = dataURItoBlob(dataURL);
var formData = new FormData(document.forms[0]);
formData.append("file", blob);


function dataURItoBlob(dataURI) {
    // convert base64/URLEncoded data component to raw binary data held in a string
    var byteString;
    if (dataURI.split(',')[0].indexOf('base64') >= 0)
        byteString = atob(dataURI.split(',')[1]);
    else
        byteString = unescape(dataURI.split(',')[1]);

    // separate out the mime component
    var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];

    // write the bytes of the string to a typed array
    var ia = new Uint8Array(byteString.length);
    for (var i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }

    return new Blob([ia], {type:mimeString});
}

var xhttp = new XMLHttpRequest();

xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        img.src = "data:image/jpg;base64, "+ xhttp.responseText;
    }
};
xhttp.open("post", "Image", true);  
xhttp.send(formData);
 }

Соответствующий HTML:

    <div class="col-md-4 m-auto">

        <textarea rows="15" cols="40" name="letters"></textarea>

     </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...