Проблема Cookie веб-представления Android

Итак, вы хотите оценить переменную scriptlet в EL? Сохраните его как атрибут запроса.

<%
    String var = "some";
    request.setAttribute("var", var);
%>


Однако это не имеет смысла. Вы должны избегать скриптлетов в целом и использовать JSTL / EL для подготовки этой переменной. Поэтому, если вы сделаете функциональное требование более понятным, например. «Как это сделать (вставить фрагмент кода scriptlet ) с помощью JSTL / EL?», Тогда мы сможем предложить правильный подход.

Например, вы могли бы используйте , чтобы установить переменную в области EL.


См. также:

81
задан nannerpus 31 October 2009 в 00:22
поделиться

4 ответа

Через какое-то время исследование я собрал некоторые части, которые заставили меня добраться до этого решения. Как только тот CookieSyncManager удерживается от использования, это может быть лучшим способом установить определенный cookie для webview в Kotlin в наше время, Вам не должно быть нужно ничто больше.

private fun setCookie(){
    val cookieManager = CookieManager.getInstance()
    cookieManager.acceptCookie()

    val domain = "https://www.yourdomain.com"

    webView.webViewClient = WebViewClient()
    webViewTest.settings.javaScriptEnabled = true
    webViewTest.loadUrl(domain)

    cookieManager.setCookie(domain,"$cookieKey=$cookieValue")
    cookieManager.setAcceptThirdPartyCookies(view.webViewTest,true)
}
0
ответ дан 24 November 2019 в 09:20
поделиться

Я хотел бы сохранить этот файл cookie сеанса в качестве предпочтения и принудительно повторно заполнить им диспетчер файлов cookie. Похоже, что файл cookie сеанса не сохранился при перезапуске действия

3
ответ дан 24 November 2019 в 09:20
поделиться

Я провел большую половину 3 часа, работаю над очень похожим на проблему. В моем случае у меня было ряд звонков, которые я сделал в веб-сервис с использованием Defaulhttpclient , а затем я хотел установить сеанс и все остальные соответствующие файлы cookie в My WebView .

Я не знаю, будет ли это решить вашу проблему, так как я не знаю, что делает ваш метод getCookie () , но в моем случае мне на самом деле пришлось позвонить.

cookieManager.removeSessionCookie();

Сначала для удаления сеанса cookie и затем повторно добавьте его. Я нашел, что когда я попытался установить jsessiD cookie . Не уверен, что это поможет вам конкретную проблему, но думал, что поделился тем, что я нашел.

3
ответ дан 24 November 2019 в 09:20
поделиться

Спасибо justingrammens ! Это сработало для меня, мне удалось поделиться файлом cookie в моих запросах DefaultHttpClient и активности WebView:

//------- Native request activity
private DefaultHttpClient httpClient;
public static Cookie cookie = null;

//After Login
List<Cookie> cookies = httpClient.getCookieStore().getCookies();
for (int i = 0; i < cookies.size(); i++) {
    cookie = cookies.get(i);
}

//------- Web Browser activity
Cookie sessionCookie = myapp.cookie;
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
if (sessionCookie != null) {
    cookieManager.removeSessionCookie();
    String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();
    cookieManager.setCookie(myapp.domain, cookieString);
    CookieSyncManager.getInstance().sync();
}   
51
ответ дан 24 November 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: