使用StaGen来生成静态网站

译注:StaGen是一个功能极其简单的静态站点生成器,因此它非常容易上手,同时它还是用Java 8写的,有兴趣的话可以看下它的源代码。当然我个人还是比较喜欢 Jekyll。

在没有 StaGen之前,我一直都在用RapidWeaver来管理我的网站 WizTools.org。RapidWeaver生成的文本格式真的让人很抓狂,这个软件浪费了我太多时间。StaGen的诞生解决了这些问题。我连夜完成了第一个版本。第二天就把我的网站WizTools.org给迁移到StatGen上面了。StaGen的设计目标就是希望能让只有少数几个页面的简单站点的开发和管理变得更容易一些。出于这个的考虑,我选择了markdown作为文档格式,StringTemplate作为内容模板,并使用JSON来存储配置信息。

目录结构

StaGen管理的网站项目需要遵循如下的目录结构:

   .
`-- content
|   |-- index.md
|   |-- other.md
`-- config
|   |-- other.json
|-- master.json
`-- static
|   |-- my.css
`-- template
|   |-- index.st
|   |-- other.st

各个文件夹的作用如下:

+content: 这个文件夹用来存储markdown格式的文档。生成的网站中会为每篇文章都单独生成一个HTML文件。content下面的子目录会被StaGen忽略。 +config: 每个页面都可以有一些单独的配置信息。配置信息是用JSON格式来存储的。文件名必须和content中的文件名匹配。 +master.json:这是主配置文件。里面存储了网站全局的配置信息。 +static: 网站中用到的静态资源文件,比如.js,.css以及图片等。 +template: StringTemplate 4模板会放在这个目录下。

StaGen是如何工作的

StaGen引擎处理的顺序是这样的:

  1. 加载主配置文件master.json
  2. 将静态资源文件拷贝到目标文件夹(网站生成的时候会自动创建一个叫target的文件夹)
  3. 对于content目录下的每一个markdown文件: 加载对应的配置信息(下节中会有介绍) 将配置信息应用到对应的模板上,并把结果的HTML文件输出到目标文件夹

加载配置

配置信息是一个JSON类型的map:

   {
"title": "My Site Title",
"activities": ["Dance", "Jump", "Shout"]
}

注意,key必须是字符串,值可以是任意类型的。

前面已经提到过,站点的全局配置是master.json。StaGen在一开始的时候便会加载这个配置文件。当处理到每一篇文章时(比如index.md),StaGen会尝试从config/index.json中加载对应的配置信息。它会覆盖掉主配置文件中的配置信息。也就是说,如果你已经在master.json和config/index.json中都定义了标题,当渲染index.md时,使用的是config/index.json里面的配置。如果config/index.json文件不存在,也无所谓——那就用master.json里面的配置好了。

模板渲染

StaGen使用的是StringTemplate作为模板。下面是一个简单的模板,它用到了前面提到的JSON配置信息:

   
...
$titleprebuffer_2lt;/title>
...
<ol>
$activities: {activity|
<li>$activityprebuffer_2lt;/li>
}$
</ol>
...
$_content$
...
</html>
</code></pre> 
 </div> 
 <p>$_content$就是markdown文件渲染出来的HTML。</p> 
 <p>模板渲染遵循如下的规则:</p> 
 <ol> 
  <li>尝试按文章的名字加载模板,比如content.md,StaGen引擎会加载other.st。</li> 
  <li>如果没有指定专门的模板,则使用默认的index.st模板。因此你要确保你的项目中确实有一个index.st模板。</li> 
 </ol> 
 <p>模板内嵌套模板</p> 
 <p>你可以在.st文件里再包含一个别的模板,比如你有一个ga.st(ga->Google Analytics)文件,要引入到主模板文件index.st中。在index.st里面你可以这么写:</p> 
 <div> 
  <pre>   <code>$ga()$
</code></pre> 
 </div> 
 <p>index.st里面会包含ga.st渲染后的内容。需要注意的是,index.st中的所有变量对引入的模板都是可见的。</p> 
 <h4>StaGen的使用</h4> 
 <p>StaGen是以一个jar包的形式发布的。想获取这个工具的帮助信息的话:</p> 
 <div> 
  <pre>   <code>java -jar ~/stagen-VER-full.jar -h
</code></pre> 
 </div> 
 <p>从项目里生成站点:</p> 
 <div> 
  <pre>   <code>java -jar ~/stagen-VER-full.jar gen
</code></pre> 
 </div> 
 <p>上述命令将会在target目录中生成一个静态网站。</p> 
 <p>想清除target目录的话:</p> 
 <div> 
  <pre>   <code>java -jar ~/stagen-VER-full.jar clean
</code></pre> 
 </div> 
 <p>如果你刚开始用StaGen,想创建一个新的项目结构:</p> 
 <div> 
  <pre>   <code>java -jar ~/stagen-VER-full.jar init
</code></pre> 
 </div> 
 <h4>总结</h4> 
 <p>StaGen故意设计得非常简单。我自己不会用它来管理太复杂的站点。它不像别的静态网站生成器那样能支持博客或者主题。我相信,StaGen不支持这些特性,这也正是它的过人之处。</p> 
 <p>原创文章转载请注明出处: 使用StaGen来生成静态网站</p> 
 <p> 英文原文链接</p> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1489475298473828352"></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">你可能感兴趣的:(stagen,来生,网站)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1900737185590603776.htm"
                           title="守护网站安全的隐形卫士——SSL证书全解析" target="_blank">守护网站安全的隐形卫士——SSL证书全解析</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>在网络世界中,保护用户数据的安全至关重要。无论你是经营一家小型网店还是管理大型企业网站,确保客户信息的安全性都是不可忽视的任务。今天,我们就来揭开一个默默守护网站安全的重要角色——SSL证书的神秘面纱。什么是SSL证书?SSL(SecureSocketsLayer)证书是一种数字证书,用于加密客户端与服务器之间的通信,确保数据传输过程中的安全性。简单来说,当您访问一个启用SSL证书的网站时,您的浏</div>
                    </li>
                    <li><a href="/article/1900679053233418240.htm"
                           title="人工智能:重塑未来生活与工作的科技力量" target="_blank">人工智能:重塑未来生活与工作的科技力量</a>
                        <span class="text-muted">Geektec</span>
<a class="tag" taget="_blank" href="/search/%E9%97%AE%E7%AD%94%E4%B8%93%E6%A0%8F/1.htm">问答专栏</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E5%88%9B%E6%96%B0/1.htm">应用创新</a>
                        <div>方向一:介绍人工智能技术的发展历程和现状,指出它的应用领域和前景一、人工智能技术的发展历程人工智能(ArtificialIntelligence,AI)作为一门学科,其起源可以追溯到20世纪50年代。最初,AI的研究主要集中在逻辑推理、机器学习和自然语言处理等领域,目标是使机器能够模拟人类的智能行为。尽管在早期的探索中,AI遭遇了诸多挑战和瓶颈,但其发展潜力逐渐被认可,并在随后几十年中得到了迅速的</div>
                    </li>
                    <li><a href="/article/1900674384239063040.htm"
                           title="忘记rar、zip压缩包密码?教你简单方法快速解锁!" target="_blank">忘记rar、zip压缩包密码?教你简单方法快速解锁!</a>
                        <span class="text-muted">jiemidashi</span>
<a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a>
                        <div>找回压缩包密码从未如此简单。您只需两步,便可以轻松解密RAR或ZIP文件。具体步骤如下:第一步,打开网页浏览器,在地址栏输入:文件密码.top进入网站。这个网站无需下载软件,操作非常简单,支持各种类型的文件,包括RAR/ZIP压缩包、Word文档、Excel表格、PDF文档、WPS表格文档和PPT演示文稿。第二步,点击“立即开始”,上传您的压缩文件。耐心等待片刻,网站会处理您的请求,快速为您找回密</div>
                    </li>
                    <li><a href="/article/1900664039407677440.htm"
                           title="Cursor 终极使用指南:从零开始走向AI编程" target="_blank">Cursor 终极使用指南:从零开始走向AI编程</a>
                        <span class="text-muted">二川bro</span>
<a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BDAI/1.htm">智能AI</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/AI%E7%BC%96%E7%A8%8B/1.htm">AI编程</a>
                        <div>Cursor终极使用指南:从零开始走向AI编程问什么是cursor?mindmaproot(Cursor核心功能)智能编码代码生成自动补全错误修复项目管理多窗口布局版本控制终端集成个性设置主题定制快捷键配置插件扩展AI协作对话编程知识检索文档生成前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,可以分享一下给大家。点击跳转到网站。https://www.captainbed.cn/ccc</div>
                    </li>
                    <li><a href="/article/1900654330059485184.htm"
                           title="H5幸运刮刮乐抽奖源码 免公众号+直运营" target="_blank">H5幸运刮刮乐抽奖源码 免公众号+直运营</a>
                        <span class="text-muted">破碎的天堂鸟</span>
<a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E4%B8%8B%E8%BD%BD/1.htm">源码下载</a><a class="tag" taget="_blank" href="/search/%E6%8A%BD%E5%A5%96%E6%BA%90%E7%A0%81/1.htm">抽奖源码</a>
                        <div>H5幸运刮刮乐抽奖源码免公众号+直运营环境nginx1.18mysql5.6php7.2php安装扩展fileinfo删除所有禁用函数操作完成后重启php创建一个站点点击根目录上传源码并解压源码解压完成回到网站设置伪静态laravel5运行目录public创建一个数据库并导入数据库源码下载:https://download.csdn.net/download/m0_61505785/9048437</div>
                    </li>
                    <li><a href="/article/1900651933564203008.htm"
                           title="Vue秘籍:如何动态修改页面 Title(浏览器页签名称)?" target="_blank">Vue秘籍:如何动态修改页面 Title(浏览器页签名称)?</a>
                        <span class="text-muted">QQ828929QQ</span>
<a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>Vue秘籍:如何动态修改页面Title(浏览器页签名称)?在开发Vue项目时,我们经常需要根据不同的页面动态修改浏览器的页签标题(title),比如:在电商网站中,展示商品详情时,标题应该是商品名称-商城名称。在后台管理系统中,切换不同的页面时,页签名称应随之变化。在聊天应用中,当有新消息时,页签标题可以变成**(1)新消息-ChatApp**,吸引用户注意。那么,如何在Vue项目中实现动态修改d</div>
                    </li>
                    <li><a href="/article/1900651044816351232.htm"
                           title="Audacity的安装和使用" target="_blank">Audacity的安装和使用</a>
                        <span class="text-muted">迷茫&&前行</span>
<a class="tag" taget="_blank" href="/search/ctf%E5%B7%A5%E5%85%B7/1.htm">ctf工具</a><a class="tag" taget="_blank" href="/search/Audacity/1.htm">Audacity</a><a class="tag" taget="_blank" href="/search/ctf/1.htm">ctf</a>
                        <div>安装下载地址:官方网站:Audacity软件开源免费,但部分功能可能需要额外插件。一.介绍Audacity是一款免费、开源的音频编辑软件,适用于Windows、macOS、Linux等操作系统。它支持多轨编辑、录音、音频效果处理、格式转换等功能,适合音乐制作、播客编辑、音频修复等场景。主要功能:录音:支持麦克风、线路输入等多种音源。编辑:提供剪切、复制、粘贴、删除等基本操作,支持多轨编辑。效果处理</div>
                    </li>
                    <li><a href="/article/1900641450656329728.htm"
                           title="C#实现动态验证码生成器:安全防护与实际应用场景" target="_blank">C#实现动态验证码生成器:安全防护与实际应用场景</a>
                        <span class="text-muted">WangMing_X</span>
<a class="tag" taget="_blank" href="/search/C%23%E5%AE%9E%E7%8E%B0%E5%90%84%E7%A7%8D%E5%8A%9F%E8%83%BD%E5%B7%A5%E5%85%B7%E9%9B%86/1.htm">C#实现各种功能工具集</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/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><a class="tag" taget="_blank" href="/search/%E9%AA%8C%E8%AF%81%E7%A0%81/1.htm">验证码</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E7%89%87/1.htm">图片</a>
                        <div>一、核心应用场景用户登录/注册验证:防止恶意程序批量注册表单提交防护:确保关键操作由真人执行API接口限流:抵御自动化脚本攻击敏感操作验证:如支付、信息修改等关键步骤数据防爬机制:保护网站内容不被爬虫抓取二、技术实现方案1.基础架构设计//验证码服务架构+------------------------+|验证码生成模块|←随机字符|(CaptchaGenerator)|+------------</div>
                    </li>
                    <li><a href="/article/1900635272874356736.htm"
                           title="《Python实战进阶》No23: 使用 Selenium 自动化浏览器操作" target="_blank">《Python实战进阶》No23: 使用 Selenium 自动化浏览器操作</a>
                        <span class="text-muted">带娃的IT创业者</span>
<a class="tag" taget="_blank" href="/search/Python%E5%AE%9E%E6%88%98%E8%BF%9B%E9%98%B6/1.htm">Python实战进阶</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a>
                        <div>No23:使用Selenium自动化浏览器操作摘要Selenium是自动化浏览器操作的“瑞士军刀”,可模拟人类行为操作网页,适用于爬虫、测试、重复任务自动化等场景。本集通过代码驱动实战,从安装配置到复杂交互,带你掌握Selenium的核心技能,并结合电商网站登录、商品下单等真实场景,解决动态加载、反爬等实际问题。核心概念与代码实战1.环境配置与WebDriver基础安装命令:pipinstalls</div>
                    </li>
                    <li><a href="/article/1900626061155168256.htm"
                           title="知识库全链路交互逻辑" target="_blank">知识库全链路交互逻辑</a>
                        <span class="text-muted">賢843</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80/1.htm">软件测试理论基础</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>阶段顺序URL输入→网络连接→前端请求→后端处理→数据库交互→数据返回→前端渲染→连接关闭阶段1:用户输入URL用户行为:在浏览器地址栏输入`https://knowledge.com/search?keyword=金融趋势`浏览器动作:“浏览器解析URL:​协议补全:若用户省略协议,浏览器自动添加https://(若网站支持HTTPS)​字符转义:对中文、空格等特殊字符编码(如金融趋势→%E9%</div>
                    </li>
                    <li><a href="/article/1900617864818257920.htm"
                           title="PHP语言的学习路线" target="_blank">PHP语言的学习路线</a>
                        <span class="text-muted">AI向前看</span>
<a class="tag" taget="_blank" href="/search/%E5%8C%85%E7%BD%97%E4%B8%87%E8%B1%A1/1.htm">包罗万象</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</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%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>PHP语言的学习路线PHP(HypertextPreprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发。由于其易学易用、功能强大,PHP成为了许多动态网站和Web应用程序开发的首选语言。随着Web3.0和云计算的兴起,掌握PHP语言将为你的职业发展和技术提升提供重要助力。本文将为你提供一条系统化的PHP学习路线,帮助你从零基础逐步成为PHP开发高手。第一部分:基础知识1</div>
                    </li>
                    <li><a href="/article/1900613702625849344.htm"
                           title="uniapp(全端兼容) - 最新详细实现可拖动悬浮按钮功能,支持手指拖曳放到页面任意位置,uniapp可拖动的悬浮球,悬浮图标支持拖动效果(详细示例源码及注释,复制粘贴快速植入)" target="_blank">uniapp(全端兼容) - 最新详细实现可拖动悬浮按钮功能,支持手指拖曳放到页面任意位置,uniapp可拖动的悬浮球,悬浮图标支持拖动效果(详细示例源码及注释,复制粘贴快速植入)</a>
                        <span class="text-muted">街尾杂货店&</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E7%BB%84%E4%BB%B6%E4%B8%8E%E5%8A%9F%E8%83%BD%28%E5%BC%80%E7%AE%B1%E5%8D%B3%E7%94%A8%29/1.htm">前端组件与功能(开箱即用)</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E6%82%AC%E6%B5%AE%E7%90%83/1.htm">悬浮球</a><a class="tag" taget="_blank" href="/search/uniapp%E6%82%AC%E6%B5%AE%E5%9C%A8%E5%B1%8F%E5%B9%95%E4%B8%8A%E7%9A%84%E7%BB%84%E4%BB%B6/1.htm">uniapp悬浮在屏幕上的组件</a><a class="tag" taget="_blank" href="/search/uniapp%E6%82%AC%E6%B5%AE%E5%8A%9F%E8%83%BD/1.htm">uniapp悬浮功能</a><a class="tag" taget="_blank" href="/search/uniapp%E5%8F%AF%E6%8B%96%E6%9B%B3%E6%8B%96%E5%8A%A8%E7%9A%84%E6%82%AC%E6%B5%AE%E7%90%83/1.htm">uniapp可拖曳拖动的悬浮球</a>
                        <div>效果图百度搜的代码都太难用了而且有bug。。。在uniapp小程序/h5网页网站/安卓苹果app/nvue等(全平台完美兼容)开发中,详细实现在uniapp中实现一个可拖动的悬浮按钮,uniapp全平台兼容的悬浮球功能,可挂载各种小卡片、客服等,自由拖动。支持一次全局引入,无需每个页面都引用。你可以直接复制源码,复制到你的项目中,附带全局组件注册的方法(要不每个页面都需要引一次),uniappVu</div>
                    </li>
                    <li><a href="/article/1900596931810357248.htm"
                           title="Python爬虫实战:从青铜到王者的数据采集进化论" target="_blank">Python爬虫实战:从青铜到王者的数据采集进化论</a>
                        <span class="text-muted">Loving_enjoy</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/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/python/1.htm">python</a>
                        <div>#开篇:当你打开浏览器时,爬虫程序在暗处露出了姨母笑某日凌晨3点,程序员老张盯着满屏的404错误,突然领悟了爬虫的真谛——这哪里是数据采集,分明是与网站运维人员斗智斗勇的谍战游戏!本文将带你体验从"HelloWorld"式爬虫到工业级采集系统的奇幻漂流,全程高能预警,请系好安全带。---###第一章青铜时代:初学者的三板斧####1.1环境搭建:你的第一把手术刀安装Python就像选择武器库:``</div>
                    </li>
                    <li><a href="/article/1900596552402006016.htm"
                           title="泛目录程序:站群策略在SEO优化中的优势与应用" target="_blank">泛目录程序:站群策略在SEO优化中的优势与应用</a>
                        <span class="text-muted">奥顺互联_老张</span>
<a class="tag" taget="_blank" href="/search/%E7%AB%99%E7%BE%A4/1.htm">站群</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><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/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a>
                        <div>泛目录程序案例:站群策略在SEO优化中的优势与应用引言在当今竞争激烈的互联网环境中,搜索引擎优化(SEO)已成为企业提升在线可见性和流量的关键策略。泛目录和站群作为SEO优化中的两种重要策略,近年来备受关注。本文将通过具体案例,深入探讨这两种策略在SEO优化中的优势与应用。一、泛目录的定义与优势1.1泛目录的定义泛目录是指通过创建大量内容相关、结构相似的目录页面,覆盖广泛的搜索关键词,从而提升网站</div>
                    </li>
                    <li><a href="/article/1900561741394276352.htm"
                           title="SEO 优化" target="_blank">SEO 优化</a>
                        <span class="text-muted">前端岳大宝</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E6%80%BB%E7%BB%93/1.htm">前端核心知识总结</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a>
                        <div>以下是SEO(搜索引擎优化)的基础知识点梳理,从前端技术、内容策略到搜索引擎原理,覆盖核心优化方向:一、SEO基础概念定义与目标SEO是通过优化网站结构、内容和技术,提升网站在搜索引擎自然搜索结果中的排名,吸引更多免费流量。核心目标:满足用户搜索意图,同时符合搜索引擎爬虫的抓取规则。搜索引擎工作原理爬取(Crawling):搜索引擎蜘蛛(如Googlebot)抓取网页内容。索引(Indexing)</div>
                    </li>
                    <li><a href="/article/1900560353721380864.htm"
                           title="Git学习总结(9)——如何构建你自己的 Git 服务器" target="_blank">Git学习总结(9)——如何构建你自己的 Git 服务器</a>
                        <span class="text-muted">一杯甜酒</span>
<a class="tag" taget="_blank" href="/search/Git/1.htm">Git</a>
                        <div>现在我们将开始学习如何构建一个Git服务器,如何在具体的事件中写一个针对特定的触发操作的自定义Git(例如通告),如何发布你的代码到一个网站。</div>
                    </li>
                    <li><a href="/article/1900541936910004224.htm"
                           title="【Python安装】2024年最新下载安装教程!详细步骤,有这一篇就够了!!!" target="_blank">【Python安装】2024年最新下载安装教程!详细步骤,有这一篇就够了!!!</a>
                        <span class="text-muted">「已注销」</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>(点击领取Python安装包+学习资料)Python安装说明1.访问Python官网首先,访问Python的官方网站:WelcometoPython.org。2.下载Python安装程序在官网首页,找到“Downloads”部分。根据你的操作系统(Windows,macOS,Linux等)选择合适的版本下载。对于大多数用户,推荐下载最新版本的Python3.x(例如Python3.9或更高版本)。</div>
                    </li>
                    <li><a href="/article/1900515820308590592.htm"
                           title="前端发布缓存导致白屏解决方案" target="_blank">前端发布缓存导致白屏解决方案</a>
                        <span class="text-muted">洛祁枫</span>
<a class="tag" taget="_blank" href="/search/web/1.htm">web</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%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a>
                        <div>解决发布H5后因为本地缓存白屏方案一、核心配置优化(前提是访问网站的请求能抵达服务器)方案一:前端项目设置全局不缓存方案运行逻辑:在H5服务器配置中增加Cache-Control:no-cache或max-age=0响应头,禁用静态资源缓存‌;优点:能在服务器出口处最大可能地解决发布项目缓存问题缺点:用户在不同界面跳转都会重新加载界面信息,影响整个前端加载速度,高并发时容易造成带宽压力方案二:首页</div>
                    </li>
                    <li><a href="/article/1900491226591850496.htm"
                           title="web渗透--14--目录遍历/文件包含测试" target="_blank">web渗透--14--目录遍历/文件包含测试</a>
                        <span class="text-muted">武天旭</span>
<a class="tag" taget="_blank" href="/search/web%E6%B8%97%E9%80%8F/1.htm">web渗透</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/OWASP%E5%AE%89%E5%85%A8%E6%B5%8B%E8%AF%95/1.htm">OWASP安全测试</a>
                        <div>1、漏洞描述文件包含是指程序代码在处理包含文件的时候没有严格控制。导致用户可以构造参数包含远程代码在服务器上执行,并得到网站配置或者敏感文件,进而获取到服务器权限,造成网站被恶意删除,用户和交易数据被篡改等一系列恶性后果。主要包括本地文件包含和远程文件包含两种形式,由于开发人员编写源码,开放着将可重复使用的代码插入到单个的文件中,并在需要的时候将它们包含在特殊的功能代码文件中,然后包含文件中的代码</div>
                    </li>
                    <li><a href="/article/1900484163505549312.htm"
                           title="pdf怎么转换成word?解锁 PDF 转 Word 的高效转换方法,轻松搞定的实用指南" target="_blank">pdf怎么转换成word?解锁 PDF 转 Word 的高效转换方法,轻松搞定的实用指南</a>
                        <span class="text-muted">hello_simon</span>
<a class="tag" taget="_blank" href="/search/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/1.htm">在线工具</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7%E6%95%88%E7%8E%87/1.htm">工具效率</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/PDF%E8%BD%ACword/1.htm">PDF转word</a><a class="tag" taget="_blank" href="/search/pdf%E8%BD%AC%E6%8D%A2/1.htm">pdf转换</a>
                        <div>PDF转换成Word的简易指南在日常的工作和学习中,我们经常需要将PDF文件转换为Word文档,以便于编辑和修改。今天,我将为大家介绍一个简单的方法,利用小白工具网站,轻松实现PDF到Word的转换。一、访问小白工具网站首先,打开你的浏览器,输入网址:https://www.xiaobaitool.net/files/pdf-word/,进入小白工具的PDF转Word页面。这个网站提供了一个在线转</div>
                    </li>
                    <li><a href="/article/1900484161198682112.htm"
                           title="Linux 让PHP支持MSSQL" target="_blank">Linux 让PHP支持MSSQL</a>
                        <span class="text-muted">hello_simon</span>
<a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>FreeTDS官方网站:http://www.freetds.org当前版本0.82wgethttp://mirrors.xmu.edu.cn/ubuntu/archive/pool/main/f/freetds/freetds_0.82.orig.tar.gz1.编译FreeTDS#tarzxvffreetds-0.82.tar.gz#cdfreetds-0.82//--with-tdsver=</div>
                    </li>
                    <li><a href="/article/1900476610256105472.htm"
                           title="所有网站都必须做域名备案吗?" target="_blank">所有网站都必须做域名备案吗?</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%9F%9F%E5%90%8D%E5%9F%9F%E5%90%8D%E7%94%B3%E8%AF%B7%E5%A4%87%E6%A1%88/1.htm">域名域名申请备案</a>
                        <div>在互联网的蓬勃发展进程中,网站如雨后春笋般涌现。然而,并非所有网站在上线前都需经历相同流程,其中网站域名备案这一关键环节,在特定情况下才成为必然要求。一、国内网站必须要做网站域名备案?从法规层面来看,我国有着明确且严格的规定。依据相关互联网管理法规,在境内提供非经营性互联网信息服务,必须办理备案。这一规定为绝大多数个人网站以及众多企业宣传展示类网站划定了清晰的准入门槛。举例而言,个人搭建的兴趣博客</div>
                    </li>
                    <li><a href="/article/1900402204087480320.htm"
                           title="SSL证书:网站安全的守护者" target="_blank">SSL证书:网站安全的守护者</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/ssl%E8%AF%81%E4%B9%A6/1.htm">ssl证书</a>
                        <div>在互联网时代,网站安全至关重要。SSL证书,如同网站的安全卫士,默默守护着用户的数据安全,为网站构建起一道坚固的防线。如何申请SSL证书?登录JoySSL官网注册账号填写注册码【230930】有专属技术指导申请SSL证书的流程非常简单:选择证书类型:根据网站需求选择合适的SSL证书类型。生成CSR文件:在服务器上生成证书签名请求(CSR)文件。提交申请:将CSR文件提交给证书颁发机构(CA),并完</div>
                    </li>
                    <li><a href="/article/1900401695653949440.htm"
                           title="响应式设计已死?流体布局才是未来!" target="_blank">响应式设计已死?流体布局才是未来!</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFjavascript/1.htm">前端javascript</a>
                        <div>ReactHook深入浅出CSS技巧与案例详解vue2与vue3技巧合集VueUse源码解读在当今的Web设计领域,挑战从未如此巨大。各种屏幕尺寸和分辨率的智能设备层出不穷,要让网站在所有设备上保持一致的用户体验,难度可想而知。但别担心,流体布局(FluidLayout)正是为了解决这一问题而生。它不仅适用于超大屏幕,同样也能完美适配小型移动设备,真正做到自适应!接下来,我们深入了解流体布局的原理</div>
                    </li>
                    <li><a href="/article/1900401319265497088.htm"
                           title="渗透学习笔记(四)window基础2" target="_blank">渗透学习笔记(四)window基础2</a>
                        <span class="text-muted">nnnimok</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>声明!学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)五、Windows网</div>
                    </li>
                    <li><a href="/article/1900386681295532032.htm"
                           title="如何用Conda保持Python环境的完美隔离?" target="_blank">如何用Conda保持Python环境的完美隔离?</a>
                        <span class="text-muted">西坡不是东坡</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0/1.htm">python学习</a><a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>想象一下,你正在开发一个网站,使用了Python3.8和Django2.2。突然,你的一个朋友邀请你参与另一个用Python3.6和Flask1.1开发的项目。如果没有Conda,你可能需要在两个项目间频繁切换,每次都要重新安装和配置环境,这不仅耗时,而且容易出错。但现在,有了Conda,你可以轻松地为每个项目创建和管理虚拟环境,让开发工作变得简单高效。Conda与虚拟环境什么是Conda?Con</div>
                    </li>
                    <li><a href="/article/1900384159377977344.htm"
                           title="CSS3 用户界面设计指南" target="_blank">CSS3 用户界面设计指南</a>
                        <span class="text-muted">froginwe11</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>CSS3用户界面设计指南引言随着互联网的快速发展,用户界面设计已经成为网站和应用程序吸引和留住用户的关键因素之一。CSS3,作为Web开发中的核心技术之一,提供了丰富的工具和特性来改善用户界面。本文将深入探讨CSS3在用户界面设计中的应用,包括基本概念、常用技巧以及实际案例分析。CSS3用户界面基本概念1.媒体查询媒体查询(MediaQueries)是CSS3的一个重要特性,它允许开发者根据不同的</div>
                    </li>
                    <li><a href="/article/1900374328067813376.htm"
                           title="Spring学习之路:环境搭建、核心API与配置文件细节" target="_blank">Spring学习之路:环境搭建、核心API与配置文件细节</a>
                        <span class="text-muted">qq_44766305</span>
<a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>1.软件版本1.JDK1.8+2.Maven3.5+3.IDEA2018+4.SpringFramework5.1.5官方网站www.spring.io2.环境搭建Spring的jar包#设置pom依赖可以去Maven中央仓库org.springframeworkspring-context5.1.4.RELEASESpring的配置文件1.配置文件的放置位置:任意位置,没有硬性要求2.配置文件命</div>
                    </li>
                    <li><a href="/article/1900371049833361408.htm"
                           title="全网炸裂!这款网站让你一站畅享所有大模型" target="_blank">全网炸裂!这款网站让你一站畅享所有大模型</a>
                        <span class="text-muted">努力敲代码的小火龙</span>
<a class="tag" taget="_blank" href="/search/ZealYearning/1.htm">ZealYearning</a>
                        <div>在科技的浩瀚星空中,人工智能大模型无疑是最为璀璨的星辰,它们以卓越的智慧和强大的能力,为我们的数字生活增添了无尽的魅力与可能。然而,以往想要领略这些不同大模型的风采,我们往往需要在众多的平台和接口之间来回奔波,就像是在不同的岛屿间跳岛前行,过程繁琐且耗时。但是,如今有一个令人心跳加速的消息传遍了整个网络世界:一个前所未有的网站横空出世,它宛如一座神奇的“大模型宝藏库”,在一个网站里就能让你畅享所有</div>
                    </li>
                    <li><a href="/article/1900369281019867136.htm"
                           title=".net 6程序在IIS中部署后点击IIS设置报错“执行此操作时出错”" target="_blank">.net 6程序在IIS中部署后点击IIS设置报错“执行此操作时出错”</a>
                        <span class="text-muted">gc_2299</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94/1.htm">程序问题解答</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/IIS/1.htm">IIS</a><a class="tag" taget="_blank" href="/search/%E6%89%A7%E8%A1%8C%E6%AD%A4%E6%93%8D%E4%BD%9C%E6%97%B6%E5%87%BA%E9%94%99/1.htm">执行此操作时出错</a>
                        <div>  .net6写的程序,需要在Windows服务器的IIS中部署,由于是刚装的系统,先安装.net6运行时,装了才发现没有IIS,于是又通过“添加角色和功能”添加与IIS相关的功能。安装完毕后,在IIS中添加网站,并将应用程序池设置为“无托管代码”,但是点击网站右侧的任一IIS设置时,都会报错“执行此操作时出错”(没有截图,报错内容类似下面第三个图,该图来自参考文献1)。  最开始以为是IIS安装</div>
                    </li>
                                <li><a href="/article/53.htm"
                                       title="二分查找排序算法" target="_blank">二分查找排序算法</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/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/1.htm">二分查找</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F/1.htm">排序</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%8A%98%E5%8D%8A/1.htm">折半</a>
                                    <div> 一:概念 二分查找又称
折半查找(
折半搜索/
二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步</div>
                                </li>
                                <li><a href="/article/180.htm"
                                       title="java中的BigDecimal" target="_blank">java中的BigDecimal</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/BigDecimal/1.htm">BigDecimal</a>
                                    <div>        在项目开发过程中出现精度丢失问题,查资料用BigDecimal解决,并发现如下这篇BigDecimal的解决问题的思路和方法很值得学习,特转载。 
        原文地址:http://blog.csdn.net/ugg/article/de</div>
                                </li>
                                <li><a href="/article/307.htm"
                                       title="Shell echo命令详解" target="_blank">Shell echo命令详解</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/echo/1.htm">echo</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a>
                                    <div>Shell echo命令 
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式: 
echo string 
您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串: 
  echo "It is a test" 
这里的双引号完全可以省略,以下命令与上面实例效果一致: 
  echo Itis a test 2.显示转义</div>
                                </li>
                                <li><a href="/article/434.htm"
                                       title="Oracle DBA 简单操作" target="_blank">Oracle DBA 简单操作</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/oracle+dba+sql/1.htm">oracle dba sql</a>
                                    <div> --执行次数多的SQL 
 select sql_text,executions from ( 
     select sql_text,executions from v$sqlarea order by executions desc 
     ) where rownum<81; 
 &nb</div>
                                </li>
                                <li><a href="/article/561.htm"
                                       title="画图重绘" target="_blank">画图重绘</a>
                                    <span class="text-muted">朱辉辉33</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a>
                                    <div>  我第一次接触重绘是编写五子棋小游戏的时候,因为游戏里的棋盘是用线绘制的,而这些东西并不在系统自带的重绘里,所以在移动窗体时,棋盘并不会重绘出来。所以我们要重写系统的重绘方法。 
  在重写系统重绘方法时,我们要注意一定要调用父类的重绘方法,即加上super.paint(g),因为如果不调用父类的重绘方式,重写后会把父类的重绘覆盖掉,而父类的重绘方法是绘制画布,这样就导致我们</div>
                                </li>
                                <li><a href="/article/688.htm"
                                       title="线程之初体验" target="_blank">线程之初体验</a>
                                    <span class="text-muted">西蜀石兰</span>
<a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a>
                                    <div>一直觉得多线程是学Java的一个分水岭,懂多线程才算入门。 
之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。 
 
线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。 
你可以在线程类的run()方法中定义自己的任务,就跟正常的Ja</div>
                                </li>
                                <li><a href="/article/815.htm"
                                       title="linux集群互相免登陆配置" target="_blank">linux集群互相免登陆配置</a>
                                    <span class="text-muted">林鹤霄</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>配置ssh免登陆 
1、生成秘钥和公钥    ssh-keygen -t rsa 
2、提示让你输入,什么都不输,三次回车之后会在~下面的.ssh文件夹中多出两个文件id_rsa 和 id_rsa.pub 
   其中id_rsa为秘钥,id_rsa.pub为公钥,使用公钥加密的数据只有私钥才能对这些数据解密    c</div>
                                </li>
                                <li><a href="/article/942.htm"
                                       title="mysql : Lock wait timeout exceeded; try restarting transaction" target="_blank">mysql : Lock wait timeout exceeded; try restarting transaction</a>
                                    <span class="text-muted">aigo</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>原文:http://www.cnblogs.com/freeliver54/archive/2010/09/30/1839042.html 
  
原因是你使用的InnoDB   表类型的时候, 
默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s, 
因为有的锁等待超过了这个时间,所以抱错. 
  
你可以把这个时间加长,或者优化存储</div>
                                </li>
                                <li><a href="/article/1069.htm"
                                       title="Socket编程 基本的聊天实现。" target="_blank">Socket编程 基本的聊天实现。</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/socket/1.htm">socket</a>
                                    <div>public class Server
{

	//用来存储所有连接上来的客户
	private List<ServerThread> clients;
	
	public static void main(String[] args)
	{
		Server s = new Server();
		s.startServer(9988);
	}

	publi</div>
                                </li>
                                <li><a href="/article/1196.htm"
                                       title="多线程监听器事件模式(一个简单的例子)" target="_blank">多线程监听器事件模式(一个简单的例子)</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a><a class="tag" taget="_blank" href="/search/%E7%9B%91%E5%90%AC%E6%A8%A1%E5%BC%8F/1.htm">监听模式</a>
                                    <div>    
多线程的事件监听器模式 
  监听器时间模式经常与多线程使用,在多线程中如何知道我的线程正在执行那什么内容,可以通过时间监听器模式得到 
  
     创建多线程的事件监听器模式 思路: 
   1, 创建线程并启动,在创建线程的位置设置一个标记 
    2,创建队</div>
                                </li>
                                <li><a href="/article/1323.htm"
                                       title="spring InitializingBean接口" target="_blank">spring InitializingBean接口</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>spring的事务的TransactionTemplate,其源码如下: 
public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean{
 ...
} 
TransactionTemplate继承了DefaultT</div>
                                </li>
                                <li><a href="/article/1450.htm"
                                       title="Oracle中询表的权限被授予给了哪些用户" target="_blank">Oracle中询表的权限被授予给了哪些用户</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><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/%E6%9D%83%E9%99%90/1.htm">权限</a>
                                    <div>        Oracle查询表将权限赋给了哪些用户的SQL,以备查用。 
select t.table_name as "表名",
       t.grantee    as "被授权的属组",
       t.owner      as "对象所在的属组"</div>
                                </li>
                                <li><a href="/article/1577.htm"
                                       title="【Struts2五】Struts2 参数传值" target="_blank">【Struts2五】Struts2 参数传值</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a>
                                    <div>Struts2中参数传值的3种情况 
1.请求参数绑定到Action的实例字段上 
2.Action将值传递到转发的视图上 
3.Action将值传递到重定向的视图上 
  一、请求参数绑定到Action的实例字段上以及Action将值传递到转发的视图上  
Struts可以自动将请求URL中的请求参数或者表单提交的参数绑定到Action定义的实例字段上,绑定的规则使用ognl表达式语言</div>
                                </li>
                                <li><a href="/article/1704.htm"
                                       title="【Kafka十四】关于auto.offset.reset[Q/A]" target="_blank">【Kafka十四】关于auto.offset.reset[Q/A]</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a>
                                    <div>I got serveral questions about  auto.offset.reset. This configuration parameter governs how  consumer read the message from  Kafka when  there is no initial offset in ZooKeeper or </div>
                                </li>
                                <li><a href="/article/1831.htm"
                                       title="nginx gzip压缩配置" target="_blank">nginx gzip压缩配置</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/nginx+gzip+%E5%8E%8B%E7%BC%A9%E8%8C%83%E4%BE%8B/1.htm">nginx gzip 压缩范例</a>
                                    <div>nginx gzip压缩配置   更多 
0      
 nginx      
 gzip      
 配置         
随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢? 
gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用</div>
                                </li>
                                <li><a href="/article/1958.htm"
                                       title="java-13.输入一个单向链表,输出该链表中倒数第 k 个节点" target="_blank">java-13.输入一个单向链表,输出该链表中倒数第 k 个节点</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>two cursors. 
Make the first cursor go K steps first. 
 
 

/*
	 * 第 13 题:题目:输入一个单向链表,输出该链表中倒数第 k 个节点
	 */
	public void displayKthItemsBackWard(ListNode head,int k){
		ListNode p1=head,p2=head;
</div>
                                </li>
                                <li><a href="/article/2085.htm"
                                       title="Spring源码学习-JdbcTemplate queryForObject" target="_blank">Spring源码学习-JdbcTemplate queryForObject</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/spring/1.htm">spring</a>
                                    <div>JdbcTemplate中有两个可能会混淆的queryForObject方法: 
1. 
Object queryForObject(String sql, Object[] args, Class requiredType) 
2. 
Object queryForObject(String sql, Object[] args, RowMapper rowMapper) 
 
第1个方法是只查</div>
                                </li>
                                <li><a href="/article/2212.htm"
                                       title="[冰川时代]在冰川时代,我们需要什么样的技术?" target="_blank">[冰川时代]在冰川时代,我们需要什么样的技术?</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF/1.htm">技术</a>
                                    <div> 
 
     看美国那边的气候情况....我有个感觉...是不是要进入小冰期了? 
 
     那么在小冰期里面...我们的户外活动肯定会出现很多问题...在室内呆着的情况会非常多...怎么在室内呆着而不发闷...怎么用最低的电力保证室内的温度.....这都需要技术手段... 
 
  &nb</div>
                                </li>
                                <li><a href="/article/2339.htm"
                                       title="js 获取浏览器型号" target="_blank">js 获取浏览器型号</a>
                                    <span class="text-muted">cuityang</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a>
                                    <div>根据浏览器获取iphone和apk的下载地址 
 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" content="text/html"/> 
    <meta name=</div>
                                </li>
                                <li><a href="/article/2466.htm"
                                       title="C# socks5详解 转" target="_blank">C# socks5详解 转</a>
                                    <span class="text-muted">dalan_123</span>
<a class="tag" taget="_blank" href="/search/socket/1.htm">socket</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a>
                                    <div>http://www.cnblogs.com/zhujiechang/archive/2008/10/21/1316308.html    这里主要讲的是用.NET实现基于Socket5下面的代理协议进行客户端的通讯,Socket4的实现是类似的,注意的事,这里不是讲用C#实现一个代理服务器,因为实现一个代理服务器需要实现很多协议,头大,而且现在市面上有很多现成的代理服务器用,性能又好,</div>
                                </li>
                                <li><a href="/article/2593.htm"
                                       title="运维 Centos问题汇总" target="_blank">运维 Centos问题汇总</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%91%E4%B8%BB%E6%9C%BA/1.htm">云主机</a>
                                    <div>一、sh 脚本不执行的原因 
sh脚本不执行的原因 只有2个 
1.权限不够 
2.sh脚本里路径没写完整。 
  
二、解决You have new mail in /var/spool/mail/root 
修改/usr/share/logwatch/default.conf/logwatch.conf配置文件 
MailTo = 
MailFrom 
  
三、查询连接数</div>
                                </li>
                                <li><a href="/article/2720.htm"
                                       title="Yii防注入攻击笔记" target="_blank">Yii防注入攻击笔记</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/WEB%E5%AE%89%E5%85%A8/1.htm">WEB安全</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a>
                                    <div>网站表单有注入漏洞须对所有用户输入的内容进行个过滤和检查,可以使用正则表达式或者直接输入字符判断,大部分是只允许输入字母和数字的,其它字符度不允许;对于内容复杂表单的内容,应该对html和script的符号进行转义替换:尤其是<,>,',"",&这几个符号  这里有个转义对照表: 
http://blog.csdn.net/xinzhu1990/articl</div>
                                </li>
                                <li><a href="/article/2847.htm"
                                       title="MongoDB简介[一]" target="_blank">MongoDB简介[一]</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/MongoDB%E7%AE%80%E4%BB%8B/1.htm">MongoDB简介</a>
                                    <div>MongoDB简介 
转载请出自出处:http://eksliang.iteye.com/blog/2173288 1.1易于使用 
       MongoDB是一个面向文档的数据库,而不是关系型数据库。与关系型数据库相比,面向文档的数据库不再有行的概念,取而代之的是更为灵活的“文档”模型。 
       另外,不</div>
                                </li>
                                <li><a href="/article/2974.htm"
                                       title="zookeeper windows 入门安装和测试" target="_blank">zookeeper windows 入门安装和测试</a>
                                    <span class="text-muted">greemranqq</span>
<a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a>
                                    <div>一、序言 
      以下是我对zookeeper 的一些理解:      zookeeper 作为一个服务注册信息存储的管理工具,好吧,这样说得很抽象,我们举个“栗子”。 
      栗子1号: 
      假设我是一家KTV的老板,我同时拥有5家KTV,我肯定得时刻监视</div>
                                </li>
                                <li><a href="/article/3101.htm"
                                       title="Spring之使用事务缘由(2-注解实现)" target="_blank">Spring之使用事务缘由(2-注解实现)</a>
                                    <span class="text-muted">ihuning</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>  
Spring事务注解实现 
  
1. 依赖包: 
    1.1 spring包: 
          spring-beans-4.0.0.RELEASE.jar 
          spring-context-4.0.0.</div>
                                </li>
                                <li><a href="/article/3228.htm"
                                       title="iOS App Launch Option" target="_blank">iOS App Launch Option</a>
                                    <span class="text-muted">啸笑天</span>
<a class="tag" taget="_blank" href="/search/option/1.htm">option</a>
                                    <div>iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。 
  
launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。 
1、若用户直接</div>
                                </li>
                                <li><a href="/article/3355.htm"
                                       title="jdk与jre的区别(_)" target="_blank">jdk与jre的区别(_)</a>
                                    <span class="text-muted">macroli</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a>
                                    <div>简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。  
JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你</div>
                                </li>
                                <li><a href="/article/3482.htm"
                                       title="Updates were rejected because the tip of your current branch is behind" target="_blank">Updates were rejected because the tip of your current branch is behind</a>
                                    <span class="text-muted">qiaolevip</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E4%BC%97%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">众观千象</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a>
                                    <div>$ git push joe prod-2295-1

To git@git.dianrong.com:joe.le/dr-frontend.git
 ! [rejected]        prod-2295-1 -> prod-2295-1 (non-fast-forward)
error: failed to push some refs to 'git@git.dianron</div>
                                </li>
                                <li><a href="/article/3609.htm"
                                       title="[一起学Hive]之十四-Hive的元数据表结构详解" target="_blank">[一起学Hive]之十四-Hive的元数据表结构详解</a>
                                    <span class="text-muted">superlxw1234</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/hive%E5%85%83%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">hive元数据结构</a>
                                    <div>关键字:Hive元数据、Hive元数据表结构 
  
之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。 
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。 
  
文章最后面,会以一个示例来全面了解一下,</div>
                                </li>
                                <li><a href="/article/3736.htm"
                                       title="Spring 3.2.14,4.1.7,4.2.RC2发布" target="_blank">Spring 3.2.14,4.1.7,4.2.RC2发布</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/Spring+3/1.htm">Spring 3</a>
                                    <div>  
Spring 3.2.14、4.1.7及4.2.RC2于6月30日发布。 
  
其中Spring 3.2.1是一个维护版本(维护周期到2016-12-31截止),后续会继续根据需求和bug发布维护版本。此时,Spring官方强烈建议升级Spring框架至4.1.7 或者将要发布的4.2 。 
  
其中Spring 4.1.7主要包含这些更新内容。 </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>