【JSP/Servlet-HTTP会话解析】


个人学习整理,如有不足之处,请不吝指教。转载请注明:@CSU-Max


Max之前的一篇关于Session 和 Cookie 的文章:cookie和session那些事

会话简介


web服务器跟踪客户状态的几种方式:
   1、在html表单中加入隐藏字段,它包含用于跟踪用户状态的数据;
   2、重写URL,及在URL中附带用户的状态信息;
   3、使用cookie来传递用于跟踪客户状态的数据;
   4、使用会话来跟踪用户状态的数据。

   会话能够把用户与同一用户发出的不同请求之间关联起来。不同用户的会话应当是相互独立的。在web开发领域,会话机制是用于跟踪用户状态的普遍解决方案。会话是指在一段时间内,单个用户与web应用的一系列交互过程。在一个会话过程中,用户可以多次请求该web应用的同一页面,也可以访问该web应用中的其他页面。

   在Servlet中有关于会话的 javax.servlet.http.HttpSession 接口,Servlet容器必须实现这一接口。当一个会话开始时,Servlet容器会创建一个HttpSession对象,将客户信息状态存储在该对象中,如购物车信息。Servlet容器为每个HttpSession对象分配一个唯一的标志符,称为SessionID。

会话的运作流程

   
   1、当一个浏览器进程第一次请求访问某个web应用中任意一个支持会话的网页(也可以设置页面不支持会话,下文有介绍),Servlet容器会试图寻找HTTP请求中表示SessionID的Cookie,由于还不存在这样的Cookie,故此时就会开启一个新的会话,Servlet容器会创建一个HttpSession对象,并为其分配一个唯一的SessionID,在返回HTTP响应结果时,Cookie会附带该SessionID。当浏览器接收到HTTP响应结果之后,会把Cookie(带有SessionID)保存在客户端。
   
   2、该浏览器进程继续访问该web应用中的任意支持会话的页面,在本次的HTTP请求中会包含带有SessionID的Cookie,Servlet容器会获取本次HTTP请求中的SessionID,该SessionID就是1中产生的,因此Servlet容器认为本次请求与上次请求处于同一个会话中,Servlet容器不会创建新的HttpSession对象,而是根据Cookie中的SessionID,找到内存中该SessionID对应的HttpSession对象。

   3、重复步骤2,在当前会话销毁之前(关于会话的销毁下文有介绍),仍是在同一个会话中进行访问,故不会产生新的HttpSession对象。

通过代码实例来了解会话机制


    在默认情况下,JSP页面都会支持会话,也可以通过代码显式控制支持会话:

<%@ page session = "true" %>


   若web组件支持会话,当客户请求访问该web组件时,Servlet容器会自动查找HTTP请求中表示SessionID的Cookie,并向HTTP响应结果中添加表示SessionID的Cookie。在此过程中,若有与SessionID对应的HttpSession对象,则Servlet容器使用该对象,若没有,则Servlet容器会创建一个新的HttpSession对象。
web组件可以访问代表当前会话的HttpSession对象。

   我们可以通过下面的实例代码来了解,新建一个web工程,在根目录下新建一个test.jsp,具体代码如下:
<%@ page language ="java" contentType="text/html; charset=utf-8"
      pageEncoding= "utf-8"%>




 Insert title here</ title>
</head>
<body>
     <%
          Cookie[] cookies = request.getCookies();
           if (cookies == null) {
              out.println( "no cookie");
               return;
          }
           for ( int i = 0; i < cookies.length; i++) {
     %>
     <b >Cookie Name </b>
     <%=cookies[i].getName() %>
     <br >
     <b >Cookie Value </b>
     <%=cookies[i].getValue() %>
     <br >
     <b >Cookie Maxage</ b>
     <%=cookies[i].getMaxAge() %>
     <%
          }
     %>
</body>
</html>
</code></pre> 
  <p></p> 
  <p><span style="font-family:'Courier New';font-size:18px;"><br></span></p> 
  <p></p> 
  <div> 
   <span><span style="font-family:'Courier New';font-size:18px;">   1、打开一个浏览器进程,第一次请求访问test.jsp页面,会返回“no cookie”。</span></span> 
  </div> 
  <span style="font-family:'Courier New';font-size:18px;">      <a href="http://img.e-com-net.com/image/info8/5a72f85336554aebb8d7fcbdf613471e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5a72f85336554aebb8d7fcbdf613471e.jpg" alt="" width="352" height="79"></a><br></span> 
  <p></p> 
  <p><span style="font-family:'Courier New';font-size:18px;"><br></span></p> 
  <p></p> 
  <div> 
   <span><span style="font-family:'Courier New';font-size:18px;">   2、利用1打开的浏览器进程,再次访问test.jsp页面(即再按一次回车即可)。由于在1中,Servlet容器会向客户端发送一个包含SessionID的Cookie(上面已经讲到),所以本次的HTTP请求中会包含该Cookie,故test.jsp页面上会显示该Cookie的数据,如下图:</span></span> 
  </div> 
  <p></p> 
  <p><span style="font-family:'Courier New';font-size:18px;">      <a href="http://img.e-com-net.com/image/info8/bf192b2f91be46c4a023f96d96d0a0e2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/bf192b2f91be46c4a023f96d96d0a0e2.jpg" alt="" width="450" height="99"></a></span></p> 
  <p><span style="font-family:'Courier New';font-size:18px;"><br></span></p> 
  <p></p> 
  <div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">注:此处Cookie的maxage(有效期)属性值为 -1,表示该Cookie仅存在与当前的浏览器进程中,当浏览器关闭,该Cookie也就失效了,本次会话也结束了。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   3、利用1打开的浏览器进程再多次访问test.jsp页面,页面显示的数据仍如上图所示。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">      <a href="http://img.e-com-net.com/image/info8/43b712a98f0946b28d8aa6adbcf2de1b.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/43b712a98f0946b28d8aa6adbcf2de1b.jpg" alt="" width="450" height="99"></a></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   4、重新打来一个浏览器进程,重复步骤1、2、3,会发现页面显示的Cookie Value不一样,即SessionID不一样,因为不同的浏览器进程对应不同的会话,每个会话都拥有一个唯一的SesionID。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   5、在test.jsp中加入如下代码,使test.jsp不支持会话,再重新打开一个浏览器进程,多次访问test.jsp页面,结果都是显示“no cookie”。因为test.jsp显式要求不支持会话,所以Servlet容器不会创建HttpSession对象,也不会向客户端发送表示SessionID的Cookie。</span> 
   </div> 
  </div> 
  <span style="font-family:'Courier New';font-size:18px;"><br></span> 
  <p></p> 
  <p></p> 
  <div> 
   <h1><span style="font-family:'Courier New';font-size:18px;">HttpSession 的会话范围</span></h1> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   </span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   会话的范围指的是浏览器端与一个web应用进行一次会话的过程。在具体实现时,会话范围与HttpSession对象的生命周期相对应,所以web组件只要共享同一个HttpSession对象,就能实现共享会话范围内的共享数据。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">在HttpSession接口中关于在会话范围内存取共享数据有如下方法:</span> 
   </div> 
  </div> 
  <span style="font-family:'Courier New';font-size:18px;"></span> 
  <pre><code class="language-java"> /**
      * 向会话范围内存放共享数据
      */
     public void setAttribute(String name, Object value) {

     }

     /**
      * 返回会话范围内与name对应的共享数据
      */
     public Object getAttribute(String name) {
           return null;
     }

     /**
      * 返回会话范围内所有共享数据的name
      */
     public Enumeration getAttributeNames() {
           return null;
     }

     /**
      * 删除会话范围内与name对应的共享数据
      */
     public void removeAttribute(String name) {

     }

</code></pre> 
  <p></p> 
  <p><span style="font-family:'Courier New';font-size:18px;"></span></p> 
  <div> 
   <span style="font-family:'微软雅黑';font-size:14px;">      </span> 
  </div> 
  <div> 
   <span style="font-family:'微软雅黑';font-size:14px;">      </span> 
   <span>利用以上的方法,我们就可以在会话范围内存取共享数据了:</span> 
  </div> 
  <pre><code class="language-java">  HttpSession session = request.getSession();
           //将username 存储到会话范围内的共享数据中
          session.setAttribute( "username", username);

           //从会话范围内读取username
          currentUser = (String) session.getAttribute("username" );
</code></pre> 
  <p></p> 
  <p><span style="font-family:'Courier New';font-size:18px;"><br></span></p> 
  <p></p> 
  <div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   在HttpSession接口中还有一些其他的访问会话的方法,想了解的可以自行研究。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <h1><span style="font-family:'Courier New';font-size:18px;">HttpSession 的生命周期</span></h1> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   在以下情况下,会<strong><span style="color:#660000;">开启一个新的会话</span></strong>,即Servlet容器会创建一个新的HttpSession对象:</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   1、一个浏览器进程第一次访问某个web应用中支持会话的任意一个网页。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   2、当浏览器与web应用的上一次会话被销毁后,浏览器进程再次访问web应用中支持会话的任意一个网页。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">注:当浏览器进程与web应用的一次会话被销毁之后,web服务器端相应的HttpSession对象结束其生命周期。当浏览器进程再次访问该web应用时,在它的HTTP请求中的Cookie中包含了之前已被销毁的SessionID,但是此时Servlet容器无法找到次SessionID对应的HttpSession对象,故Servlet容器会创建新的HttpSession对象,开启新的会话。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   在以下情况下,会<strong><span style="color:#660000;">销毁一个会话</span></strong>,即Servlet容器会使HttpSession对象结束生命周期,并且存储在会话范围内的共享数据也会被销毁:</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   1、浏览器进程终止。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   2、服务器端执行了HttpSession对象的invalidate()方法。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   3、会话过期。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   </span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   会话过期是指在会话开启之后,若在一段规定的时间内,用户没用和web应用进行交互,则Servlet容器会自动的销毁这个会话。HttpSession中的 setMaxInactiveInterval(int interval) 方法用于设置允许会话保持不活动状态的时间(以秒为单位),如果超过这个规定的时间,会话就会被Servlet容器销毁。若把 interval 参数设为负数,则表示会话永远不会过期。在Tomcat中,默认的会话保持不活动状态的时间是1800秒。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   当一个会话开启后,如果浏览器进程突然关闭,Servlet容器无法立即知道浏览器进程已经关闭,因此Servlet容器中的HttpSession对象不会立即结束生命周期,会话会在浏览器进程关闭之后,进入不活动状态,等到超出上述规定的时间后,会话就会因为过期而被Servlet容器销毁。</span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><br></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;"><strong>为什么要有会话过期的机制呢?</strong></span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   </span> 
   </div> 
   <div> 
    <span style="font-family:'Courier New';font-size:18px;">   我们知道,过多无用的HttpSession对象会影响web服务器的性能,销毁长期不活动的会话,可以及时释放这些HttpSession对象占用的内存空间。同时,会话过期机制也提高了web应用的安全性,防止未授权的用户访问会话。如某个用户访问某个web应用,之后并没有关闭浏览器进程,此时另一个用户使用该浏览器进程访问同一web应用,此时看到的是前一个用户的信息,这就给安全带来了隐患。</span> 
   </div> 
  </div> 
  <p></p> 
  <p><br></p> 
  <p></p> 
  <p style="line-height:26px;"> <span style="font-family:'Courier New';font-size:14px;"> </span><span style="font-family:'Courier New';font-size:18px;">********************************************************************************<br></span></p> 
  <p style="line-height:26px;"> <span style="font-family:'Courier New';font-size:18px;"> **          转载请注明出处:  @CSU-Max    http://blog.csdn.net/csu_max          **</span><span style="font-family:'Courier New';font-size:18px;">     **********************************************************************</span><span style="font-family:'Courier New';font-size:18px;">**********</span></p> 
  <p><span style="font-family:'Courier New';font-size:18px;"><br></span></p> 
  <p><br></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1278458811245412352"></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">你可能感兴趣的:(【-Java,Web-】)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1835509897106649088.htm"
                           title="Long类型前后端数据不一致" target="_blank">Long类型前后端数据不一致</a>
                        <span class="text-muted">igotyback</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问</div>
                    </li>
                    <li><a href="/article/1835509769822105600.htm"
                           title="LocalDateTime 转 String" target="_blank">LocalDateTime 转 String</a>
                        <span class="text-muted">igotyback</span>
<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>importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;publicclassMain{publicstaticvoidmain(String[]args){//获取当前时间LocalDateTimenow=LocalDateTime.now();//定义日期格式化器DateTimeFormatterformat</div>
                    </li>
                    <li><a href="/article/1835509391361667072.htm"
                           title="Linux下QT开发的动态库界面弹出操作(SDL2)" target="_blank">Linux下QT开发的动态库界面弹出操作(SDL2)</a>
                        <span class="text-muted">13jjyao</span>
<a class="tag" taget="_blank" href="/search/QT%E7%B1%BB/1.htm">QT类</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/sdl2/1.htm">sdl2</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>需求:操作系统为linux,开发框架为qt,做成需带界面的qt动态库,调用方为java等非qt程序难点:调用方为java等非qt程序,也就是说调用方肯定不带QApplication::exec(),缺少了这个,QTimer等事件和QT创建的窗口将不能弹出(包括opencv也是不能弹出);这与qt调用本身qt库是有本质的区别的思路:1.调用方缺QApplication::exec(),那么我们在接口</div>
                    </li>
                    <li><a href="/article/1835498925755297792.htm"
                           title="DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理" target="_blank">DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理</a>
                        <span class="text-muted">STU学生网页设计</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/%E6%9C%9F%E6%9C%AB%E7%BD%91%E9%A1%B5%E4%BD%9C%E4%B8%9A/1.htm">期末网页作业</a><a class="tag" taget="_blank" href="/search/html%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5/1.htm">html静态网页</a><a class="tag" taget="_blank" href="/search/html5%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">html5期末大作业</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/web%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web大作业</a>
                        <div>️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程</div>
                    </li>
                    <li><a href="/article/1835498547785592832.htm"
                           title="【华为OD机试真题2023B卷 JAVA&JS】We Are A Team" target="_blank">【华为OD机试真题2023B卷 JAVA&JS】We Are A Team</a>
                        <span class="text-muted">若博豆</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>华为OD2023(B卷)机试题库全覆盖,刷题指南点这里WeAreATeam时间限制:1秒|内存限制:32768K|语言限制:不限题目描述:总共有n个人在机房,每个人有一个标号(1<=标号<=n),他们分成了多个团队,需要你根据收到的m条消息判定指定的两个人是否在一个团队中,具体的:1、消息构成为:abc,整数a、b分别代</div>
                    </li>
                    <li><a href="/article/1835496149843275776.htm"
                           title="关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript" target="_blank">关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript</a>
                        <span class="text-muted">二挡起步</span>
<a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E6%97%85%E6%B8%B8/1.htm">旅游</a><a class="tag" taget="_blank" href="/search/%E9%A3%8E%E6%99%AF/1.htm">风景</a>
                        <div>⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip</div>
                    </li>
                    <li><a href="/article/1835496148601761792.htm"
                           title="HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动" target="_blank">HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动</a>
                        <span class="text-muted">二挡起步</span>
<a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/web%E8%AE%BE%E8%AE%A1%E7%BD%91%E9%A1%B5%E8%A7%84%E5%88%92%E4%B8%8E%E8%AE%BE%E8%AE%A1/1.htm">web设计网页规划与设计</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/dreamweaver/1.htm">dreamweaver</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线</div>
                    </li>
                    <li><a href="/article/1835492740536823808.htm"
                           title="node.js学习" target="_blank">node.js学习</a>
                        <span class="text-muted">小猿L</span>
<a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a>
                        <div>node.js学习实操及笔记温故node.js,node.js学习实操过程及笔记~node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记为什么学node.js可以让别人访问我们编写的网页为后续的框架学习打下基础,三大框架vuereactangular离不开node.jsnode.js是什么官网:node.js是一个开源的、跨平台的运行JavaScript的运行</div>
                    </li>
                    <li><a href="/article/1835476093189058560.htm"
                           title="Java 重写(Override)与重载(Overload)" target="_blank">Java 重写(Override)与重载(Overload)</a>
                        <span class="text-muted">叨唧唧的</span>

                        <div>Java重写(Override)与重载(Overload)重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如:父类的一个方法申明了一个检查异常IOExceptio</div>
                    </li>
                    <li><a href="/article/1835473830873755648.htm"
                           title="简单了解 JVM" target="_blank">简单了解 JVM</a>
                        <span class="text-muted">记得开心一点啊</span>
<a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a>
                        <div>目录♫什么是JVM♫JVM的运行流程♫JVM运行时数据区♪虚拟机栈♪本地方法栈♪堆♪程序计数器♪方法区/元数据区♫类加载的过程♫双亲委派模型♫垃圾回收机制♫什么是JVMJVM是JavaVirtualMachine的简称,意为Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统(如:JVM、VMwave、VirtualBox)。JVM和其他两个虚拟机</div>
                    </li>
                    <li><a href="/article/1835471058648526848.htm"
                           title="1分钟解决 -bash: mvn: command not found,在Centos 7中安装Maven" target="_blank">1分钟解决 -bash: mvn: command not found,在Centos 7中安装Maven</a>
                        <span class="text-muted">Energet!c</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>1分钟解决-bash:mvn:commandnotfound,在Centos7中安装Maven检查Java环境1下载Maven2解压Maven3配置环境变量4验证安装5常见问题与注意事项6总结检查Java环境Maven依赖Java环境,请确保系统已经安装了Java并配置了环境变量。可以通过以下命令检查:java-version如果未安装,请先安装Java。1下载Maven从官网下载:前往Apach</div>
                    </li>
                    <li><a href="/article/1835469672334585856.htm"
                           title="Java企业面试题3" target="_blank">Java企业面试题3</a>
                        <span class="text-muted">马龙强_</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>1.break和continue的作用(智*图)break:用于完全退出一个循环(如for,while)或一个switch语句。当在循环体内遇到break语句时,程序会立即跳出当前循环体,继续执行循环之后的代码。continue:用于跳过当前循环体中剩余的部分,并开始下一次循环。如果是在for循环中使用continue,则会直接进行条件判断以决定是否执行下一轮循环。2.if分支语句和switch分</div>
                    </li>
                    <li><a href="/article/1835468916290318336.htm"
                           title="JVM、JRE和 JDK:理解Java开发的三大核心组件" target="_blank">JVM、JRE和 JDK:理解Java开发的三大核心组件</a>
                        <span class="text-muted">Y雨何时停T</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>Java是一门跨平台的编程语言,它的成功离不开背后强大的运行环境与开发工具的支持。在Java的生态中,JVM(Java虚拟机)、JRE(Java运行时环境)和JDK(Java开发工具包)是三个至关重要的核心组件。本文将探讨JVM、JDK和JRE的区别,帮助你更好地理解Java的运行机制。1.JVM:Java虚拟机(JavaVirtualMachine)什么是JVM?JVM,即Java虚拟机,是Ja</div>
                    </li>
                    <li><a href="/article/1835464504918503424.htm"
                           title="Java面试题精选:消息队列(二)" target="_blank">Java面试题精选:消息队列(二)</a>
                        <span class="text-muted">芒果不是芒</span>
<a class="tag" taget="_blank" href="/search/Java%E9%9D%A2%E8%AF%95%E9%A2%98%E7%B2%BE%E9%80%89/1.htm">Java面试题精选</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a>
                        <div>一、Kafka的特性1.消息持久化:消息存储在磁盘,所以消息不会丢失2.高吞吐量:可以轻松实现单机百万级别的并发3.扩展性:扩展性强,还是动态扩展4.多客户端支持:支持多种语言(Java、C、C++、GO、)5.KafkaStreams(一个天生的流处理):在双十一或者销售大屏就会用到这种流处理。使用KafkaStreams可以快速的把销售额统计出来6.安全机制:Kafka进行生产或者消费的时候会</div>
                    </li>
                    <li><a href="/article/1835462485629562880.htm"
                           title="白骑士的Java教学基础篇 2.5 控制流语句" target="_blank">白骑士的Java教学基础篇 2.5 控制流语句</a>
                        <span class="text-muted">白骑士所长</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%95%99%E5%AD%A6/1.htm">教学</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>欢迎继续学习Java编程的基础篇!在前面的章节中,我们了解了Java的变量、数据类型和运算符。接下来,我们将探讨Java中的控制流语句。控制流语句用于控制程序的执行顺序,使我们能够根据特定条件执行不同的代码块,或重复执行某段代码。这是编写复杂程序的基础。通过学习这一节内容,你将掌握如何使用条件语句和循环语句来编写更加灵活和高效的代码。条件语句条件语句用于根据条件的真假来执行不同的代码块。if语句‘</div>
                    </li>
                    <li><a href="/article/1835462232612368384.htm"
                           title="python语法——三目运算符" target="_blank">python语法——三目运算符</a>
                        <span class="text-muted">HappyRocking</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%B8%89%E7%9B%AE%E8%BF%90%E7%AE%97%E7%AC%A6/1.htm">三目运算符</a>
                        <div>在java中,有三目运算符,如:intc=(a>b)?a:b表示c取两者中的较大值。但是在python,不能直接这样使用,估计是因为冒号在python有分行的关键作用。那么在python中,如何实现类似功能呢?可以使用ifelse语句,也是一行可以完成,格式为:aifbelsec表示如果b为True,则表达式等于a,否则等于c。如:c=(aif(a>b)elseb)同样是完成了取最大值的功能。</div>
                    </li>
                    <li><a href="/article/1835457442260021248.htm"
                           title="ArrayList 源码解析" target="_blank">ArrayList 源码解析</a>
                        <span class="text-muted">程序猿进阶</span>
<a class="tag" taget="_blank" href="/search/Java%E5%9F%BA%E7%A1%80/1.htm">Java基础</a><a class="tag" taget="_blank" href="/search/ArrayList/1.htm">ArrayList</a><a class="tag" taget="_blank" href="/search/List/1.htm">List</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/idea/1.htm">idea</a>
                        <div>ArrayList是Java集合框架中的一个动态数组实现,提供了可变大小的数组功能。它继承自AbstractList并实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量capacity,表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添</div>
                    </li>
                    <li><a href="/article/1835454921990828032.htm"
                           title="Java爬虫框架(一)--架构设计" target="_blank">Java爬虫框架(一)--架构设计</a>
                        <span class="text-muted">狼图腾-狼之传说</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BB%BB%E5%8A%A1/1.htm">任务</a><a class="tag" taget="_blank" href="/search/html%E8%A7%A3%E6%9E%90%E5%99%A8/1.htm">html解析器</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8/1.htm">存储</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1/1.htm">电子商务</a>
                        <div>一、架构图那里搜网络爬虫框架主要针对电子商务网站进行数据爬取,分析,存储,索引。爬虫:爬虫负责爬取,解析,处理电子商务网站的网页的内容数据库:存储商品信息索引:商品的全文搜索索引Task队列:需要爬取的网页列表Visited表:已经爬取过的网页列表爬虫监控平台:web平台可以启动,停止爬虫,管理爬虫,task队列,visited表。二、爬虫1.流程1)Scheduler启动爬虫器,TaskMast</div>
                    </li>
                    <li><a href="/article/1835454543471669248.htm"
                           title="Java:爬虫框架" target="_blank">Java:爬虫框架</a>
                        <span class="text-muted">dingcho</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a>
                        <div>一、ApacheNutch2【参考地址】Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。Nutch致力于让每个人能很容易,同时花费很少就可以配置世界一流的Web搜索引擎.为了完成这一宏伟的目标,Nutch必须能够做到:每个月取几十亿网页为这些网页维护一个索引对索引文件进行每秒上千次的搜索提供高质量的搜索结果简单来说Nutch支持分</div>
                    </li>
                    <li><a href="/article/1835450890077696000.htm"
                           title="python怎么将png转为tif_png转tif" target="_blank">python怎么将png转为tif_png转tif</a>
                        <span class="text-muted">weixin_39977276</span>

                        <div>发国外的文章要求图片是tif,cmyk色彩空间的。大小尺寸还有要求。比如网上大神多,找到了一段代码,感谢!https://www.jianshu.com/p/ec2af4311f56https://github.com/KevinZc007/image2Tifimportjava.awt.image.BufferedImage;importjava.io.File;importjava.io.Fi</div>
                    </li>
                    <li><a href="/article/1835448239864770560.htm"
                           title="JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)" target="_blank">JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)</a>
                        <span class="text-muted">跳房子的前端</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95/1.htm">前端面试</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                        <div>在JavaScript中,深拷贝(DeepCopy)和浅拷贝(ShallowCopy)是用于复制对象或数组的两种不同方法。了解它们的区别和应用场景对于避免潜在的bugs和高效地处理数据非常重要。以下是对深拷贝和浅拷贝的详细解释,包括它们的概念、用途、优缺点以及实现方式。1.浅拷贝(ShallowCopy)概念定义:浅拷贝是指创建一个新的对象或数组,其中包含了原对象或数组的基本数据类型的值和对引用数</div>
                    </li>
                    <li><a href="/article/1835444076007223296.htm"
                           title="JAVA·一个简单的登录窗口" target="_blank">JAVA·一个简单的登录窗口</a>
                        <span class="text-muted">MortalTom</span>
<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><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>文章目录概要整体架构流程技术名词解释技术细节资源概要JavaSwing是Java基础类库的一部分,主要用于开发图形用户界面(GUI)程序整体架构流程新建项目,导入sql.jar包(链接放在了文末),编译项目并运行技术名词解释一、特点丰富的组件提供了多种可视化组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、下拉列表(JComboBox)等,可以满足不同的界面设计</div>
                    </li>
                    <li><a href="/article/1835438028009598976.htm"
                           title="WebMagic:强大的Java爬虫框架解析与实战" target="_blank">WebMagic:强大的Java爬虫框架解析与实战</a>
                        <span class="text-muted">Aaron_945</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录引言官网链接WebMagic原理概述基础使用1.添加依赖2.编写PageProcessor高级使用1.自定义Pipeline2.分布式抓取优点结论引言在大数据时代,网络爬虫作为数据收集的重要工具,扮演着不可或缺的角色。Java作为一门广泛使用的编程语言,在爬虫开发领域也有其独特的优势。WebMagic是一个开源的Java爬虫框架,它提供了简单灵活的API,支持多线程、分布式抓取,以及丰富的</div>
                    </li>
                    <li><a href="/article/1835437775344726016.htm"
                           title="博客网站制作教程" target="_blank">博客网站制作教程</a>
                        <span class="text-muted">2401_85194651</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                        <div>首先就是技术框架:后端:Java+SpringBoot数据库:MySQL前端:Vue.js数据库连接:JPA(JavaPersistenceAPI)1.项目结构blog-app/├──backend/│├──src/main/java/com/example/blogapp/││├──BlogApplication.java││├──config/│││└──DatabaseConfig.java</div>
                    </li>
                    <li><a href="/article/1835435506645692416.htm"
                           title="00. 这里整理了最全的爬虫框架(Java + Python)" target="_blank">00. 这里整理了最全的爬虫框架(Java + Python)</a>
                        <span class="text-muted">有一只柴犬</span>
<a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E7%B3%BB%E5%88%97/1.htm">爬虫系列</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>目录1、前言2、什么是网络爬虫3、常见的爬虫框架3.1、java框架3.1.1、WebMagic3.1.2、Jsoup3.1.3、HttpClient3.1.4、Crawler4j3.1.5、HtmlUnit3.1.6、Selenium3.2、Python框架3.2.1、Scrapy3.2.2、BeautifulSoup+Requests3.2.3、Selenium3.2.4、PyQuery3.2</div>
                    </li>
                    <li><a href="/article/1835429581205630976.htm"
                           title="JAVA学习笔记之23种设计模式学习" target="_blank">JAVA学习笔记之23种设计模式学习</a>
                        <span class="text-muted">victorfreedom</span>
<a class="tag" taget="_blank" href="/search/Java%E6%8A%80%E6%9C%AF/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><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">常用设计模式</a>
                        <div>博主最近买了《设计模式》这本书来学习,无奈这本书是以C++语言为基础进行说明,整个学习流程下来效率不是很高,虽然有的设计模式通俗易懂,但感觉还是没有充分的掌握了所有的设计模式。于是博主百度了一番,发现有大神写过了这方面的问题,于是博主迅速拿来学习。一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器</div>
                    </li>
                    <li><a href="/article/1835428948339683328.htm"
                           title="JavaScript `Map` 和 `WeakMap`详细解释" target="_blank">JavaScript `Map` 和 `WeakMap`详细解释</a>
                        <span class="text-muted">跳房子的前端</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E7%94%9F%E6%96%B9%E6%B3%95/1.htm">原生方法</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>在JavaScript中,Map和WeakMap都是用于存储键值对的数据结构,但它们有一些关键的不同之处。MapMap是一种可以存储任意类型的键值对的集合。它保持了键值对的插入顺序,并且可以通过键快速查找对应的值。Map提供了一些非常有用的方法和属性来操作这些数据对:set(key,value):将一个键值对添加到Map中。如果键已经存在,则更新其对应的值。get(key):获取指定键的值。如果键</div>
                    </li>
                    <li><a href="/article/1835419870070665216.htm"
                           title="切换淘宝最新npm镜像源是" target="_blank">切换淘宝最新npm镜像源是</a>
                        <span class="text-muted">hai40587</span>
<a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a>
                        <div>切换淘宝最新npm镜像源是一个相对简单的过程,但首先需要明确当前淘宝npm镜像源的状态和最新的镜像地址。由于网络环境和服务更新,镜像源的具体地址可能会发生变化,因此,我将基于当前可获取的信息,提供一个通用的切换步骤,并附上最新的镜像地址(截至回答时)。一、了解npm镜像源npm(NodePackageManager)是JavaScript的包管理器,用于安装、更新和管理项目依赖。由于npm官方仓库</div>
                    </li>
                    <li><a href="/article/1835417602004971520.htm"
                           title="【Java】已解决:java.util.concurrent.CompletionException" target="_blank">【Java】已解决:java.util.concurrent.CompletionException</a>
                        <span class="text-muted">屿小夏</span>
<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>文章目录一、分析问题背景出现问题的场景代码片段二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项已解决:java.util.concurrent.CompletionException一、分析问题背景在Java并发编程中,java.util.concurrent.CompletionException是一种常见的运行时异常,通常在使用CompletableFuture进行异步计算时出现</div>
                    </li>
                    <li><a href="/article/1835411171054809088.htm"
                           title="设计模式之建造者模式(通俗易懂--代码辅助理解【Java版】)" target="_blank">设计模式之建造者模式(通俗易懂--代码辅助理解【Java版】)</a>
                        <span class="text-muted">ok!ko</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F/1.htm">建造者模式</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>文章目录设计模式概述1、建造者模式2、建造者模式使用场景3、优点4、缺点5、主要角色6、代码示例:1)实现要求2)UML图3)实现步骤:1)创建一个表示食物条目和食物包装的接口2)创建实现Packing接口的实体类3)创建实现Item接口的抽象类,该类提供了默认的功能4)创建扩展了Burger和ColdDrink的实体类5)创建一个Meal类,带有上面定义的Item对象6)创建一个MealBuil</div>
                    </li>
                                <li><a href="/article/98.htm"
                                       title="微信开发者验证接口开发" target="_blank">微信开发者验证接口开发</a>
                                    <span class="text-muted">362217990</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1+%E5%BC%80%E5%8F%91%E8%80%85+token+%E9%AA%8C%E8%AF%81/1.htm">微信 开发者 token 验证</a>
                                    <div>微信开发者接口验证。 
Token,自己随便定义,与微信填写一致就可以了。 
 
根据微信接入指南描述 http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 
 第一步:填写服务器配置 
 第二步:验证服务器地址的有效性 
 第三步:依据接口文档实现业务逻辑 
 
这里主要讲第二步验证服务器有效性。 
 
建一个</div>
                                </li>
                                <li><a href="/article/225.htm"
                                       title="一个小编程题-类似约瑟夫环问题" target="_blank">一个小编程题-类似约瑟夫环问题</a>
                                    <span class="text-muted">BrokenDreams</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a>
                                    <div>        今天群友出了一题: 
        一个数列,把第一个元素删除,然后把第二个元素放到数列的最后,依次操作下去,直到把数列中所有的数都删除,要求依次打印出这个过程中删除的数。 
 
     &</div>
                                </li>
                                <li><a href="/article/352.htm"
                                       title="linux复习笔记之bash shell (5) 关于减号-的作用" target="_blank">linux复习笔记之bash shell (5) 关于减号-的作用</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux%E5%85%B3%E4%BA%8E%E5%87%8F%E5%8F%B7%E2%80%9C-%E2%80%9D%E7%9A%84%E5%90%AB%E4%B9%89/1.htm">linux关于减号“-”的含义</a><a class="tag" taget="_blank" href="/search/linux%E5%85%B3%E4%BA%8E%E5%87%8F%E5%8F%B7%E2%80%9C-%E2%80%9D%E7%9A%84%E7%94%A8%E9%80%94/1.htm">linux关于减号“-”的用途</a><a class="tag" taget="_blank" href="/search/linux%E5%85%B3%E4%BA%8E%E2%80%9C-%E2%80%9D%E7%9A%84%E5%90%AB%E4%B9%89/1.htm">linux关于“-”的含义</a><a class="tag" taget="_blank" href="/search/linux%E5%85%B3%E4%BA%8E%E5%87%8F%E5%8F%B7%E7%9A%84%E5%90%AB%E4%B9%89/1.htm">linux关于减号的含义</a>
                                    <div>    转载请出自出处:
http://eksliang.iteye.com/blog/2105677     
    管道命令在bash的连续处理程序中是相当重要的,尤其在使用到前一个命令的studout(标准输出)作为这次的stdin(标准输入)时,就显得太重要了,某些命令需要用到文件名,例如上篇文档的的切割命令(split)、还有</div>
                                </li>
                                <li><a href="/article/479.htm"
                                       title="Unix(3)" target="_blank">Unix(3)</a>
                                    <span class="text-muted">18289753290</span>
<a class="tag" taget="_blank" href="/search/unix+ksh/1.htm">unix ksh</a>
                                    <div>1)若该变量需要在其他子进程执行,则可用"$变量名称"或${变量}累加内容 
什么是子进程?在我目前这个shell情况下,去打开一个新的shell,新的那个shell就是子进程。一般状态下,父进程的自定义变量是无法在子进程内使用的,但通过export将变量变成环境变量后就能够在子进程里面应用了。 
2)条件判断: &&代表and  ||代表or&nbs</div>
                                </li>
                                <li><a href="/article/606.htm"
                                       title="关于ListView中性能优化中图片加载问题" target="_blank">关于ListView中性能优化中图片加载问题</a>
                                    <span class="text-muted">酷的飞上天空</span>
<a class="tag" taget="_blank" href="/search/ListView/1.htm">ListView</a>
                                    <div>ListView的性能优化网上很多信息,但是涉及到异步加载图片问题就会出现问题。 
具体参看上篇文章http://314858770.iteye.com/admin/blogs/1217594 
  
如果每次都重新inflate一个新的View出来肯定会造成性能损失严重,可能会出现listview滚动是很卡的情况,还会出现内存溢出。 
现在想出一个方法就是每次都添加一个标识,然后设置图</div>
                                </li>
                                <li><a href="/article/733.htm"
                                       title="德国总理默多克:给国人的一堂“震撼教育”课" target="_blank">德国总理默多克:给国人的一堂“震撼教育”课</a>
                                    <span class="text-muted">永夜-极光</span>
<a class="tag" taget="_blank" href="/search/%E6%95%99%E8%82%B2/1.htm">教育</a>
                                    <div>http://bbs.voc.com.cn/topic-2443617-1-1.html德国总理默多克:给国人的一堂“震撼教育”课  
安吉拉—默克尔,一位经历过社会主义的东德人,她利用自己的博客,发表一番来华前的谈话,该说的话,都在上面说了,全世界想看想传播——去看看默克尔总理的博客吧! 
  德国总理默克尔以她的低调、朴素、谦和、平易近人等品格给国人留下了深刻印象。她以实际行动为中国人上了一堂</div>
                                </li>
                                <li><a href="/article/860.htm"
                                       title="关于Java继承的一个小问题。。。" target="_blank">关于Java继承的一个小问题。。。</a>
                                    <span class="text-muted">随便小屋</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>今天看Java 编程思想的时候遇见一个问题,运行的结果和自己想想的完全不一样。先把代码贴出来! 
//CanFight接口
interface Canfight {
    void fight();
}
//ActionCharacter类
class ActionCharacter {
    public void fight() {
        System.out.pr</div>
                                </li>
                                <li><a href="/article/987.htm"
                                       title="23种基本的设计模式" target="_blank">23种基本的设计模式</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。    Adapter:将一个类的接口转换成客户希望的另外一个接口。A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。    Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。    Builder:将一个复杂对象的构建与它的表示分离,使得同</div>
                                </li>
                                <li><a href="/article/1114.htm"
                                       title="《周鸿祎自述:我的互联网方法论》读书笔记" target="_blank">《周鸿祎自述:我的互联网方法论》读书笔记</a>
                                    <span class="text-muted">aoyouzi</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a>
                                    <div>从用户的角度来看,能解决问题的产品才是好产品,能方便/快速地解决问题的产品,就是一流产品. 
  
商业模式不是赚钱模式 
一款产品免费获得海量用户后,它的边际成本趋于0,然后再通过广告或者增值服务的方式赚钱,实际上就是创造了新的价值链. 
  
商业模式的基础是用户,木有用户,任何商业模式都是浮云.商业模式的核心是产品,本质是通过产品为用户创造价值. 
商业模式还包括寻找需求</div>
                                </li>
                                <li><a href="/article/1241.htm"
                                       title="JavaScript动态改变样式访问技术" target="_blank">JavaScript动态改变样式访问技术</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/style%E5%B1%9E%E6%80%A7/1.htm">style属性</a><a class="tag" taget="_blank" href="/search/ClassName%E5%B1%9E%E6%80%A7/1.htm">ClassName属性</a>
                                    <div>  
一:style属性 
格式:  
 HTML元素.style.样式属性="值"; 
  
创建菜单:在html标签中创建 或者 在head标签中用数组创建 
  
<html>
<head>
  <title>style改变样式</title>
</head>
&l</div>
                                </li>
                                <li><a href="/article/1368.htm"
                                       title="jQuery的deferred对象详解" target="_blank">jQuery的deferred对象详解</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/deferred%E5%AF%B9%E8%B1%A1/1.htm">deferred对象</a>
                                    <div>        jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。 
        每个版本都会引入一些新功能,从jQuery 1.5.0版本开始引入的一个新功能----deferred对象。 
   &nb</div>
                                </li>
                                <li><a href="/article/1495.htm"
                                       title="淘宝开放平台TOP" target="_blank">淘宝开放平台TOP</a>
                                    <span class="text-muted">Bill_chen</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E6%B5%81/1.htm">物流</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a>
                                    <div>淘宝网开放平台首页:http://open.taobao.com/ 
淘宝开放平台是淘宝TOP团队的产品,TOP即TaoBao Open Platform, 
是淘宝合作伙伴开发、发布、交易其服务的平台。 
支撑TOP的三条主线为: 
   1.开放数据和业务流程 
 
    * 以API数据形式开放商品、交易、物流等业务; 
 
 &</div>
                                </li>
                                <li><a href="/article/1622.htm"
                                       title="【大型网站架构一】大型网站架构概述" target="_blank">【大型网站架构一】大型网站架构概述</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99%E6%9E%B6%E6%9E%84/1.htm">网站架构</a>
                                    <div>大型互联网特点 
 
 面对海量用户、海量数据 
 大型互联网架构的关键指标 
 
 高并发 
 高性能 
 高可用 
 高可扩展性 
 线性伸缩性 
 安全性 
 大型互联网技术要点 
  
 
 前端优化 
 CDN缓存 
 反向代理 
 KV缓存 
 消息系统 
 分布式存储 
 NoSQL数据库 
 搜索 
 监控 
 安全 
 想到的问题: 
1.对于订单系统这种事务型系统,如</div>
                                </li>
                                <li><a href="/article/1749.htm"
                                       title="eclipse插件hibernate tools安装" target="_blank">eclipse插件hibernate tools安装</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a>
                                    <div>  
 
 eclipse helios(3.6)版 
  1.启动eclipse   2.选择 Help > Install New Software...>   3.添加如下地址: 
http://download.jboss.org/jbosstools/updates/stable/helios/   4.选择性安装:hibernate tools在All Jboss tool</div>
                                </li>
                                <li><a href="/article/1876.htm"
                                       title="Jquery easyui Form表单提交注意事项" target="_blank">Jquery easyui Form表单提交注意事项</a>
                                    <span class="text-muted">bozch</span>
<a class="tag" taget="_blank" href="/search/jquery+easyui/1.htm">jquery easyui</a>
                                    <div>jquery easyui对表单的提交进行了封装,提交的方式采用的是ajax的方式,在开发的时候应该注意的事项如下: 
        1、在定义form标签的时候,要将method属性设置成post或者get,特别是进行大字段的文本信息提交的时候,要将method设置成post方式提交,否则页面会抛出跨域访问等异常。所以这个要</div>
                                </li>
                                <li><a href="/article/2003.htm"
                                       title="Trie tree(字典树)的Java实现及其应用-统计以某字符串为前缀的单词的数量" target="_blank">Trie tree(字典树)的Java实现及其应用-统计以某字符串为前缀的单词的数量</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java%E5%AE%9E%E7%8E%B0/1.htm">java实现</a>
                                    <div>
import java.util.LinkedList;

public class CaseInsensitiveTrie {

	/**
	字典树的Java实现。实现了插入、查询以及深度优先遍历。 
    Trie tree's java implementation.(Insert,Search,DFS)
    
	Problem Description
	Igna</div>
                                </li>
                                <li><a href="/article/2130.htm"
                                       title="html css 鼠标形状样式汇总" target="_blank">html css 鼠标形状样式汇总</a>
                                    <span class="text-muted">chenbowen00</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>css鼠标手型cursor中hand与pointer  
Example:CSS鼠标手型效果 <a href="#" style="cursor:hand">CSS鼠标手型效果</a><br/>  
Example:CSS鼠标手型效果 <a href="#" style=&qu</div>
                                </li>
                                <li><a href="/article/2257.htm"
                                       title="[IT与投资]IT投资的几个原则" target="_blank">[IT与投资]IT投资的几个原则</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/it/1.htm">it</a>
                                    <div> 
      无论是想在电商,软件,硬件还是互联网领域投资,都需要大量资金,虽然各个国家政府在媒体上都给予大家承诺,既要让市场的流动性宽松,又要保持经济的高速增长....但是,事实上,整个市场和社会对于真正的资金投入是非常渴望的,也就是说,表面上看起来,市场很活跃,但是投入的资金并不是很充足的...... 
 
   </div>
                                </li>
                                <li><a href="/article/2384.htm"
                                       title="oracle with语句详解" target="_blank">oracle with语句详解</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/with/1.htm">with</a><a class="tag" taget="_blank" href="/search/with+as/1.htm">with as</a>
                                    <div>oracle with语句详解 转 
 
 
在oracle中,select 查询语句,可以使用with,就是一个子查询,oracle 会把子查询的结果放到临时表中,可以反复使用 
 
例子:注意,这是sql语句,不是pl/sql语句, 可以直接放到jdbc执行的 
 
----------------------------------------------------------------</div>
                                </li>
                                <li><a href="/article/2511.htm"
                                       title="hbase的简单操作" target="_blank">hbase的简单操作</a>
                                    <span class="text-muted">deng520159</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/hbase/1.htm">hbase</a>
                                    <div>近期公司用hbase来存储日志,然后再来分析 ,把hbase开发经常要用的命令找了出来. 
用ssh登陆安装hbase那台linux后 
用hbase shell进行hbase命令控制台! 
表的管理 
1)查看有哪些表 
hbase(main)> list 
2)创建表 
  
# 语法:create <table>, {NAME => <family&g</div>
                                </li>
                                <li><a href="/article/2638.htm"
                                       title="C语言scanf继续学习、算术运算符学习和逻辑运算符" target="_blank">C语言scanf继续学习、算术运算符学习和逻辑运算符</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
                                    <div>/*
	2013年3月11日20:37:32
	地点:北京潘家园
	功能:完成用户格式化输入多个值
	目的:学习scanf函数的使用

*/
# include <stdio.h>

int main(void)
{
	int i, j, k;

	printf("please input three number:\n");  //提示用</div>
                                </li>
                                <li><a href="/article/2765.htm"
                                       title="2015越来越好" target="_blank">2015越来越好</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E6%AD%8C%E6%9B%B2/1.htm">歌曲</a>
                                    <div>越来越好

房子大了电话小了 感觉越来越好
假期多了收入高了 工作越来越好
商品精了价格活了 心情越来越好
天更蓝了水更清了 环境越来越好

活得有奔头人会步步高
想做到你要努力去做到

幸福的笑容天天挂眉梢 越来越好
婆媳和了家庭暖了 生活越来越好
孩子高了懂事多了 学习越来越好
朋友多了心相通了 大家越来越好
道路宽了心气顺了 日子越来越好

活的有精神人就不显</div>
                                </li>
                                <li><a href="/article/2892.htm"
                                       title="java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Tim" target="_blank">java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Tim</a>
                                    <span class="text-muted">feiteyizu</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>数据表中有记录的time字段(属性为timestamp)其值为:“0000-00-00 00:00:00” 
程序使用select 语句从中取数据时出现以下异常: 
java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date 
  
java.sql.SQLException: Valu</div>
                                </li>
                                <li><a href="/article/3019.htm"
                                       title="Ehcache(07)——Ehcache对并发的支持" target="_blank">Ehcache(07)——Ehcache对并发的支持</a>
                                    <span class="text-muted">234390216</span>
<a class="tag" taget="_blank" href="/search/%E5%B9%B6%E5%8F%91/1.htm">并发</a><a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/%E9%94%81/1.htm">锁</a><a class="tag" taget="_blank" href="/search/ReadLock/1.htm">ReadLock</a><a class="tag" taget="_blank" href="/search/WriteLock/1.htm">WriteLock</a>
                                    <div>Ehcache对并发的支持 
  
       在高并发的情况下,使用Ehcache缓存时,由于并发的读与写,我们读的数据有可能是错误的,我们写的数据也有可能意外的被覆盖。所幸的是Ehcache为我们提供了针对于缓存元素Key的Read(读)、Write(写)锁。当一个线程获取了某一Key的Read锁之后,其它线程获取针对于同</div>
                                </li>
                                <li><a href="/article/3146.htm"
                                       title="mysql中blob,text字段的合成索引" target="_blank">mysql中blob,text字段的合成索引</a>
                                    <span class="text-muted">jackyrong</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>  在mysql中,原来有一个叫合成索引的,可以提高blob,text字段的效率性能, 
但只能用在精确查询,核心是增加一个列,然后可以用md5进行散列,用散列值查找 
则速度快 
 
比如: 
 
create table abc(id varchar(10),context blog,hash_value varchar(40)); 
 
 insert into abc(1,rep</div>
                                </li>
                                <li><a href="/article/3273.htm"
                                       title="逻辑运算与移位运算" target="_blank">逻辑运算与移位运算</a>
                                    <span class="text-muted">latty</span>
<a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97/1.htm">逻辑运算</a>
                                    <div>源码:正数的补码与原码相同例+7 源码:00000111 补码 :00000111  (用8位二进制表示一个数)
 
 
 
负数的补码:
   符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。   -7 源码: 10000111 ,其绝对值为00000111  取反加一:11111001 为-7补码 
 
已知一个数的补码,求原码的操作分两种情况:</div>
                                </li>
                                <li><a href="/article/3400.htm"
                                       title="利用XSD 验证XML文件" target="_blank">利用XSD 验证XML文件</a>
                                    <span class="text-muted">newerdragon</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/xsd/1.htm">xsd</a>
                                    <div>XSD文件 (XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 具体使用方法和定义请参看: 
 
http://www.w3school.com.cn/schema/index.asp 
 
 
 
java自jdk1.5以上新增了SchemaFactory类 可以实现对XSD验证的支持,使用起来也很方便。 
 
以下代码可用在J</div>
                                </li>
                                <li><a href="/article/3527.htm"
                                       title="搭建 CentOS 6 服务器(12) - Samba" target="_blank">搭建 CentOS 6 服务器(12) - Samba</a>
                                    <span class="text-muted">rensanning</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div>(1)安装 
 
# yum -y install samba
    Installed:
      samba.i686 0:3.6.9-169.el6_5
# pdbedit -a rensn
    new password:123456
    retype new password:123456
    …… 
 
 
(2)Home文件夹 
 
# mkdir /etc</div>
                                </li>
                                <li><a href="/article/3654.htm"
                                       title="Learn Nodejs 01" target="_blank">Learn Nodejs 01</a>
                                    <span class="text-muted">toknowme</span>
<a class="tag" taget="_blank" href="/search/nodejs/1.htm">nodejs</a>
                                    <div>(1)下载nodejs  
https://nodejs.org/download/   选择相应的版本进行下载           (2)安装nodejs   安装的方式比较多,请baidu下  
我这边下载的是“node-v0.12.7-linux-x64.tar.gz”这个版本  (1)上传服务器   (2)解压   tar -zxvf  node-v0.12.</div>
                                </li>
                                <li><a href="/article/3781.htm"
                                       title="jquery控制自动刷新的代码举例" target="_blank">jquery控制自动刷新的代码举例</a>
                                    <span class="text-muted">xp9802</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a>
                                    <div>1、html内容部分   复制代码代码示例:   <div id='log_reload'> 
<select name="id_s" size="1"> 
<option value='2'>-2s-</option> 
<option value='3'>-3s-</option</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>