android中小说信息抓取展示

1、引言

        这两天打算把以前弄的一个小说阅读软件的爬虫规则更新一下,然后略微修改后准备上线使用,目前只改了一下搜索界面的规则,勉强能用,加载数据方面还需要优化一下,把这一部分发出来给大家看看,感兴趣的可以直接复制去使用。

2、主要代码

2.1、主界面布局



    
        
            
                
            
            
                
                
            
            
        
    
    
    

2.2、ListView布局



    
    
        
        
        
    

2.3、activity界面代码

package xyz.dritrtj.read.ui;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import xyz.dritrtj.read.R;
import xyz.dritrtj.read.data.Title;
import xyz.dritrtj.read.interfaces.Init;
import xyz.dritrtj.read.utils.SetUiSize;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * java中重复使用的变量使用后一定要赋值为空,否则数据可能会出错
 */
public class SearchActivity extends AppCompatActivity implements View.OnClickListener, Init {
    private LinearLayout ll_search;
    private LinearLayout ll_exit;
    private ImageView iv_exit;
    private ImageView iv_circle;
    private EditText et_content;
    private TextView tv_search;
    private ListView lv_search;
    private LinearLayout ll_search_top;
    private WebView wv_search;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);
        initView();
        setViewSize();
        setData();
    }
    @SuppressLint("NonConstantResourceId")
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.tv_search:
                handler.sendEmptyMessage(3);//通知搜索
                break;
            case R.id.ll_exit:
                handler.removeMessages(0);
                finish();
                break;
        }
    }
    @SuppressLint("HandlerLeak")
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case 0:
                    if (list.size()>0){
                        lv_search.setAdapter(adapter);
                    }
                    break;
                case 1://通知更新数据,不要用线程更新
                    adapter.notifyDataSetChanged();
                    break;
                case 2://页面加载完成通知可以开始搜索
                {
                    String name=et_content.getText().toString();
                    et_content.setText("");
                    if (!name.equals("")){
                        jsFunction="javascript:function search(data) {\n" +
                                "                var search=document.getElementById('bdcsMain');\n" +
                                "                search.value=''+data;\n" +
                                "                var cls=document.getElementsByClassName('searchBtn');\n" +
                                "                if (cls.length>0){\n" +
                                "                    var now_search=cls[0];\n" +
                                "                    now_search.click();\n" +
                                "                }\n" +
                                "            }";
                        wv_search.loadUrl(jsFunction);
                        //调用 js函数
                        wv_search.loadUrl("javascript:search("+"'"+name+"'"+");");
                    }
                }
                    break;
                case 3://重新刷新页面,准备搜索
                {
                    flag=0;
                    isStart=false;
                    isSearch=true;
                    wv_search.clearCache(true);//清除缓存
                    wv_search.loadUrl("http://www.ibiquzw.info/");//重新加载页面,因为后面会替换掉url
                }
                    break;
                case 4://返回搜索数据
                {
                    jsFunction="javascript:function getTitle() {\n" +
                            "                var uls=document.getElementsByTagName('ul');\n" +
                            "                if(uls.length>0){\n" +
                            "                    ul=uls[1];\n" +
                            "                    var lis=ul.getElementsByTagName('li');\n" +
                            "                    if(lis.length>0){\n" +
                            "                        var now_li;\n" +
                            "                        var as;\n" +
                            "                        var a;\n" +
                            "                        var url;\n" +
                            "                        var name;\n" +
                            "                        var author;\n" +
                            "                        for (var i = 1; i < lis.length && i<21; i++) {\n" +
                            "                            now_li=lis[i];\n" +
                            "                            as=now_li.getElementsByTagName('a');\n" +
                            "                            if(as.length>0){\n" +
                            "                                a=as[0];\n" +
                            "                                url=a.href;\n" +
                            "                                name=a.innerHTML;\n" +
                            "                                a=as[1];\n" +
                            "                                author=a.innerHTML;\n" +
                            "                                window.Android.setTitle(url,name,author);\n" +
                            "                            }\n" +
                            "                        }\n" +
                            "                        window.Android.notice();\n" +
                            "                    }\n" +
                            "                }\n" +
                            "            }";
                    wv_search.loadUrl(jsFunction);
                    //调用 js函数
                    wv_search.loadUrl("javascript:getTitle();");
                }
                    break;
                case 5: //加载简介和封面url页面
                {
                    flag=1;
                    if (list.size()>now_position){
                        wv_search.loadUrl(list.get(now_position).path);
                    }
                }
                    break;
                case 6: //加载简介和封面url
                {
                    if (list.size()>now_position){
                        jsFunction="javascript:function getContent() {\n" +
                                "                var div=document.getElementById('intro');\n" +
                                "                var introduce=div.innerText;\n" +
                                "                window.Android.setContent(introduce);\n" +
                                "                var img_div=document.getElementById('fmimg');\n" +
                                "                var imgs=img_div.getElementsByTagName('img');\n" +
                                "                if (imgs.length>0){\n" +
                                "                    var img=imgs[0];\n" +
                                "                    var url=img.src;\n" +
                                "                    window.Android.getImg(url);\n" +
                                "                }\n" +
                                "            }";
                        wv_search.loadUrl(jsFunction);
                        //调用 js函数
                        wv_search.loadUrl("javascript:getContent();");
                    }
                }
                    break;
            }
        }
    };
    private Content adapter=new Content();
    private List list=new ArrayList();
    private String jsFunction;//js函数
    private boolean isStart;//是否初始化
    private boolean isSearch;//是否搜索
    @Override
    public void initView() {
        View decorView=getWindow().getDecorView();//获取当前界面的DecorView
        int option=View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;//更改文字颜色为深黑色
        decorView.setSystemUiVisibility(option);//设置系统UI元素的可见性
        getWindow().setNavigationBarColor(Color.TRANSPARENT);
        getWindow().setStatusBarColor(Color.parseColor("#ffffff"));//将状态栏设置为白色
        getSupportActionBar().hide();

        ll_exit = findViewById(R.id.ll_exit);
        ll_exit.setOnClickListener(this);
        ll_search = findViewById(R.id.ll_search);
        iv_exit = findViewById(R.id.iv_exit);
        iv_circle = findViewById(R.id.iv_circle);
        et_content = findViewById(R.id.et_content);
        tv_search = findViewById(R.id.tv_search);
        tv_search.setOnClickListener(this);
        ll_search_top = findViewById(R.id.ll_search_top);
        lv_search = findViewById(R.id.lv_search);
        wv_search = findViewById(R.id.wv_search);
        WebSettings settings = wv_search.getSettings();
        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);//设置回退
        settings.setSupportZoom(true);//支持缩放
        settings.setBuiltInZoomControls(true);//出现缩放工具
        settings.setJavaScriptEnabled(true);// 表示webview可以执行服务器端的js代码
        settings.setUserAgentString("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 " +
                "(KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36");
        //自适应屏幕
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
        //自动缩放
        settings.setBuiltInZoomControls(true);
        settings.setSupportZoom(true);
        //支持获取手势焦点
        wv_search.requestFocusFromTouch();
        settings.setJavaScriptCanOpenWindowsAutomatically(true);//允许js弹出窗口
        wv_search.addJavascriptInterface(new AndroidAndJs(), "Android");
        wv_search.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                if (url.startsWith("http")){
                    if (!isStart&&isSearch){
                        isStart=true;//阻止加载同时切换状态
                        handler.sendEmptyMessage(2);//开始搜索
                    }
                    if (isStart&&url.startsWith("http://www.ibiquzw.info/search.html?name=")){
                        isStart=false;
                        handler.sendEmptyMessage(4);//返回搜索数据
                    }
                    if (flag==1){//加载简介内容和封面url
                        handler.sendEmptyMessage(6);//设置简介
                    }
                }
            }
        });

    }
    private int now_position;//当前位置
    private int flag;//当前位置
    @Override
    public void setViewSize() {
        SetUiSize.setMarginTopLinear(ll_search,10);
        SetUiSize.setMarginBottomLinear(ll_search,10);
        SetUiSize.setWidthLinear(iv_exit,9);
        SetUiSize.setHeightLinear(iv_exit,16);
        SetUiSize.setMarginHorizontalLinear(iv_exit,25);
        SetUiSize.setMarginVerticalLinear(iv_exit,10);
        SetUiSize.setWidthLinear(iv_circle,19);
        SetUiSize.setHeightLinear(iv_circle,19);
        SetUiSize.setHeightLinear(et_content,34);
        SetUiSize.setTextViewSize(et_content,20);
        SetUiSize.setTextViewSize(tv_search,20);
        SetUiSize.setMarginHorizontalLinear(tv_search,10);
        GradientDrawable drawable = (GradientDrawable) ll_search_top.getBackground();
        int size= (int) (20/SetUiSize.displayWidthDp*SetUiSize.displayWidth);
        //两个参数表示一个角,按照左上角,右上角,右下角,左下角的顺序用两个相同的数据表示
        drawable.setCornerRadii(new float[]{size,size,size,size,size,size,size,size});
    }
    @Override
    public void setData() {
        et_content.setOnEditorActionListener((v, actionId, event) -> {
            if ((actionId == EditorInfo.IME_ACTION_UNSPECIFIED ||
                    actionId == EditorInfo.IME_ACTION_SEARCH) && event != null){
                list.clear();
                handler.sendEmptyMessage(3);//发消息搜索
            }
            return false;
        });
        lv_search.setOnItemClickListener((parent, view, position, id) -> {
//            Intent intent=new Intent(SearchActivity.this,ReadActivity.class);
//            intent.putExtra("url",list.get(position).path);//章节页面
//            intent.putExtra("name",list.get(position).name);//书名
//            intent.putExtra("author",list.get(position).author);//作者
//            intent.putExtra("code","0");//表示是搜索来源
//            intent.putExtra("imagePath",list.get(position).imagePath);//表示图片路径
//            startActivity(intent);
        });
        wv_search.clearCache(true);
        wv_search.loadUrl("http://www.ibiquzw.info/");
    }

    private class Content extends BaseAdapter{
        @Override
        public int getCount() {
            return list.size();
        }
        @Override
        public Object getItem(int position) {
            return list.get(position);
        }
        @Override
        public long getItemId(int position) {
            return position;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Holder holder;
            if (convertView==null){
                convertView=View.inflate(SearchActivity.this,
                        R.layout.item_search,null);
                holder=new Holder();
                holder.iv_search_name= convertView.
                        findViewById(R.id.iv_search_name);
                SetUiSize.setWidthLinear(holder.iv_search_name,95);
                SetUiSize.setHeightLinear(holder.iv_search_name,136);
                SetUiSize.setMarginTopLinear(holder.iv_search_name,20);
                SetUiSize.setMarginHorizontalLinear(holder.iv_search_name,20);
                holder.ll_item_search=convertView.
                        findViewById(R.id.ll_item_search);
                SetUiSize.setMarginTopLinear(holder.ll_item_search,20);
                holder.tv_search_title=convertView.
                        findViewById(R.id.tv_search_title);
                SetUiSize.setTextViewSize(holder.tv_search_title,20);
                SetUiSize.setMarginTopLinear(holder.tv_search_title,5);
                holder.tv_search_author=convertView.
                        findViewById(R.id.tv_search_author);
                SetUiSize.setTextViewSize(holder.tv_search_author,15);
                SetUiSize.setMarginTopLinear(holder.tv_search_author,5);
                holder.tv_search_introduction=convertView.
                        findViewById(R.id.tv_search_introduction);
                SetUiSize.setTextViewSize(holder.tv_search_introduction,15);
                SetUiSize.setMarginTopLinear(holder.tv_search_introduction,10);
                convertView.setTag(holder);
            }else {
                holder= (Holder) convertView.getTag();
            }
            Title title = list.get(position);
            holder.tv_search_title.setText(title.name);//书名
            holder.tv_search_author.setText("作者:"+title.author);//作者
            if (title.refresh){
                if (title.introduction.equals("")){
                    holder.tv_search_introduction.setText("暂无简介");//简介
                }else {
                    holder.tv_search_introduction.setText(title.introduction);//简介
                }
                holder.tv_search_introduction.setVisibility(View.VISIBLE);//显示简介
            }else {
                holder.tv_search_introduction.setVisibility(View.INVISIBLE);//隐藏简介
            }
            if (title.isLoad){
                holder.iv_search_name.setImageBitmap(title.bitmap);//图片
                holder.iv_search_name.setVisibility(View.VISIBLE);//显示图片
            }else {
                holder.iv_search_name.setVisibility(View.INVISIBLE);//隐藏图片
                if (holder.iv_search_name.getDrawable()==null){
                    holder.iv_search_name.setBackgroundResource(R.drawable.empty);
                    holder.iv_search_name.setVisibility(View.VISIBLE);//显示图片
                }
            }
            if (title.isEmpty){
                holder.iv_search_name.setBackgroundResource(R.drawable.empty);
                holder.iv_search_name.setVisibility(View.VISIBLE);//显示图片
            }
            return convertView;
        }
    }
    private class Holder{
        public TextView tv_search_title;
        public TextView tv_search_author;
        public TextView tv_search_introduction;
        public ImageView iv_search_name;
        public LinearLayout ll_item_search;
    }
    private ExecutorService service_constriction = Executors.newFixedThreadPool(4);
    private ExecutorService serviceImg = Executors.newFixedThreadPool(8);
    /**
     * 加载图片数据
     * @param position
     * @param img_url
     */
    private void load_img(int position,String img_url){
        serviceImg.execute(() -> {
            Title title=list.get(position);
            try {
                //加载图片
                URL url = new URL(img_url);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.connect();
                //发请求读取返回的数据并封装为bitmap
                int responseCode = connection.getResponseCode();
                if(responseCode==200) {
                    InputStream is = connection.getInputStream();//图片文件流
                    //将is封装为bitmap
                    Bitmap bitmap = BitmapFactory.decodeStream(is);
                    is.close();
                    if(bitmap!=null) {
                        title.bitmap=bitmap;
                        title.isLoad=true;
                    }else {
                        title.isEmpty=true;
                    }
                    handler.sendEmptyMessage(1);
                }
            } catch (Exception e) {
//                throw new RuntimeException(e);
            }
        });
    }
    private Title title;
    private class AndroidAndJs{
        /**
         * 用于获取百度网盘共享目录数据
         * @param url 当前小说url,已经包含前缀
         * @param name 书名
         * @param author 作者
         */
        @JavascriptInterface
        public void setTitle(String url,String name,String author) {
            title=new Title();
            title.name=name;
            title.path=url;
            title.author=""+author;
            list.add(title);
            if (list.size()==1){
                handler.sendEmptyMessage(0);//直接设置数据
            }
            handler.sendEmptyMessage(1);//更新数据
        }
        /**
         * 接收加载完成的通知,收到该通知就开始加载图片和简介
         */
        @JavascriptInterface
        public void notice() {
            handler.sendEmptyMessage(5);//通知加载简介和封面图片url
        }
        /**
         * 加载简介内容
         */
        @JavascriptInterface
        public void setContent(String introduce) {
            if (list.size()>now_position){
                list.get(now_position).refresh=true;
                list.get(now_position).introduction=""+introduce;
            }
        }
        /**
         * 加载图片url
         */
        @JavascriptInterface
        public void getImg(String url) {
            if (list.size()>now_position){
                list.get(now_position).imagePath=""+url;
                load_img(now_position,url);
                now_position++;
                handler.sendEmptyMessage(1);
                handler.sendEmptyMessage(5);
            }
        }
    }
}</code></pre> 
  <h2>3、效果展示</h2> 
  <p style="text-align:center;"><a href="http://img.e-com-net.com/image/info8/7391a141233a46e8ab40febdac57b588.jpg" target="_blank"><img alt="android中小说信息抓取展示_第1张图片" src="http://img.e-com-net.com/image/info8/7391a141233a46e8ab40febdac57b588.jpg" width="525" height="904" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1759793934495739904"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(android,爬虫,小说阅读)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1773610251875057664.htm"
                           title="Android和IOS应用开发-Flutter应用让屏幕在 app 运行期间保持常亮的方法" target="_blank">Android和IOS应用开发-Flutter应用让屏幕在 app 运行期间保持常亮的方法</a>
                        <span class="text-muted">江上清风山间明月</span>
<a class="tag" taget="_blank" href="/search/Flutter/1.htm">Flutter</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/KeepAlive/1.htm">KeepAlive</a><a class="tag" taget="_blank" href="/search/%E5%B1%8F%E5%B9%95%E5%B8%B8%E4%BA%AE/1.htm">屏幕常亮</a><a class="tag" taget="_blank" href="/search/wakelock/1.htm">wakelock</a><a class="tag" taget="_blank" href="/search/%E7%86%84%E5%B1%8F/1.htm">熄屏</a>
                        <div>文章目录Flutter应用让屏幕在app运行期间保持常亮的方法方法一:使用系统插件方法二:使用Widgets注意事项Flutter应用让屏幕在app运行期间保持常亮的方法在Flutter开发中,可以使用以下两种方法让屏幕在app运行期间保持常亮:方法一:使用系统插件Flutter社区中已经有很多相关插件可供使用,比如wakelock:https://pub.dev/packages/wakeloc</div>
                    </li>
                    <li><a href="/article/1773604712738783232.htm"
                           title="android 自定义曲线图,Android自定义View——贝赛尔曲线" target="_blank">android 自定义曲线图,Android自定义View——贝赛尔曲线</a>
                        <span class="text-muted">weixin_39767513</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9B%B2%E7%BA%BF%E5%9B%BE/1.htm">自定义曲线图</a>
                        <div>个人博客:haichenyi.com。感谢关注本文针对有一定自定义View的童鞋,最好对贝赛尔曲线有辣么一丢丢了解,不了解也没关系。花5分钟看一下GcsSloop的安卓自定义View进阶-Path之贝塞尔曲线。本文的最终效果图:最终效果图.gif思路首先他是一个只有上半部分的正弦形状的水波纹,很规则。其次,他这个正弦图左右在移动。然后,就是它这个自定义View,上下也在移动,是慢慢增加的最后,优化</div>
                    </li>
                    <li><a href="/article/1773593758407917568.htm"
                           title="Mac命令行查找SDK/JDK安装位置" target="_blank">Mac命令行查找SDK/JDK安装位置</a>
                        <span class="text-muted">iblade</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>要在命令行中查询AndroidSDKPlatformTools的安装位置,可以使用以下步骤:使用which命令:在命令行中执行以下命令:whichadb这将输出adb命令的安装路径,通常情况下,它会在AndroidSDK的platform-tools目录下。手动查找:如果whichadb没有输出,可以手动查找AndroidSDK的安装位置。通常情况下,AndroidSDK的默认安装路径是在用户的h</div>
                    </li>
                    <li><a href="/article/1773585584300818432.htm"
                           title="下载Android源码" target="_blank">下载Android源码</a>
                        <span class="text-muted">赛非斯</span>

                        <div>repoinit-uhttps://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest-bandroid-10.0.0_r411.首先下载repo:a)终端运行gitclonegit://codeaurora.org/tools/repo.gitb)mkdir~/binc)拷贝repo到~/bin下面,修改repo权限,chmoda+x~</div>
                    </li>
                    <li><a href="/article/1773569448767193088.htm"
                           title="为什么说仪式和习惯非常重要?" target="_blank">为什么说仪式和习惯非常重要?</a>
                        <span class="text-muted">章鱼老师zy</span>

                        <div>这是章鱼姐第【40】篇原创文章,日更计划第【37/100】天。阅读张萌萌姐【精力管理手册】第【6/7】章。一阅读摘要这一章萌姐讲到了习惯的重要性,为什么说养成一个习惯很重要?如何养成一个好习惯?如何建立自己的仪式感?二金句精力管理最重要的是产生什么效果。当你想做却没有动力去做一件事情时,你就应该把它养成习惯。习惯可以帮我们创造稳定框架。对于那些特别考验意志的事情,我们应该先行后思。三思考题,萌姐讲</div>
                    </li>
                    <li><a href="/article/1773514238858428416.htm"
                           title="2022-2-13晨间日记" target="_blank">2022-2-13晨间日记</a>
                        <span class="text-muted">越亮也打烊</span>

                        <div>今天是什么日子起床:7:00就寝:12:08天气:晴心情:糟糕纪念日:无任务清单昨日完成的任务,最重要的三件事:寒假作业,网课,画画改进:作业时间剪短习惯养成:网课不逃~周目标·完成进度数学卷子100%学习·信息·阅读《傅雷家书》《钢铁是怎样炼成的》健康·饮食·锻炼我终于不喝饮料啦,喝茶~人际·家人·朋友邝姐姐带我吃火锅工作·思考啥时候开学,我还有几天赶完作业最美好的三件事1.卷子写完了2.我有冰</div>
                    </li>
                    <li><a href="/article/1773510584294244352.htm"
                           title="中国最美的100个地方,待“软禁”结束后,满血复活去一次旅行!" target="_blank">中国最美的100个地方,待“软禁”结束后,满血复活去一次旅行!</a>
                        <span class="text-muted">是北河二1995</span>

                        <div>【阅读原文,请点击:原文,硬核100个】离成为一个倾国倾城、走路带风的女子还有365天!大家好,我是小草们的北河二~一转眼,2020年已过1/4,突如其来的病毒,搅得人心惶惶。原本的3月里,景区爆满、街道拥堵、小吃铺做无缺席。然而,地球妈妈不会一直宠着我们,给了我们好几个警告。如今,连CCTV-1播出的《人与自然》,我都可以看上好一会儿......高山、流水、湖泊、森林、大海.....它们也在这初</div>
                    </li>
                    <li><a href="/article/1773468510236770304.htm"
                           title="flutter 修改app名字和图标" target="_blank">flutter 修改app名字和图标</a>
                        <span class="text-muted">肥肥呀呀呀</span>
<a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a>
                        <div>一、修改名字在Android中修改应用程序名称:在AndroidManifest.xml文件中修改应用程序名称:打开Flutter项目中的android/app/src/main/AndroidManifest.xml文件。找到标签,然后在android:label属性中修改应用程序的名称,例如:android:label="YourNewAppName"。在strings.xml文件中修改应用程</div>
                    </li>
                    <li><a href="/article/1773442385917837312.htm"
                           title="今日阅读任务" target="_blank">今日阅读任务</a>
                        <span class="text-muted">扎西措的简书</span>

                        <div>四圣谛是总纲释迦牟尼佛开示的法很多,其中四圣谛是纲要。一般祖师们讲经或讲论时,会先讲“略”的,再讲“广”的,先讲纲要,把方向抓出来,再慢慢慢慢发展;如果一开始就从头讲到尾,可能会让听者东南西北都搞不清。先把大纲抓住,就容易与别的法连结。释尊所讲的所有法当中,包括小乘、大乘、显教、密教的法,总的来说,四圣谛是纲要,不论南传的小乘佛教、或是汉传与藏传的大乘佛教,四圣谛是大家共同承认的、大家共有的基础。</div>
                    </li>
                    <li><a href="/article/1773436582347472896.htm"
                           title="『阅读•思考•灵性新苑‖第九辑/358/1001』《冥想》2作者:[印]斯瓦米·拉玛(Swami Rama) 译者:刘海凝" target="_blank">『阅读•思考•灵性新苑‖第九辑/358/1001』《冥想》2作者:[印]斯瓦米·拉玛(Swami Rama) 译者:刘海凝</a>
                        <span class="text-muted">景熙惟</span>

                        <div>部分节选当我们仔细审视生活,就会意识到:从幼年开始,我们接受的教育就仅仅止于观察和了解外部世界。从来没人教导过我们,应当如何向内看、发现和了解内在。因此我们在渴望了解别人的同时,对自己而言却依然是一个陌生人。由于缺乏自我了解,我们的人际关系并不那么称心如意,生活中也常常充满了困惑与失望。事实上,常规教育体系只开发了我们大脑的一小部分。而另外负责做梦、睡眠以及用于存储所有经历的无意识领域,仍不为人知</div>
                    </li>
                    <li><a href="/article/1773412380873654272.htm"
                           title="让孩子幸福的语言" target="_blank">让孩子幸福的语言</a>
                        <span class="text-muted">梓沐儿</span>

                        <div>#21本育儿书挑战今天阅读的是《让孩子幸福的语言》,全书写的“很日本”。没有多少指导性的步骤,却如同工匠般和你娓娓道来。全书最大的观点就是:让家长享受育儿的过程。孩子们成长过程是很快的,不要因为他们做不到某些事情就去苛责他们,要用鼓励性语言提供帮助,期待成长过程中的每一次收获。孩子们的成长确实转瞬即逝,我们一味地追求快、一味地攀比仅会带来无限焦虑。如果可以把成长的过程看成一次探险的话,我们收获的却</div>
                    </li>
                    <li><a href="/article/1773407714278440960.htm"
                           title="绘本讲师训练营【27期】1/21阅读——《绘本之力》" target="_blank">绘本讲师训练营【27期】1/21阅读——《绘本之力》</a>
                        <span class="text-muted">Miya儿童情商绘本讲师</span>

                        <div>27020-林玉霞图片发自App拿到这本书,就被封面所吸引。在一片广阔的树林里,高高低低的树,各种动物,在树林草地的中间,一位父亲陪着一位孩子在读着绘本。让人感觉充满了爱、宁静、和谐和拥有了整个世界。我想这就是绘本能够带给人类的境界吧!是的,接下来书中就提到了“绘本实是神奇的东西。”神奇之处有:1、0-100岁都能从中获得乐趣。2、好绘本看过一次后,能让人印象深刻,留存心底。3、好绘本跨越了文化的</div>
                    </li>
                    <li><a href="/article/1773353080805457920.htm"
                           title="Android 系统应用 pk8签名文件转jks或keystore教程" target="_blank">Android 系统应用 pk8签名文件转jks或keystore教程</a>
                        <span class="text-muted">蜗牛、Z</span>
<a class="tag" taget="_blank" href="/search/AOSP/1.htm">AOSP</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Framework/1.htm">Framework</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/aosp/1.htm">aosp</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91/1.htm">系统应用开发</a>
                        <div>一、介绍签名文件对于我们在做应用开发中,经常遇到,且签名文件不仅仅是保护应用安全,还会涉及到应用与底层之间的数据共享和API文件等问题。在Android中,签名文件同样也存在这个问题。但是android中又区分系统应用和普通应用。系统应用可以通过android:sharedUserId="android.uid.system"同享系统uid,可以获取更高的权限。所以在做系统应用开发的时候,经常需要</div>
                    </li>
                    <li><a href="/article/1773342032769646592.htm"
                           title="一分钟读小说‖铅笔的告白" target="_blank">一分钟读小说‖铅笔的告白</a>
                        <span class="text-muted">李子默_</span>

                        <div>我今天在画画的时候,突然听到了一阵不大不小的啜泣声。我害怕。只敢慢慢抬起头用余光扫了一下桌面。“砰”“哎呀”我的鼻子被一块软软的东西撞了一下。原来是消失已久的橡皮泥呀!“小东西你干嘛呀?”“主人小姐姐,铅笔哥哥快要死掉了。”橡皮泥焦急的喊道。“啊?”“铅笔哥哥说要娶我,他说他要写出一封全世界最动人的情书再来向我求婚,于是他偷偷翻开了主人的《我不喜欢这个世界,我只喜欢你》,把F君所有的情话都抄下来了</div>
                    </li>
                    <li><a href="/article/1773229094205456384.htm"
                           title="ReactNative应用打包后无网络解决方案" target="_blank">ReactNative应用打包后无网络解决方案</a>
                        <span class="text-muted">程序猿也会飞</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/1.htm">最佳实践</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/native/1.htm">native</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a>
                        <div>ReactNative打包应用后,应用没有网络解决方案:在android\app\src\main\res下创建xml文件夹在xml文件夹中创建network_security_config.xml文件network_security_config.xml内容:在android\app\src\main文件夹AndroidManifest.xml文件内的Application标签中添加属性andr</div>
                    </li>
                    <li><a href="/article/1773162507913986048.htm"
                           title="git使用代理解决无法clone的问题及git代理设置" target="_blank">git使用代理解决无法clone的问题及git代理设置</a>
                        <span class="text-muted">yaningli</span>

                        <div>在使用git的时候,经常需要去国外的一些网站clone,由于众所周知的原因,clone失败例如:$gitclonehttps://android.googlesource.com/platform/packages/apps/MessagingCloninginto‘Messaging’…fatal:unabletoaccess‘https://android.googlesource.com/p</div>
                    </li>
                    <li><a href="/article/1772784854707011584.htm"
                           title="快速阅读" target="_blank">快速阅读</a>
                        <span class="text-muted">每一天都来过</span>

                        <div>《快速阅读》这本书,看书名就知道他的核心思想是教导读者如何加快读书的速度。但同时,只求速度不求质量发展也不是良性的循环。所以,作者在介绍快速阅读的时候,也会兼顾如何提高我们的阅读质量,进行了大篇幅的尝试。作者认为一个人的阅读能力可以划分为两个部分,一个是阅读的速度,另外一个是理解的程度。根据阅读速度和理解程度,这两个维度,可以分辨出4种不同的阅读水平:第1种是速度快的,且理解力强的,这是最高水平,</div>
                    </li>
                    <li><a href="/article/1772784853360640000.htm"
                           title="长篇科幻小说《黄茧》第34章 解答 2" target="_blank">长篇科幻小说《黄茧》第34章 解答 2</a>
                        <span class="text-muted">橙黄茧香</span>

                        <div>蜜云虚拟世界由此积蓄大量能源,所有输存进驻人类个体意识全处于升级时静默休眠态,加之在此次6.0版重大升级中,主脑银河将对蜜云虚拟世界内,全部人类个体意识量子态信息数据,添增新植具有生育繁衍功能程序代码,而此项新增功能程序代码运行需能量加持,由此展开完成对每一个体意识修复,也正是依借此新增代码植入,使得唤醒之后聚吸能量的元炎紫灵,快速袭卷覆盖整个蜜云虚拟世界内各个分区世界,疯狂融吸虏获具含升级能量的</div>
                    </li>
                    <li><a href="/article/1772763551547588608.htm"
                           title="育儿小课堂:如何尽早培养孩子良好的阅读习惯?" target="_blank">育儿小课堂:如何尽早培养孩子良好的阅读习惯?</a>
                        <span class="text-muted">嘉宁麻麻</span>

                        <div>对于培养阅读习惯有多种建议,下面介绍几种轻松实用的建议。阅读部分一,创建阅读仪式:留出一段特别的时间作为每日读书时间,把和孩子一起选“每日一书”变成惯例,然后坐在一个专门的位置读书。二,依偎:找一个安静、舒适的地方读书,让孩子紧紧依偎着你,也可以让孩子拿着一个喜爱的玩具,或者是揽着他喜爱的被子。三,富有表情地读:注意韵律和节奏,每个角色用不同声音,不要用“娃娃腔”。家庭环境部分:四,眼里有书:家里</div>
                    </li>
                    <li><a href="/article/1772736200734474240.htm"
                           title="遇见美好|期待越来越好的自己|复盘日记Day137" target="_blank">遇见美好|期待越来越好的自己|复盘日记Day137</a>
                        <span class="text-muted">沫ma的1001页</span>

                        <div>遇见美好|期待越来越好的自己|复盘日记Day1372021年7月21日星期三晴喜马拉雅(沫沫成长记)亲子共读:Day42阅读学习践行Day.17/21晨间日记Day.17/21昨日晚安:23:02今日早安:05:00早起:Day806❥今日运动|跑步0Km(未完成)❥今日自我成长|学习新知识1.听书+书写笔记,小花生阅读打卡2..阅读学习,听音频+写作业3.时间管理2.0线上践行,听课+写作业4.</div>
                    </li>
                    <li><a href="/article/1772688948586414080.htm"
                           title="荷塘夜色" target="_blank">荷塘夜色</a>
                        <span class="text-muted">开在夏末的花立在他山之石</span>

                        <div>葉子,水墨画读已经一周了,每天都有好的文章可以阅读。与志同道合的同伴一起分享创作,是一件快乐的事,在成长的路上,坚持阅读,坚持绘画,做更好的自己。</div>
                    </li>
                    <li><a href="/article/1772671559643758592.htm"
                           title="Ⅴ爱阅读,亲子互动——打卡第197天" target="_blank">Ⅴ爱阅读,亲子互动——打卡第197天</a>
                        <span class="text-muted">郭小郭0830</span>

                        <div>今天读《神奇数字123》,小熊很忙系列《小小宇航员》,《妈妈看从1到10》上午要去取快递和换面粉,不管怎么闹,一说坐车立马高兴!于是乎~上车走之~车开出去还没五分钟,没动静呢?一看早睡着了……脑袋里想到一个词“集贩子庙旋子”,大意就是爱凑热闹的很!下午妈妈和姥爷收拾院子,傍晚有点犯困的时候闹点气,不过小姨抱着一会儿就睡着了。等醒的时候,这个哭啊,哼哼唧唧了一个小时,抱了一个小时,其中抱着的时候尿湿</div>
                    </li>
                    <li><a href="/article/1772667655887585280.htm"
                           title="《天道》:真正厉害的人,都做对了这三点" target="_blank">《天道》:真正厉害的人,都做对了这三点</a>
                        <span class="text-muted">唐夕</span>

                        <div>去年偶然有一次在书店读到豆豆的小说《遥远的救世主》,读完大受震撼,有很多启发。随后一次性买全了豆豆三部曲,这部小说也一直放在书架上,又看了几遍。根据这本书改编的电视剧《天道》,豆瓣评分9.2分,相信你们也一定在短视频平台上刷到过相关的小视频。短视频以及知乎很多博主,都在解读丁元英和芮小丹。但我在几次的阅读过程中,反而觉得欧阳雪更值得我们学习。欧阳雪没有芮小丹那样的出身,没有肖雅文那样的高学历。因家</div>
                    </li>
                    <li><a href="/article/1772656569297731584.htm"
                           title="文字的搬运工" target="_blank">文字的搬运工</a>
                        <span class="text-muted">滴水_旅途</span>

                        <div>维克多·雨果(VictorHugo,1802年2月26日—1885年5月22日),法国作家,19世纪前期积极浪漫主义文学的代表作家,人道主义的代表人物,法国文学史上卓越的资产阶级民主作家,被人们称为“法兰西的莎士比亚”。一生写过多部诗歌、小说、剧本、各种散文和文艺评论及政论文章,在法国及世界有着广泛的影响力。雨果的创作历程超过60年,其作品包括26卷诗歌、20卷小说、12卷剧本、21卷哲理论著,合</div>
                    </li>
                    <li><a href="/article/1772655938814148608.htm"
                           title="大学生如何兼职挣钱?" target="_blank">大学生如何兼职挣钱?</a>
                        <span class="text-muted">逸语锋缘</span>

                        <div>今年受疫情影响,全国大部分大学生都没有办法返校,也就变相的失去的经济来源。这样的情况如何去充实自己的钱包呢?第一,可以出卖体力送外卖,代买,跑腿等业务日渐深入大家的生活,尤其在疫情期间这更是一个比较好的兼职方向。对于那些不怕累能吃苦的人来说,这不失为一个很好的兼职。第二,靠专业技能(至少达到精通)可以根据自己掌握的专业技能与相关网站或者在一些平台签约接单,用自己的专业技能赚钱。第三,写小说,投稿文</div>
                    </li>
                    <li><a href="/article/1772641822837899264.htm"
                           title="《唐阿姨的电脑》唐晓莉林浩(完结篇)全文免费阅读【笔趣阁】" target="_blank">《唐阿姨的电脑》唐晓莉林浩(完结篇)全文免费阅读【笔趣阁】</a>
                        <span class="text-muted">小说推书</span>

                        <div>《唐阿姨的电脑》唐晓莉林浩(完结篇)全文免费阅读【笔趣阁】主角:唐晓莉林浩简介:这天中午,林浩接到了唐晓莉的电话,说家里电脑坏了,问他有没有时间过去帮忙看一眼。可以关注微信公众号【枫叶赏文】去回个书號【唐晓莉】,即可免费阅读【唐阿姨的电脑】小说全文!这天中午,林浩接到了唐晓莉的电话,说家里电脑坏了,问他有没有时间过去帮忙看一眼。“当然有了,我今天没课,唐阿姨你在家等我,十分钟就到。”说完,林浩立马</div>
                    </li>
                    <li><a href="/article/1772630097073864704.htm"
                           title="PTE阅读考试比较难的句子该如何突破?" target="_blank">PTE阅读考试比较难的句子该如何突破?</a>
                        <span class="text-muted">气泡_2e06</span>

                        <div>PTE阅读是让很多小伙伴们头疼的一项,考完分数总是差2、3分。为什么PTE阅读比较难呢?如何提高自己的阅读分数呢?今天小编来教大家PTE比较难的句子该如何突破。Step1.找出下列句子的主语和谓语1)StudyingEnglishtakestimes.2)Thefirststepisalwaysthehardest.3)ChattingontheInternetbringsmealotoffun.</div>
                    </li>
                    <li><a href="/article/1772590511576645632.htm"
                           title="张爱玲。论吃与画饼充饥 2013-2-14 18:41 阅读(15)" target="_blank">张爱玲。论吃与画饼充饥 2013-2-14 18:41 阅读(15)</a>
                        <span class="text-muted">何青猊</span>

                        <div>张爱玲。论吃与画饼充饥出门在外,吃确实是大问题。小时候引以为傲的一点,我毫不挑食,哪里的大学都可以去读--------我确实毫不挑食,只是一出浙江就水土不服。粤菜和我们家乡的菜肴差异并不很大。无奈香港的中餐快餐化的不彻底(因为快餐市场以为西方东瀛南亚菜式挤占的缘故?),类似于我们的快餐店的只有taste里的一个摊位,透明的玻璃罩十几道菜整齐码好,戴白帽的阿姨一手拿食盒一手拿锅铲,“要哪样?要哪样?</div>
                    </li>
                    <li><a href="/article/1772576401166237696.htm"
                           title="2019-09-30" target="_blank">2019-09-30</a>
                        <span class="text-muted">清淡_85a7</span>

                        <div>盛世如愿崔凯寻寻觅觅。去哪里找千年的杨柳景色。走走停停。又转一转今天的神州风光。那鲜血洒成的红旗。有五星指引方向。我心中的祖国呀!黄河与长江永流淌。塞北的草原有徐悲鸿的骏马自由奔放。水墨色的江南戴望舒的雨巷飘过丁香。布达拉宫金碧辉煌。宝岛台湾自在东方。偶翻金庸的小说,有侠之大者为国为民。细听鲁迅的呐喊,用笔尖唤醒国民思想。星星之火可以燎原,烧成了金色的祖国。改革开放势不可挡,万众一心奔向小康。七十</div>
                    </li>
                    <li><a href="/article/1772556108469174272.htm"
                           title="亲子日记37" target="_blank">亲子日记37</a>
                        <span class="text-muted">HelloFox_447c</span>

                        <div>2018年10月31星期三天气晴马上要考试了,孩子们也进入了复习,晚上接到儿子,问了儿子今天在学校都学了什么,儿子说:我们复习了好多好多。回到家,吃过晚饭,让儿子玩了一会开始检查作业,我检查作业的同时让儿子把今天的字练完,然后做了两份前几天买的试题,其他都还好,就是这个阅读题目有待提高王子轩妈妈一年级五班</div>
                    </li>
                                <li><a href="/article/3.htm"
                                       title="枚举的构造函数中抛出异常会怎样" target="_blank">枚举的构造函数中抛出异常会怎样</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a>
                                    <div>首先从使用enum实现单例说起。 
 
为什么要用enum来实现单例? 
这篇文章( 
http://javarevisited.blogspot.sg/2012/07/why-enum-singleton-are-better-in-java.html)阐述了三个理由: 
1.enum单例简单、容易,只需几行代码: 
 

public enum Singleton {
	INSTANCE;</div>
                                </li>
                                <li><a href="/article/130.htm"
                                       title="CMake 教程" target="_blank">CMake 教程</a>
                                    <span class="text-muted">aigo</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a>
                                    <div>转自:http://xiang.lf.blog.163.com/blog/static/127733322201481114456136/ 
  
CMake是一个跨平台的程序构建工具,比如起自己编写Makefile方便很多。 
介绍:http://baike.baidu.com/view/1126160.htm 
本文件不介绍CMake的基本语法,下面是篇不错的入门教程: 
http:</div>
                                </li>
                                <li><a href="/article/257.htm"
                                       title="cvc-complex-type.2.3: Element 'beans' cannot have character" target="_blank">cvc-complex-type.2.3: Element 'beans' cannot have character</a>
                                    <span class="text-muted">Cb123456</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Webgis/1.htm">Webgis</a>
                                    <div>  cvc-complex-type.2.3: Element 'beans' cannot have character 
    Line 33 in XML document from ServletContext resource [/WEB-INF/backend-servlet.xml] is i</div>
                                </li>
                                <li><a href="/article/384.htm"
                                       title="jquery实例:随页面滚动条滚动而自动加载内容" target="_blank">jquery实例:随页面滚动条滚动而自动加载内容</a>
                                    <span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a>
                                    <div><script language="javascript">
$(function (){
	var i = 4;$(window).bind("scroll", function (event){
		//滚动条到网页头部的 高度,兼容ie,ff,chrome
		var top = document.documentElement.s</div>
                                </li>
                                <li><a href="/article/511.htm"
                                       title="将数据库中的数据转换成dbs文件" target="_blank">将数据库中的数据转换成dbs文件</a>
                                    <span class="text-muted">何必如此</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/dbs/1.htm">dbs</a>
                                    <div>旗正规则引擎通过数据库配置器(DataBuilder)来管理数据库,无论是Oracle,还是其他主流的数据都支持,操作方式是一样的。旗正规则引擎的数据库配置器是用于编辑数据库结构信息以及管理数据库表数据,并且可以执行SQL 语句,主要功能如下。 
1)数据库生成表结构信息: 
        主要生成数据库配置文件(.conf文</div>
                                </li>
                                <li><a href="/article/638.htm"
                                       title="在IBATIS中配置SQL语句的IN方式" target="_blank">在IBATIS中配置SQL语句的IN方式</a>
                                    <span class="text-muted">357029540</span>
<a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a>
                                    <div>在使用IBATIS进行SQL语句配置查询时,我们一定会遇到通过IN查询的地方,在使用IN查询时我们可以有两种方式进行配置参数:String和List。具体使用方式如下: 
 
1.String:定义一个String的参数userIds,把这个参数传入IBATIS的sql配置文件,sql语句就可以这样写: 
 
 
 
<select id="getForms" param</div>
                                </li>
                                <li><a href="/article/765.htm"
                                       title="Spring3 MVC 笔记(一)" target="_blank">Spring3 MVC 笔记(一)</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a><a class="tag" taget="_blank" href="/search/JSF/1.htm">JSF</a>
                                    <div>    
     自从 MVC 这个概念提出来之后 struts1.X  struts2.X   jsf 。。。。。 
这个view 层的技术一个接一个! 都用过!不敢说哪个绝对的强悍! 
要看业务,和整体的设计! 
 
     最近公司要求开发个新系统!</div>
                                </li>
                                <li><a href="/article/892.htm"
                                       title="Timer与Spring Quartz 定时执行程序" target="_blank">Timer与Spring Quartz 定时执行程序</a>
                                    <span class="text-muted">darkranger</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a>
                                    <div>有时候需要定时触发某一项任务。其实在jdk1.3,java sdk就通过java.util.Timer提供相应的功能。一个简单的例子说明如何使用,很简单: 1、第一步,我们需要建立一项任务,我们的任务需要继承java.util.TimerTask package com.test; import java.text.SimpleDateFormat; import java.util.Date; </div>
                                </li>
                                <li><a href="/article/1019.htm"
                                       title="大端小端转换,le32_to_cpu 和cpu_to_le32" target="_blank">大端小端转换,le32_to_cpu 和cpu_to_le32</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3/1.htm">C语言相关</a>
                                    <div>大端小端转换,le32_to_cpu 和cpu_to_le32   字节序  
http://oss.org.cn/kernel-book/ldd3/ch11s04.html 
        小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以另一种方式(大端)</div>
                                </li>
                                <li><a href="/article/1146.htm"
                                       title="Nginx负载均衡配置实例详解" target="_blank">Nginx负载均衡配置实例详解</a>
                                    <span class="text-muted">avords</span>

                                    <div>[导读] 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解  负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。 
负载均衡 
先来简单了解一下什么是负载均衡</div>
                                </li>
                                <li><a href="/article/1273.htm"
                                       title="乱说的" target="_blank">乱说的</a>
                                    <span class="text-muted">houxinyou</span>
<a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/1.htm">敏捷开发</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a>
                                    <div>从很久以前,大家就研究框架,开发方法,软件工程,好多!反正我是搞不明白!   
这两天看好多人研究敏捷模型,瀑布模型!也没太搞明白.    
不过感觉和程序开发语言差不多,   
瀑布就是顺序,敏捷就是循环.    
瀑布就是需求、分析、设计、编码、测试一步一步走下来。而敏捷就是按摸块或者说迭代做个循环,第个循环中也一样是需求、分析、设计、编码、测试一步一步走下来。   
  
也可以把软件开发理</div>
                                </li>
                                <li><a href="/article/1400.htm"
                                       title="欣赏的价值——一个小故事" target="_blank">欣赏的价值——一个小故事</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%89%E6%95%88%E8%BE%85%E5%AF%BC/1.htm">有效辅导</a><a class="tag" taget="_blank" href="/search/%E6%AC%A3%E8%B5%8F/1.htm">欣赏</a><a class="tag" taget="_blank" href="/search/%E6%AC%A3%E8%B5%8F%E7%9A%84%E4%BB%B7%E5%80%BC/1.htm">欣赏的价值</a>
                                    <div>  第一次参加家长会,幼儿园的老师说:"您的儿子有多动症,在板凳上连三分钟都坐不了,你最好带他去医院看一看。"  回家的路上,儿子问她老师都说了些什么,她鼻子一酸,差点流下泪来。因为全班30位小朋友,惟有他表现最差;惟有对他,老师表现出不屑,然而她还在告诉她的儿子:"老师表扬你了,说宝宝原来在板凳上坐不了一分钟,现在能坐三分钟。其他妈妈都非常羡慕妈妈,因为全班只有宝宝</div>
                                </li>
                                <li><a href="/article/1527.htm"
                                       title="包冲突问题的解决方法" target="_blank">包冲突问题的解决方法</a>
                                    <span class="text-muted">bingyingao</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/exclusions/1.htm">exclusions</a><a class="tag" taget="_blank" href="/search/%E5%8C%85%E5%86%B2%E7%AA%81/1.htm">包冲突</a>
                                    <div>包冲突是开发过程中很常见的问题: 
其表现有: 
1.明明在eclipse中能够索引到某个类,运行时却报出找不到类。 
2.明明在eclipse中能够索引到某个类的方法,运行时却报出找不到方法。 
3.类及方法都有,以正确编译成了.class文件,在本机跑的好好的,发到测试或者正式环境就 
抛如下异常: 
 
java.lang.NoClassDefFoundError: Could not in</div>
                                </li>
                                <li><a href="/article/1654.htm"
                                       title="【Spark七十五】Spark Streaming整合Flume-NG三之接入log4j" target="_blank">【Spark七十五】Spark Streaming整合Flume-NG三之接入log4j</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Stream/1.htm">Stream</a>
                                    <div>先来一段废话: 
实际工作中,业务系统的日志基本上是使用Log4j写入到日志文件中的,问题的关键之处在于业务日志的格式混乱,这给对日志文件中的日志进行统计分析带来了极大的困难,或者说,基本上无法进行分析,每个人写日志的习惯不同,导致日志行的格式五花八门,最后只能通过grep来查找特定的关键词缩小范围,但是在集群环境下,每个机器去grep一遍,分析一遍,这个效率如何可想之二,大好光阴都浪费在这上面了</div>
                                </li>
                                <li><a href="/article/1781.htm"
                                       title="sudoku solver in Haskell" target="_blank">sudoku solver in Haskell</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/sudoku/1.htm">sudoku</a><a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a>
                                    <div>这几天没太多的事做,想着用函数式语言来写点实用的程序,像fib和prime之类的就不想提了(就一行代码的事),写什么程序呢?在网上闲逛时发现sudoku游戏,sudoku十几年前就知道了,学生生涯时也想过用C/Java来实现个智能求解,但到最后往往没写成,主要是用C/Java写的话会很麻烦。 
  
现在写程序,本人总是有一种思维惯性,总是想把程序写的更紧凑,更精致,代码行数最少,所以现</div>
                                </li>
                                <li><a href="/article/1908.htm"
                                       title="java apache ftpClient" target="_blank">java apache ftpClient</a>
                                    <span class="text-muted">bro_feng</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>最近使用apache的ftpclient插件实现ftp下载,遇见几个问题,做如下总结。 
1. 上传阻塞,一连串的上传,其中一个就阻塞了,或是用storeFile上传时返回false。查了点资料,说是FTP有主动模式和被动模式。将传出模式修改为被动模式ftp.enterLocalPassiveMode();然后就好了。 
 
看了网上相关介绍,对主动模式和被动模式区别还是比较的模糊,不太了解被动模</div>
                                </li>
                                <li><a href="/article/2035.htm"
                                       title="读《研磨设计模式》-代码笔记-工厂方法模式" target="_blank">读《研磨设计模式》-代码笔记-工厂方法模式</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 
 
 


package design.pattern;

/*
 * 工厂方法模式:使一个类的实例化延迟到子类
 * 某次,我在工作不知不觉中就用到了工厂方法模式(称为模板方法模式更恰当。2012-10-29):
 * 有很多不同的产品,它</div>
                                </li>
                                <li><a href="/article/2162.htm"
                                       title="面试记录语" target="_blank">面试记录语</a>
                                    <span class="text-muted">chenyu19891124</span>
<a class="tag" taget="_blank" href="/search/%E6%8B%9B%E8%81%98/1.htm">招聘</a>
                                    <div>或许真的在一个平台上成长成什么样,都必须靠自己去努力。有了好的平台让自己展示,就该好好努力。今天是自己单独一次去面试别人,感觉有点小紧张,说话有点打结。在面试完后写面试情况表,下笔真的好难,尤其是要对面试人的情况说明真的好难。 
今天面试的是自己同事的同事,现在的这个同事要离职了,介绍了我现在这位同事以前的同事来面试。今天这位求职者面试的是配置管理,期初看了简历觉得应该很适合做配置管理,但是今天面</div>
                                </li>
                                <li><a href="/article/2289.htm"
                                       title="Fire Workflow 1.0正式版终于发布了" target="_blank">Fire Workflow 1.0正式版终于发布了</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/workflow/1.htm">workflow</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a>
                                    <div>Fire Workflow 是国内另外一款开源工作流,作者是著名的非也同志,哈哈.... 
 官方网站是 http://www.fireflow.org 
 
 经过大家努力,Fire Workflow 1.0正式版终于发布了 
 
 正式版主要变化: 
1、增加IWorkItem.jumpToEx(...)方法,取消了当前环节和目标环节必须在同一条执行线的限制,使得自由流更加自由 
2、增加IT</div>
                                </li>
                                <li><a href="/article/2416.htm"
                                       title="Python向脚本传参" target="_blank">Python向脚本传参</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a><a class="tag" taget="_blank" href="/search/%E4%BC%A0%E5%8F%82/1.htm">传参</a>
                                    <div>如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 
需要模块:sys 
参数个数:len(sys.argv) 
脚本名:    sys.argv[0] 
参数1:     sys.argv[1] 
参数2:     sys.argv[</div>
                                </li>
                                <li><a href="/article/2543.htm"
                                       title="管理用户分组的命令gpasswd" target="_blank">管理用户分组的命令gpasswd</a>
                                    <span class="text-muted">dongwei_6688</span>
<a class="tag" taget="_blank" href="/search/passwd/1.htm">passwd</a>
                                    <div>NAME:  gpasswd - administer the /etc/group file 
SYNOPSIS: 
 gpasswd group 
 gpasswd -a user group 
 gpasswd -d user group 
 gpasswd -R group 
 gpasswd -r group 
 gpasswd [-A user,...] [-M user,...] g</div>
                                </li>
                                <li><a href="/article/2670.htm"
                                       title="郝斌老师数据结构课程笔记" target="_blank">郝斌老师数据结构课程笔记</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a>
                                    <div><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</div>
                                </li>
                                <li><a href="/article/2797.htm"
                                       title="yii2 cgridview加上选择框进行操作" target="_blank">yii2 cgridview加上选择框进行操作</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/GridView/1.htm">GridView</a>
                                    <div>页面代码
<?=Html::beginForm(['controller/bulk'],'post');?>
<?=Html::dropDownList('action','',[''=>'Mark selected as: ','c'=>'Confirmed','nc'=>'No Confirmed'],['class'=>'dropdown',])</div>
                                </li>
                                <li><a href="/article/2924.htm"
                                       title="linux mysql" target="_blank">linux mysql</a>
                                    <span class="text-muted">fypop</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>enquiry mysql version in centos linux 
yum list installed | grep mysql 
yum -y remove mysql-libs.x86_64 
enquiry mysql version in yum repositoryyum list | grep mysql oryum -y list mysql* 
install mysq</div>
                                </li>
                                <li><a href="/article/3051.htm"
                                       title="Scramble String" target="_blank">Scramble String</a>
                                    <span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/String/1.htm">String</a>
                                    <div>Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively. 
Below is one possible representation of s1 = "great":</div>
                                </li>
                                <li><a href="/article/3178.htm"
                                       title="跟我学Shiro目录贴" target="_blank">跟我学Shiro目录贴</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/%E8%B7%9F%E6%88%91%E5%AD%A6shiro/1.htm">跟我学shiro</a>
                                    <div>历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。 
  
  
----广告-----------------------------------------------------</div>
                                </li>
                                <li><a href="/article/3305.htm"
                                       title="nginx日志切割并使用flume-ng收集日志" target="_blank">nginx日志切割并使用flume-ng收集日志</a>
                                    <span class="text-muted">liyonghui160com</span>

                                    <div>  
   nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件。第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。第二步向nginx主</div>
                                </li>
                                <li><a href="/article/3432.htm"
                                       title="Oracle死锁解决方法" target="_blank">Oracle死锁解决方法</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                                    <div> select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.</div>
                                </li>
                                <li><a href="/article/3559.htm"
                                       title="java之List排序" target="_blank">java之List排序</a>
                                    <span class="text-muted">shiguanghui</span>
<a class="tag" taget="_blank" href="/search/list%E6%8E%92%E5%BA%8F/1.htm">list排序</a>
                                    <div>   在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。   你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递</div>
                                </li>
                                <li><a href="/article/3686.htm"
                                       title="servlet单例多线程" target="_blank">servlet单例多线程</a>
                                    <span class="text-muted">utopialxw</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a>
                                    <div>转自http://www.cnblogs.com/yjhrem/articles/3160864.html 
和   http://blog.chinaunix.net/uid-7374279-id-3687149.html 
Servlet 单例多线程 
Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的:1.当web服务器启动的</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>