日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android_WebView加载网页保存信息到Cookie

發(fā)布時間:2025/4/14 Android 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android_WebView加载网页保存信息到Cookie 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

WebView加載網(wǎng)頁保存信息到Cookie

?

?

一.知識點

??? 1WebView加載INTERNET網(wǎng)頁

?????? 2Android Activity和網(wǎng)頁jsp之間傳遞參數(shù)

?????? 3Jsp存儲數(shù)據(jù)到本地計算機中,通過Cookie實現(xiàn)設(shè)置默認(rèn)值

二.代碼分析

1、PropertyActivity.java

package com.esri.arcgis.android.map;

?

import org.json.JSONArray;

import org.json.JSONObject;

?

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.os.Handler;

import android.util.Log;

import android.view.KeyEvent;

import android.webkit.WebView;

import android.webkit.WebViewClient;

?

public class PropertyActivity extends Activity {

??? private static final String TAG = "PropertyActivity";

??? private WebView webView;

??? private Handler handler = new Handler();

??? private Bundle bundle;

??? private Intent intent;

??? private String xStr = null;// X坐標(biāo)

??? private String yStr = null;// Y坐標(biāo)

??? private int dataType = 0;// 選擇的數(shù)據(jù)類型jsp頁面

??? private int selectType = 0;// 選擇的數(shù)據(jù)類型

?

??? @Override

??? protected void onCreate(Bundle savedInstanceState) {

?????? // TODO Auto-generated method stub

?????? super.onCreate(savedInstanceState);

?????? setContentView(R.layout.webview);

?

?????? // 獲得傳遞過來的參數(shù)

?????? intent = getIntent();

?????? bundle = intent.getExtras();

?????? xStr = String.valueOf(bundle.getDouble("xStr"));

?????? yStr = String.valueOf(bundle.getDouble("yStr"));

?

?????? selectType = bundle.getInt("dataType");

?????? if (selectType <= 3) {

?????????? dataType = 0;

?????? } else if (selectType > 3 && selectType <= 7) {

?????????? dataType = 1;

?????? } else {

?????????? dataType = selectType;

?????? }

?

?????? webView = (WebView) this.findViewById(R.id.webView);

?????? webView.getSettings().setJavaScriptEnabled(true); // 設(shè)置支持javaScript

?????? webView.getSettings().setSaveFormData(false); // 不保存表單數(shù)據(jù)

?????? webView.getSettings().setSavePassword(false); // 不保存密碼

?????? webView.getSettings().setSupportZoom(false); // 不支持頁面放大功能

?????? webView.addJavascriptInterface(new MyJavaScript(), "itcast");

//addJavascriptInterface方法中要綁定的Java對象及方法要運行在另外的線程中,不能運行在構(gòu)造他的線程中

?????? webView.loadUrl("http://192.168.0.44:8090/JNDLS/property_add"

????????????? + dataType + ".jsp");

webView.setWebViewClient(new MyWebViewClient());

?

??? }????????????????????????????????????????????????

?

??? @Override

??? public boolean onKeyDown(int keyCode, KeyEvent event) {

?????? if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {

?????????? webView.goBack();

?????????? return true;

?????? }

?????? return super.onKeyDown(keyCode, event);

??? }

?

??? private final class MyJavaScript {

?

?????? @SuppressWarnings("unused")

?????? public void backActivity(final int i) {

?????????? handler.post(new Runnable() {

????????????? public void run() {

????????????????? if (i == 1) {

???????????????????? PropertyActivity.this.setResult(RESULT_OK, intent);

????????????????? } else if (i == 0) {

???????????????????? PropertyActivity.this

??????????????????????????? .setResult(RESULT_CANCELED, intent);

????????????????? }

????????????????? PropertyActivity.this.finish();

????????????? }

?????????? });

?????? }

?

?????? @SuppressWarnings("unused")

?????? public void getParameter() {

?????????? handler.post(new Runnable() {

????????????? public void run() {

????????????????? String json = buildJson(xStr, yStr);

????????????????? webView.loadUrl("javascript:show('" + json + "')");

????????????? }

?????????? });

?????? }

?

//生成Json格式的數(shù)據(jù)

?

?????? private String buildJson(String x, String y) {

?????????? try {

????????????? JSONArray array = new JSONArray();

????????????? JSONObject item = new JSONObject();

????????????? item.put("x", x);

????????????? item.put("y", y);

????????????? item.put("selectType", selectType);

????????????? array.put(item);

?????? ?????? return array.toString();

?????????? } catch (Exception e) {

????????????? Log.e(TAG, e.toString());

?????????? }

?????????? return "";

?????? }

??? }

?

??? public class MyWebViewClient extends WebViewClient {

?????? public boolean shouldOverviewUrlLoading(WebView view, String url) {

?????????? view.loadUrl(url);

?????????? return true;

?????? }

??? }

}

???????

?

2.webwiew.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

??? android:orientation="vertical"

??? android:layout_width="fill_parent"

??? android:layout_height="fill_parent"

??? >

<WebView android:id="@+id/webView"

?????? android:layout_width="fill_parent"

?????? android:layout_height="fill_parent"/>

</LinearLayout>

3. property_add8.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

Cookie[] cookies=request.getCookies();

//判斷是否為空

if(cookies!=null){

for(int i=0;i<cookies.length;i++){

??? Cookie c=cookies[i];

??? String name=c.getName();

??? String value=c.getValue();

??? request.setAttribute(name, value);

}

}

%>

?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

??? <head>

?????? <base href="<%=basePath%>">

?

?????? <title>添加變壓器屬性頁面</title>

?????? <meta http-equiv="pragma" content="no-cache">

?????? <meta http-equiv="cache-control" content="no-cache">

?????? <meta http-equiv="expires" content="0">

?????? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

?????? <meta http-equiv="description" content="This is my page">

?????? <script type="text/javascript">

function show(jsondata){

var jsonobjs = eval(jsondata);

for(var y=0; y<jsonobjs.length; y++){

window.document.getElementById("xzuobiao").value=jsonobjs[y].x;

window.document.getElementById("yzuobiao").value=jsonobjs[y].y;

window.document.getElementById("selectType").value=jsonobjs[y].selectType;

}

}

</script>

??? </head>

??? <body bgcolor="#F4BD66" text="#000000" style="margin: 0 0 0 0"

?????? onload="javascript:itcast.getParameter()">

?????? <form method="post" action="./propertyAddBYQ">

?????????? <table border="0" width="100%" id="personTable" cellspacing="0">

????????????? <tr>

????????????????? <td colspan="2" align="center">

???????????????????? <font color="green"><b>添加變壓器屬性頁面</b></font>

????????????????? </td>

??? ?????????? </tr>

????????????? <tr>

????????????????? <td>

???????????????????? <font color="green">變壓器名稱:</font>

????????????????? </td>

????????????????? <td>

???????????????????? <input type="text" name="byqmc" id="byqmc"

???????????????????????? value="${requestScope.byqmc}" />

????????????????? </td>

????????????? </tr>

????????????? <tr>

????????????????? <td>

???????????????????? <font color="green">變壓器容量:</font>

????????????????? </td>

????????????????? <td>

???????????????????? <input type="text" name="byqrl" id="byqrl"

???????????????????????? value="${requestScope.byqrl}" />

????????????????? </td>

????????????? </tr>

????????????? <tr>

????????????????? <td>

???????????????????? <font color="green">變壓器型號:</font>

????????????????? </td>

????????????????? <td>

???????????????????? <input type="text" name="byqxh" id="byqxh"

???????????????????????? value="${requestScope.byqxh}" />

????????????????? </td>

????????????? </tr>

????????????? <tr>

????????????????? <td>

???????????????????? <font color="green">備注:</font>

????????????????? </td>

????????????????? <td>

???????????????????? <textarea rows="3" cols="20" name="beizhu" id="beizhu"></textarea>

????????????????? </td>

????????????? </tr>

????????????? <tr>

????????????????? <td>

???????????????????? <font color="green">X</font>

????????????????? </td>

????????????????? <td>

???????????????????? <input type="text" name="xzuobiao" id="xzuobiao"

???????????????????????? readonly="readonly" />

????????????????? </td>

????????????? </tr>

????????????? <tr>

????????????????? <td>

???????????????????? <font color="green">Y</font>

????????????????? </td>

????????????????? <td>

???????????????????? <input type="text" name="yzuobiao" id="yzuobiao"

???????????????????????? readonly="readonly" />

????????????????? </td>

????????????????? <td></td>

????????????? </tr>

????????????? <tr>

????????????????? <td>

???????????????????? <input type="hidden" name="selectType" id="selectType" />

????????????????? </td>

????????????????? <td>

?

????????????????? </td>

????????????????? <td></td>

????????????? </tr>

????????????? <tr>

??? ????????????? <td>

???????????????????? <input type="submit" name="sub" id="sub" value="提交" />

????????????????? </td>

????????????????? <td>

???????????????????? <input type="button" name="cancel" id="cancel"

???????????????????????? onClick="window.itcast.backActivity(0)"value="取消" />

????????????????? </td>

????????????????? <td></td>

????????????? </tr>

?????????? </table>

?????? </form>

??? </body>

</html>

//程序解析:

//1.WebView加載網(wǎng)頁傳遞參數(shù)

//首先,在webview.xml中添加組件WebView,在PropertyActivity.java中進行了一些參數(shù)的設(shè)置,通過WebView.loadUrl()方法加載到網(wǎng)頁property_add8.jsp后,頁面通過JS變量在body中加載與之綁定的JAVA對象new MyJavaScript()getParameter()方法,方法中將要傳遞到頁面的參數(shù)生成Json格式的數(shù)據(jù),再次通過WebView.loadUrl()方法加載頁面JS方法show(),將參數(shù)傳遞到頁面JS方法中,然后對數(shù)據(jù)進行處理。

// ActivitywebView.addJavascriptInterface(new MyJavaScript(), "itcast");方法將new MyJavaScript()類和itcast變量進行了綁定,在jsp頁面中可以通過window.itcast打點調(diào)用MyJavaScript()中的方法,如同JAVA操作,比如window.itcast.backActivity(0)

//2.存儲網(wǎng)頁參數(shù)到Cookie,再次打開網(wǎng)頁設(shè)置默認(rèn)值

?

?

4.Servlet部分代碼1

?

?????? public static void setBianYaQiCookies(HttpServletRequest request,

???????????????????? HttpServletResponse response) {

?

????????????? //創(chuàng)建一個Cookie對象,名稱為第一個參數(shù),存儲的信息為第二個參數(shù)

????????????? Cookie cookie1 = new Cookie("byqmc", request.getParameter("byqmc"));

????????????? Cookie cookie2 = new Cookie("byqrl", request.getParameter("byqrl"));

????????????? Cookie cookie3 = new Cookie("byqxh", request.getParameter("byqxh"));

?

????????????? //Cookie寫入到用戶本地計算機中

????????????? response.addCookie(cookie1);

????????????? response.addCookie(cookie2);

????????????? response.addCookie(cookie3);

?????? }

}

?

?

5. Servlet部分代碼2

//取出用戶機器中的Cookie

Cookie[] cookies=request.getCookies();

for(int i=0;i<cookies.length;i++){

??? Cookie c=cookies[i];

??? String name=c.getName();

??? String value=c.getValue();

??? request.setAttribute(name, value);

}

?

//Cookie存儲在用戶本地計算機上的數(shù)據(jù)

//代碼解析:

//用戶打開jsp頁面填寫完信息提交請求,請求到達(dá)Servlet中獲取頁面參數(shù)創(chuàng)建Cookie對象,存入本地計算機中。

在用戶打開jsp頁面前,首先從用戶本地計算機中取出Cookie,通過EL表達(dá)式在頁面相應(yīng)位置顯示默認(rèn)值,比如

<input type="text" name="byqmc" id="byqmc" value="${requestScope.byqmc}" />

?

//注意:如果要保存到Cookie中的值包含漢字的話,需要進行以下處理:

  存:

    Cookie cookie1 = new Cookie("byqmc", URLEncoder.encode( request.getParameter("byqmc"),?? "UTF-8"));
?    cookie1.setMaxAge(36000);

    response.setCharacterEncoding( "UTF-8 ");?
??  ? response.addCookie(cookie1);

  取:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page language="java" import="java.net.URLDecoder"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
?Cookie c=cookies[i];
?String name=c.getName();
?String value=URLDecoder.decode(cookies[i].getValue(),?? "UTF-8");
?request.setAttribute(name, value);
}
}
%>

?//注釋:當(dāng)漢字存放到Cookie中時進行了編碼,每個編碼之間都用%分隔。使用java.net.URLEncoder進行編碼,使用java.net.URLDecoder進行解碼。

  倘若在JSP頁面中寫JAVA代碼,導(dǎo)入包時,pageEncoding編碼只能寫一個。

轉(zhuǎn)載于:https://www.cnblogs.com/southginger/archive/2011/10/09/2203648.html

總結(jié)

以上是生活随笔為你收集整理的Android_WebView加载网页保存信息到Cookie的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩国产电影 | 亚洲成人网在线观看 | 国产亚洲精品久久久久婷婷瑜伽 | 香蕉黄视频 | 黄色激情在线观看 | 国产精品色网 | 黄色大全免费看 | 无码人妻熟妇av又粗又大 | 欧美色图亚洲色 | 91大片免费看| www国产| 熟妇女人妻丰满少妇中文字幕 | 久久综合第一页 | www.五月婷婷| 福利一区三区 | 国产女主播喷水视频在线观看 | 日本午夜一区二区三区 | 成人在线观看av | 三上悠亚在线播放 | 欧美影院| 第一章豪妇荡乳黄淑珍 | 亚洲视频a | 少妇导航av | 国产不卡精品视频 | 亚洲激情视频在线 | av黄色免费观看 | 农村一级毛片 | 嫩草一区| 欧美亚洲天堂网 | 国产精品免费看 | 欧美一级久久久 | 91网址在线播放 | 女av在线 | 午夜影院免费 | www国产 | www.成人国产 | 亚洲黄色小说网 | 4388成人网| 一区二区三区av在线 | 色综综 | 国产黄a三级三级三级看三级男男 | 久久这里只有精品首页 | 饥渴丰满的少妇喷潮 | 美女毛片在线观看 | 岛国片在线免费观看 | 欧美一级视频 | 手机看片福利在线 | 国产麻豆免费观看 | 青青草91久久久久久久久 | 国产亚洲视频一区 | 久久99色 | 99久热在线精品996热是什么 | www.天天操.com | a在线观看免费 | 91麻豆精品国产午夜天堂 | 少妇被黑人到高潮喷出白浆 | 欧美成人免费看 | 精品美女在线 | 日日干夜夜骑 | 欧美一区亚洲二区 | 69av网| 日韩欧美不卡在线 | 看黄色的网站 | 男人天堂av在线播放 | 男女野外做受全过程 | 激情国产视频 | 欧美一级视频免费观看 | 亚洲开心网 | 国产一区午夜 | 亚洲av永久无码精品一区二区国产 | 综合激情在线 | 农村搞破鞋视频大全 | 一级黄色a级片 | 精品人妻无码一区二区色欲产成人 | 成人免费黄色网址 | 超碰在线观看免费 | 神秘马戏团在线观看免费高清中文 | 亚洲日b视频 | 一级视频在线观看 | 天美麻花果冻视频大全英文版 | 国产三级在线观看 | 一卡二卡三卡四卡在线 | 草视频在线观看 | 永久免费看mv网站入口78 | 操操操视频 | 91在线免费观看网站 | 手机在线不卡av | 台湾色综合 | 婷婷丁香激情五月 | 伊人婷婷综合 | 在线观看毛片网站 | 成人av免费播放 | 久久午夜片 | 日本性爱视频在线观看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品一区二区免费在线观看 | 久久好色 | 最好看的电影2019中文字幕 | 让男按摩师摸好爽 |