Asp.Net MVC4开发三:HTML5、CSS3、JQuery、JQuery UI的应用

在Asp.Net MVC4里面UI层也就是View层默认使用HTML5以及与HTML相对应的CSS3,JS默认使用JQuery和JQuery UI。新建一个MVC4项目,项目会自动包含JQuery、JQuery UI所需要的文件及智能提示支持; HTML则是自动生成HTML5格式标签的页面。

先来看看MVC4项目里面对这些内容的支持:

在MVC4项目里面有Scripts和Content两个文件夹,Scripts里面存放Java scripts库包括JQuery, JQuery UI, JQuery Validation以及modernizr等。而在Content Base文件夹里面包含了JQuery UI所需要的CSS文件。

protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
        }

在Global.asax文件里面注册了所需要的绑定,当程序启动时运行绑定内容。

再来看看绑定是怎么工作的:

public class BundleConfig
    {
        // For more information on Bundling, visit 
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js",
                        "~/Scripts/bootstrap.min.js",
                        "~/Scripts/DataGrid.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                        "~/Scripts/jquery-ui-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));

            // Use the development version of Modernizr to develop with and learn from. Then, when you're
            // ready for production, use the build tool at  to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css",
                        "~/Content/themes/base/jquery-ui.css",
                        "~/Content/DataGrid.css"));

            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                        "~/Content/themes/base/jquery.ui.core.css",
                        "~/Content/themes/base/jquery.ui.resizable.css",
                        "~/Content/themes/base/jquery.ui.selectable.css",
                        "~/Content/themes/base/jquery.ui.accordion.css",
                        "~/Content/themes/base/jquery.ui.autocomplete.css",
                        "~/Content/themes/base/jquery.ui.button.css",
                        "~/Content/themes/base/jquery.ui.dialog.css",
                        "~/Content/themes/base/jquery.ui.slider.css",
                        "~/Content/themes/base/jquery.ui.tabs.css",
                        "~/Content/themes/base/jquery.ui.datepicker.css",
                        "~/Content/themes/base/jquery.ui.progressbar.css",
                        "~/Content/themes/base/jquery.ui.theme.css"));
        }
    }

View页面的引用:

  @Styles.Render("~/Content/css")
  @Scripts.Render("~/bundles/modernizr")

用Styles.Render(StyleBundle name)在页面添加CSS的引用, 用Scripts.Render(StyleBundle name)在页面添加Scripts的引用, Render是数组型参数params,所以可以同时将多个Bundles放在一个Render方法添加到页面。这样做的一个好处是页面更简洁,而且添加更方便,只需要把想要添加的文件Add到某一个Bundles组,引用后会在页面添加Bundles下面所有的绑定文件的引用。而且可以使用 BundleTable.EnableOptimizations 对引用文件进行压缩以增加网络传输性能,将该属性设为ture添加到application_start方法里面:

protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();

            BundleTable.EnableOptimizations = true;
        }

上面是一种绑定引用的方式,当然传统方式也是可以用的,例如下面这种引用也没有任何问题,但没有上述优点。如:


因为MVC4默认使用HTML5,所以页面布局也是HTML5的布局,HTML5的布局是这样的:

Asp.Net MVC4开发三:HTML5、CSS3、JQuery、JQuery UI的应用_第1张图片

所以在Views文件夹下面会有一个Shared文件夹,里面放置的页面就是共享页面,有点类似web form里面的user control。

在Shared文件夹里面有一个_Layout.cshtml文件,是一个布局页面,如果想修改网络的布局,那么只需要修改该文件就行。

在mvc4网站默认的布局下面,会将jquery.js的引用放在Layout页面的最后,在其它页面使用JQuery或调用JQuery UI时会报错,比如:“无法识别$”,或“不支持Button/dialog”等等。调试JS内容,可以打开浏览器高级选项,找到两个禁止Javascript调试的选项,去掉选中状态就行。针对上面错误,我们可以把scripts.render()和styles.render()方法放置在head部分,那么在其它页面就不需要重新添加一遍了。当然把styles和scripts放置在页面的最后是有好处的,这样可以让页面内容更快地显示,但如果遇到错误,就是位置太靠后了。

来看一个Juery及ui使用的例子:

在_Layout.cshtml文件的head里面添加引用,我将jquery ui的css回到了Content/css Bundles:

 @Styles.Render("~/Content/css")
 @Scripts.Render("~/bundles/modernizr")
 @Scripts.Render("~/bundles/jquery", "~/bundles/jqueryui")

页面调用:

效果:

Asp.Net MVC4开发三:HTML5、CSS3、JQuery、JQuery UI的应用_第2张图片

在上面有一段关于modernizr的JS类库说明,意思是说:当你在开发过程当中时,你可以使用和依赖它的功能,但当你准备发布到产品环境时,使用构建工具通过官网地址取你所需要的验证就行。它也间接说明了modernizr的作用,起验证作用,因为HTML5目前不是对所有浏览器都支持,那么对于不支持的浏览器我们需要采用一些可替代的方法,比如用传统的JS和支持的HTML tag操作。那么这时就需要用到modernizr的功能了,他提供验证浏览器的功能。

目前所支持的浏览器有:IE9及以上,Firefox, Safari, Opera, Chrome等,浏览器前缀分别是:IE 是 -ms-, Firefox 是 -moz-, Safari和Chrome是一样的 -webkit-, Opera是-o-。

看一个CSS3的例子:

.featured .content-wrapper {
        background-color: #7ac0da;
        background-image: -ms-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
        background-image: -o-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
        background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7ac0da), color-stop(1, #a4d4e6));
        background-image: -webkit-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
        background-image: linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
        color: #3e5667;
        padding: 20px 40px 30px 40px;
    }

向元素添加“no-js”的类


  • 当Modernizr运行的时候,它会把这个“no-js”的类变为“js”来使你知道它已经运行。Modernizr并不仅仅只做这一件事情,它还会为 所有它检测过的特性添加class类,如果浏览器不支持某个特性,它就为该特性对应的类名加上“no-”的前缀。
  • 添加no-js class到html元素下,是告诉浏览器是否支持JavaScript,如果不支持就显示no-js,如果支持就把no-js删掉。

下面是一个列表对照,用上述方法可以对下面所有内容进行验证。

CSS功能

Modernizr类(属性)

@font-face

fontface

::before and ::after pseudo-elements

generatedcontent

background-size

backgroundsize

border-image

borderimage

border-radius

borderradius

box-shadow

boxshadow

CSS animations

cssanimations

CSS 2D transformations

csstransforms

CSS 3D transformations

csstransforms3d

CSS transitions

csstransitions

flexible box layout

flexbox

gradients

cssgradients

hsla()

hsla

multi-column layout

csscolumns

multiple backgrounds

multiplebgs

opacity

opacity

reflection

cssreflections

rgba()

rgba

text-shadow

textshadow


HTML5和CSS3能做到什么?相信网上已经有很多的实例了,动画效果不输flash,所以很多人相信HTML5是互联网的未来。来看看HTML5和之前版本有何区别?

下面分别是HTML5新增和移除的内容:

html5 变更的标签

  1. 简洁的 DOCTYPE HTML5 只需一个简洁的文档类型:。它有意不使用版本,因此文档将会适用所有版本的HTML。
  2. 简单易记的语言标签 你并不需要在 中使用 xmlns 或 xml:lang 标记。 将对 HTML5 有效。
  3. 简单易记的编码类型 你现在可以在 meta 标签中使用 “charset”:
  4. 不需要闭合标签 在 HTML5 中,空标签(如:br、img 和 input )并不需要闭合标签。
  5. 新增标签 新增的语义化标签 
    header, hgroup, nav, section, article, details, figure, figcaption, aside, time, mark, audio, video, source, track, bdi, canvas, command, datalist, summary, embed, keygen, meter, output, progress, rp, rt, ruby,
  6. 废弃的标签 下面这些标签并不被 HTML5 支持:
    、、、、<s>[删除线]、<strike>[删除线]、<tt>[定义打字机文本]、<u>[下划线文本]; 和 <xmp>[和pre类似];</li> <li><strong>新增属性</strong><span> </span>在 HTML5 中,增加了很多form表单属性,当然还有其他属性。<span> </span><br> required,<span> </span>from, pattern, placeholder, email, range[min, max, step], url, date, time, datetime, datetime-local, month, week, tel, number, search, --, contentcontenteditableable, contextmenu,data-yourvalue, draggable, item, itemprop, spellcheck, subject</li> </ol> <p>新增的内容比较多,而移除的内容其实也不怎么用到,或者是直接和其它的元素在功能上是重叠的。新增内容最吸引人的地方当算交互式的标签了,比如:audio, video, canvas等。在布局方面,目前直接提供了header, section, nav, article, footer等,所以现在布局对于完全不懂CSS的程序员来说也不是难事。可以查看_Layout.cshtml文件,里面的布局就相当简洁。</p> <p><span style="color:#ff0000;"><!DOCTYPE html></span><br><span style="color:#ff0000;"><html lang="en" ></span><br>     <head><br><span style="color:#ff0000;">        <meta charset="utf-8" /></span><br>         <title>@ViewBag.Title - My ASP.NET MVC Application</title><br>         <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /><br>         <meta name="viewport" content="width=device-width" /><br>         @Styles.Render("~/Content/css")<br>         @Scripts.Render("~/bundles/modernizr")<br>         @Scripts.Render("~/bundles/jquery", "~/bundles/jqueryui")<br>     </head><br>     <body><br><span style="color:#ff0000;">        <header></span><br>             <div class="content-wrapper"><br>                 <div class="float-left"><br>                     <p class="site-title">@Html.ActionLink("OTP Portal", "Index", "Home")</p><br>                 </div><br>                 <div class="float-right"><br>                     <section id="login"><br>                         @Html.Partial("_LoginPartial")<br>                     </section><br>                     <nav><br>                         <ul id="menu"><br>                             <li>@Html.ActionLink("DataGrid", "Index", "DataGrid")</li><br>                             <li>@Html.ActionLink("WebGrid", "index", "WebGrid")</li><br>                             <li>@Html.ActionLink("Home", "Index", "Home")</li><br>                             <li>@Html.ActionLink("About", "About", "Home")</li><br>                             <li>@Html.ActionLink("Contact", "Contact", "Home")</li>                           <br>                         </ul><br>                     </nav><br>                 </div><br>             </div><br>         </header><br>         <div id="body"><br>             @RenderSection("featured", required: false)<br><span style="color:#ff0000;">            <section</span> class="content-wrapper main-content clear-fix"><br>                 @RenderBody()<br>             </section><br>         </div><br><span style="color:#ff0000;">        <footer></span><br>             <div class="content-wrapper"><br>                 <div class="float-left"><br>                     <p>&copy; @DateTime.Now.Year - My ASP.NET MVC Application</p><br>                 </div><br>             </div><br>         </footer></p> <p>        @*@Scripts.Render("~/bundles/jquery")*@<br>         @RenderSection("scripts", required: false)<br>     </body><br> </html></p> <p>仔细观察Layout文件就发现有些明显的变化,HTML页面或Web form页面里面doctype, html, meta变得简洁了,里面的连接已经不需要了,那些以连接形式出现的命名空间完全从MVC4里面消失了,所以对于HTML5来说,因为需要copy的东西少了,需要自己用JS写的功能也少了很多。</p> <p>另一个重要的变化就是标签属性的变化,现在Input标签提供了与type相当的属性,直接可以验证用户输入,比如:required必填项,date日期格式及datepicker选择器,number数字格式,长度等等。如:</p> <p><br> <input type="email" /><br> <br /><br> <input type="date" /><br> <br /><br> <input type="number" maxlength="5" min="0" /></p> <p>效果:</p> <p><a href="http://img.e-com-net.com/image/info8/0789dde0f32b4869b8ef645235b1d53c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0789dde0f32b4869b8ef645235b1d53c.jpg" alt="Asp.Net MVC4开发三:HTML5、CSS3、JQuery、JQuery UI的应用_第3张图片" width="523" height="295" style="border:1px solid black;"></a></p> <p>与之前的HTML相比,我们不需要自己写JS的验证,也不需要JS的日期控件,更重要的是在MVC4里面直接用强类型绑定MODEL后,所有需要的验证都在Model类里面定义,安全而且高效。</p> <p><br></p> <div>  </div> <div>  </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1278318192845930496"></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">你可能感兴趣的:(.Net开发)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1901561212508893184.htm" title="iOS 文件预览(PDF、Excel、World等)之QuickLook框架" target="_blank">iOS 文件预览(PDF、Excel、World等)之QuickLook框架</a> <span class="text-muted">仰望星空01</span> <a class="tag" taget="_blank" href="/search/Swift/1.htm">Swift</a><a class="tag" taget="_blank" href="/search/iOS/1.htm">iOS</a><a class="tag" taget="_blank" href="/search/QuickLook/1.htm">QuickLook</a><a class="tag" taget="_blank" href="/search/OC/1.htm">OC</a><a class="tag" taget="_blank" href="/search/File/1.htm">File</a><a class="tag" taget="_blank" href="/search/PDF/1.htm">PDF</a><a class="tag" taget="_blank" href="/search/Excel/1.htm">Excel</a><a class="tag" taget="_blank" href="/search/Swift/1.htm">Swift</a><a class="tag" taget="_blank" href="/search/5.0/1.htm">5.0</a> <div>iOS文件预览QuickLook之工程文件预览QuickLook之网络URL预览QuickLook之工程文件预览一、简介QuickLook库可以让我们的App在iPhone/iPad中直接预览各个文件了。官方的开发文档中说明其支持的文件类型有:iWorkdocumentsMicrosoftOfficedocuments(Office‘97andnewer)RichTextFormat(RTF)do</div> </li> <li><a href="/article/1901560577839394816.htm" title="架构设计与模式之:容器化与云原生架构设计模式" target="_blank">架构设计与模式之:容器化与云原生架构设计模式</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/Python%E5%AE%9E%E6%88%98/1.htm">Python实战</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/R1/1.htm">R1</a><a class="tag" taget="_blank" href="/search/%26amp%3B/1.htm">&amp;</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AEAI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大数据AI人工智能大模型</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/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/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/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><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a> <div>作者:禅与计算机程序设计艺术1.简介当今,企业越来越依赖云计算服务来获得快速、经济和弹性伸缩的能力。云原生架构正逐渐成为主流,而容器技术也已经在为企业提供更灵活、更高效的开发环境。本文将从云原生架构和容器技术的角度出发,结合实际应用场景,系统全面剖析容器化及云原生架构的设计模式及优缺点,并为读者提供参考指导。2.背景介绍什么是云原生?云原生(CloudNative)的概念源于Google在Kube</div> </li> <li><a href="/article/1901559443414380544.htm" title="如何使用 Python 实现生成对抗网络" target="_blank">如何使用 Python 实现生成对抗网络</a> <span class="text-muted">NoABug</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C/1.htm">生成对抗网络</a><a class="tag" taget="_blank" href="/search/tensorflow/1.htm">tensorflow</a> <div>如何使用Python实现生成对抗网络生成对抗网络(GenerativeAdversarialNetwork,GAN)是一种能够生成高质量、逼真图像的深度学习模型。GAN模型由两个神经网络组成:一个生成器和一个判别器。生成器的任务是以噪声为输入,生成看似真实的图像;而判别器则需要根据输入的图像,判断该图像是真实的还是由生成器生成的。下面我们将通过Python代码来实现一个简单的GAN模型。首先,我们</div> </li> <li><a href="/article/1901559444177743872.htm" title="GAN模型的Python应用——生成对抗网络" target="_blank">GAN模型的Python应用——生成对抗网络</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/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C/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>GAN模型的Python应用——生成对抗网络生成对抗网络(GenerativeAdversarialNetwork,GAN)是深度学习中的一种重要模型,已经被广泛应用于图像、文本生成等领域。GAN模型由两个神经网络组成:生成器(Generator)和判别器(Discriminator)。生成器用于生成假样本,判别器用于评估真实性。两个神经网络相互博弈,通过一次次迭代训练,最终生成器可以生成足以骗过</div> </li> <li><a href="/article/1901559190502043648.htm" title="嵌入式C语言进阶(汇总)系统化详解" target="_blank">嵌入式C语言进阶(汇总)系统化详解</a> <span class="text-muted">niuTaylor</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>以下是嵌入式C语言进阶知识的系统化详解,结合嵌入式开发的实际需求和典型场景:一、硬件级编程技巧1.位操作与寄存器控制//位掩码操作(STM32GPIO控制示例)#defineGPIO_PIN5(1USR&=~TIM_SR_UIF;//2.最小化处理逻辑staticuint32_tcounter=0;counter++;//3.避免调用不可重入函数//4.禁止使用浮点运算(除非启用FPU上下文保存)</div> </li> <li><a href="/article/1901559191001165824.htm" title="嵌入式c语言进阶(三)状态机State Machine" target="_blank">嵌入式c语言进阶(三)状态机State Machine</a> <span class="text-muted">niuTaylor</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>状态机(StateMachine)是一种描述系统在不同状态之间转换行为的数学模型或设计模式,广泛应用于嵌入式系统、业务流程、游戏开发等领域。以下从核心概念、实现方式、应用实战三方面进行详细解析:一、状态机核心概念四大要素现态(CurrentState):系统当前所处的状态。事件(Event):触发状态转移的条件,如用户操作、时间到期等。动作(Action):状态转移时执行的操作,例如发送通知、更新</div> </li> <li><a href="/article/1901558812482007040.htm" title="嵌入式开发中的Doxygen注释规范实践" target="_blank">嵌入式开发中的Doxygen注释规范实践</a> <span class="text-muted">剁椒鱼头炖香菇</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>目录一、为什么需要规范的注释?二、Doxygen注释规范详解1.文件注释2.函数注释3.宏定义注释4.结构体注释三、注释规范最佳实践1.文件注释模板2.函数注释模板3.代码注释原则四、常见注释误区与解决方案误区1:过度注释误区2:过时注释误区3:模糊注释五、工具推荐六、项目实践案例七、总结一、为什么需要规范的注释?在嵌入式开发中,规范的代码注释如同精密仪器的说明书,具有以下重要作用:提高可读性:使</div> </li> <li><a href="/article/1901558559515144192.htm" title="这里是 Grok 3 为我规划的大学物联网工程自学计划!" target="_blank">这里是 Grok 3 为我规划的大学物联网工程自学计划!</a> <span class="text-muted">王倚山</span> <a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/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>我理解你可能希望我提供更详细的优化版本,包含更具体的技术细节、时间分配、资源推荐以及项目示例,以便让规划更具操作性。我将在保持原有结构的基础上,显著扩展每个阶段的内容,增加更多具体建议和实践指导,确保优化后的规划更加详尽、全面,同时仍然基于你的裸机开发经验进行调整。优化后的详细学习规划总体思路(扩展版)你的裸机开发经验(数据采集、控制、配网、上云、手机交互)表明你已经掌握了嵌入式开发的基础技能,如</div> </li> <li><a href="/article/1901558053929545728.htm" title="iOS中使用QLPreviewController来预览文件" target="_blank">iOS中使用QLPreviewController来预览文件</a> <span class="text-muted">happyrabbit456</span> <a class="tag" taget="_blank" href="/search/Mac/1.htm">Mac</a><a class="tag" taget="_blank" href="/search/%2B/1.htm">+</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a> <div>MacOS系统有一个很方便的功能就是文件预览,在Finder中选中一个文件,按下空格键就能够预览其中的内容。支持图片、文档、视频等类型。在iOS4.0系统中,官方SDK提供了一个QLPreviewController,使用它就可以让我们的App在iPhone/iPad中直接预览各个文件了。官方的开发文档中说明其支持的文件类型有:iWork文档微软Office97以上版本的文档RTF文档PDF文件图</div> </li> <li><a href="/article/1901553644331921408.htm" title="Cesium:开源的三维地球可视化引擎" target="_blank">Cesium:开源的三维地球可视化引擎</a> <span class="text-muted">ZD1</span> <a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">信息可视化</a> <div>简介:Cesium是一款开源的三维地球可视化引擎,为开发者和用户提供了强大且易于使用的工具,用于创建令人惊叹的虚拟地球场景。它基于WebGL技术,能够在现代的Web浏览器上运行,并支持各种平台和设备。本文将详细介绍Cesium的特点和应用领域。特点:a.高性能:Cesium利用GPU加速和流式处理技术,能够处理大规模的地理数据,并实时渲染出逼真的三维地球场景。b.开放性:Cesium是一个开源项目</div> </li> <li><a href="/article/1901552507281272832.htm" title="JavaScript 的 requestAnimationFrame" target="_blank">JavaScript 的 requestAnimationFrame</a> <span class="text-muted">小华0000</span> <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>在现代Web开发中,用户体验至关重要。动画作为用户交互的重要组成部分,如果处理不当,很容易出现卡顿、掉帧等问题,严重影响用户体验。幸运的是,JavaScript提供了一个强大的API:requestAnimationFrame(简称rAF),它为我们创建平滑、高效的动画提供了坚实的基础。本文将深入探讨requestAnimationFrame的原理、使用、高级技巧以及在实际项目中的应用,帮助你掌握</div> </li> <li><a href="/article/1901552508782833664.htm" title="css预处理器sass" target="_blank">css预处理器sass</a> <span class="text-muted">小华0000</span> <a class="tag" taget="_blank" href="/search/scss/1.htm">scss</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>在前端开发的世界中,CSS是构建网页样式的基础。然而,随着项目规模的增大,纯CSS的编写和维护往往会变得复杂而繁琐。为了解决这些痛点,Sass(SyntacticallyAwesomeStyleSheets)应运而生。Sass是一种CSS预处理器,它扩展了CSS的功能,让CSS的编写更加高效、灵活和易于维护。本文将深入探讨Sass的概念、优势、语法、以及如何在实际项目中应用它,帮助你提升CSS技能</div> </li> <li><a href="/article/1901552506404663296.htm" title="Animate.css" target="_blank">Animate.css</a> <span class="text-muted">小华0000</span> <a class="tag" taget="_blank" href="/search/Animate/1.htm">Animate</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E7%94%BB/1.htm">动画</a> <div>这个库提供了多种预定义的动画效果,比如平移、缩放、旋转、淡入淡出等,开发者可以通过简单的类名直接在HTML元素上应用这些动画,而无需自己编写复杂的CSS动画代码。以下是对Animate.css的详细介绍:1.Animate.css简介Animate.css是一个基于CSS的动画库,主要特点包括:简单易用:只需在HTML元素中添加指定的类名即可使用动画。丰富的动画效果:包括入场、出场、注意效果等数十</div> </li> <li><a href="/article/1901550110651772928.htm" title="diy nas配置推荐2019_打造家用NAS之一(2019年版)" target="_blank">diy nas配置推荐2019_打造家用NAS之一(2019年版)</a> <span class="text-muted">weixin_39691748</span> <a class="tag" taget="_blank" href="/search/diy/1.htm">diy</a><a class="tag" taget="_blank" href="/search/nas%E9%85%8D%E7%BD%AE%E6%8E%A8%E8%8D%902019/1.htm">nas配置推荐2019</a> <div>大概6年前写了一些自己DIYNAS的文档,发表在http://newsmth.net上面。过了好多年再修改一下之前的文档,发布在这里,供大家参考。自己弄家用存储方面的东西算下来也有几年了。于是现在写点东西总结一下,也方便对这方面有兴趣的网友参考。希望大家看了之后能够少走弯路,造个适合自己的NAS。基本有如下的内容:什么类型的存储适合我?硬件选型OS安装基本配置性能调整总结与展望1.什么类型的存储适</div> </li> <li><a href="/article/1901547841558474752.htm" title="前端学习网站大全" target="_blank">前端学习网站大全</a> <span class="text-muted">洪布斯</span> <div>CSDN-专业IT技术社区:https://www.csdn.net/GitHub:https://github.com/jQuery插件库-收集最全最新最好的jQuery插件:http://www.jq22.com/Iconfont-阿里巴巴矢量图标库:https://www.iconfont.cn/菜鸟教程-学的不仅是技术,更是梦想!:https://www.runoob.com/Animat</div> </li> <li><a href="/article/1901546832757059584.htm" title="前端面试技巧与实践" target="_blank">前端面试技巧与实践</a> <span class="text-muted">北辰alk</span> <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/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>在当今快速发展的互联网行业中,前端开发已经成为了一个至关重要的角色。随着技术的不断进步和用户需求的日益复杂,前端工程师的职责不再仅仅是实现页面的布局和交互,而是需要具备全方位的技术能力和工程思维。根据2023年StackOverflow的开发者调查报告,前端开发仍然是全球最受欢迎的技术岗位之一,竞争也愈发激烈。在这样的背景下,前端面试成为了每个开发者职业生涯中的重要关卡。无论是初入职场的新人,还是</div> </li> <li><a href="/article/1901546453491314688.htm" title="Cesium-三维地球可视化应用" target="_blank">Cesium-三维地球可视化应用</a> <span class="text-muted">程序员_三木</span> <a class="tag" taget="_blank" href="/search/Web3d/1.htm">Web3d</a><a class="tag" taget="_blank" href="/search/webgl/1.htm">webgl</a><a class="tag" taget="_blank" href="/search/Three.js/1.htm">Three.js</a> <div>什么是CesiumJS?CesiumJS是一个强大的开源JavaScript库,用于构建高性能的3D地图和地球可视化应用。无论你是从事地理信息系统(GIS)开发、数据可视化,还是需要展示空间数据,CesiumJS都能提供灵活的解决方案。它以WebGL为核心,专注于大规模地理空间数据的实时渲染。CesiumJS是Cesium平台的核心部分,与Cesiumion等服务无缝集成,支持从数据管理到可视化的</div> </li> <li><a href="/article/1901544560849383424.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/java/1.htm">java</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> <div>在当今高度数字化的时代,软件安全成为了至关重要的议题。对于众多使用Java语言进行开发的程序员而言,深入掌握Java代码审计技能,无疑是守护软件安全的核心手段。本文将围绕一本涵盖Java代码审计丰富知识的书籍目录,全面剖析Java代码审计的各个关键环节以及其在CTFAWD比赛中的重要应用。一、学习经验:开启Java代码审计的智慧之门Java代码审计之路并非坦途,需要有系统的学习方法和实践经验。书籍</div> </li> <li><a href="/article/1901542418889633792.htm" title="探索 Egg 安全插件:为您的 Node.js 应用加固安全防线" target="_blank">探索 Egg 安全插件:为您的 Node.js 应用加固安全防线</a> <span class="text-muted">黎情卉Desired</span> <div>探索Egg安全插件:为您的Node.js应用加固安全防线egg-securitySecuritypluginforegg,forceperformancetoo.项目地址:https://gitcode.com/gh_mirrors/eg/egg-security在当今数字化时代,网络安全已成为每个开发者不可忽视的重要议题。随着Node.js应用的普及,如何确保这些应用的安全性变得尤为关键。今天,</div> </li> <li><a href="/article/1901540276007137280.htm" title="重生之我在学Vue--第16天 Vue 3 插件开发" target="_blank">重生之我在学Vue--第16天 Vue 3 插件开发</a> <span class="text-muted">野生的程序媛</span> <a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%88%90%E4%BB%99%E4%B9%8B%E8%B7%AF/1.htm">前端成仙之路</a><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><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>重生之我在学Vue–第16天Vue3插件开发文章目录重生之我在学Vue--第16天Vue3插件开发前言一、插件的作用与开发思路1.1插件能做什么?1.2插件开发四部曲二、开发全局通知插件2.1插件基础结构2.2完整插件代码(带注释解析)2.3样式文件notification.css三、插件的安装与使用3.1在main.js中安装3.2在组件中使用四、插件开发进阶技巧4.1支持TypeScript类</div> </li> <li><a href="/article/1901539898016460800.htm" title="鸿蒙开发:图片保存与分享轻松上手" target="_blank">鸿蒙开发:图片保存与分享轻松上手</a> <span class="text-muted">柳中仙</span> <a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99HarmonyOS/1.htm">鸿蒙HarmonyOS</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a> <div>鸿蒙开发:图片保存与分享轻松上手为啥要实现图片保存与分享功能在鸿蒙应用开发里,实现图片保存和分享功能,对提升用户体验有着极大的帮助。它能让用户更自由地处理图片,满足大家在不同场景下的需求。从应用自身价值来看,这个功能就像是给应用添了一对翅膀。有了它,应用能吸引更多用户,因为用户会觉得这个应用很贴心,能想到他们的实际需求。而且,它还能增强用户对应用的依赖度,让用户更愿意留在这个应用里,从而提高应用的</div> </li> <li><a href="/article/1901539391411646464.htm" title="Java面试精选(1):Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?" target="_blank">Java面试精选(1):Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?</a> <span class="text-muted">Java面试精选</span> <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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a> <div>简单介绍Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。SpringMVC是Spring的一个模块,一个web框架。通过DispatcherServlet,ModelAndView和ViewResolver,开发web应用变得很容易。主要针对的是网站应用程序或者服务开发——URL路由、Session、模板引</div> </li> <li><a href="/article/1901539139375919104.htm" title="Kotlin知识体系(一) : Kotlin的五大基础语法特性" target="_blank">Kotlin知识体系(一) : Kotlin的五大基础语法特性</a> <span class="text-muted">氦客</span> <a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E4%BD%93%E7%B3%BB/1.htm">知识体系</a><a class="tag" taget="_blank" href="/search/-/1.htm">-</a><a class="tag" taget="_blank" href="/search/Kotlin%E5%9F%BA%E7%A1%80/1.htm">Kotlin基础</a><a class="tag" taget="_blank" href="/search/kotlin/1.htm">kotlin</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/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95/1.htm">基础语法</a><a class="tag" taget="_blank" href="/search/%E7%89%B9%E6%80%A7/1.htm">特性</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E4%BD%93%E7%B3%BB/1.htm">知识体系</a> <div>前言在Android开发领域,Kotlin凭借其简洁性和安全性已成为官方推荐语言。本文将通过Kotlin的五大基础语法特性,结合实际应用场景展示它们在Android开发中的独特价值。一、变量声明:val与var的哲学1.1不可变优先原则Kotlin的val关键字用于声明不可变变量(相当于Java的final),这是构建可靠Android应用的基石:valPI=3.14159//类型推断为Doubl</div> </li> <li><a href="/article/1901538761376854016.htm" title="前端开发:在vue中实现按钮倒计时功能" target="_blank">前端开发:在vue中实现按钮倒计时功能</a> <span class="text-muted">三掌柜666</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E8%BF%9B%E9%98%B6/1.htm">前端开发进阶</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</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> <div>前言在vue中开发中,关于计时器的使用也是比较常见的知识点,如基于移动端的短信60秒倒计时按钮、阅读协议40秒等实际需求,很常见的需求也不复杂,主要是有些细节需要注意。那么本篇博文就来分享一下关于vue中实现倒计时功能的方法,方便查阅使用,如有问题请指正。使用场景在前端开发中基于移动端的短信验证码发送60s倒计时使用,用户协议阅读30s倒计时提示等等。核心原理主要要处理的是倒计时按钮提示的数字以及</div> </li> <li><a href="/article/1901537752537690112.htm" title="深入浅出Docker:从零构建容器化开发能力" target="_blank">深入浅出Docker:从零构建容器化开发能力</a> <span class="text-muted">庸子</span> <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>目录一、容器革命:重新定义应用交付二、核心概念体系解析2.1镜像与容器2.2镜像构建哲学三、核心操作指令精要3.1容器生命周期管理3.2镜像管理进阶四、生产级实践指南4.1环境变量管理4.2持久化存储方案4.3网络架构设计五、持续交付流水线集成5.1Dockerfile优化原则5.2多环境配置策略六、安全加固要点一、容器革命:重新定义应用交付在传统软件部署中,环境差异导致的"在我机器上能跑"问题长</div> </li> <li><a href="/article/1901534852117753856.htm" title="前端初学者,有哪些适合的学习网站?" target="_blank">前端初学者,有哪些适合的学习网站?</a> <span class="text-muted">四六的六</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E5%BC%80%E5%8F%91/1.htm">个人开发</a> <div>对于前端初学者而言,选择合适的学习网站至关重要,以下是一些我知道的优质学习平台,在这里分享给大家:菜鸟教程:该网站以其简洁明了的界面设计和通俗易懂的教程内容而受到广大初学者的欢迎。其前端教程体系涵盖了前端开发的大量入门知识,包括HTML、CSS、JavaScript等基础技术,以及当前主流的前端框架和工具的使用方法,如Vue.js、React、Webpack等。教程内容的讲解方式深入浅出,注重从基</div> </li> <li><a href="/article/1901534347459096576.htm" title="Kotlin知识体系(二) : Kotlin的七个关键特性" target="_blank">Kotlin知识体系(二) : Kotlin的七个关键特性</a> <span class="text-muted">氦客</span> <a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E4%BD%93%E7%B3%BB/1.htm">知识体系</a><a class="tag" taget="_blank" href="/search/-/1.htm">-</a><a class="tag" taget="_blank" href="/search/Kotlin%E5%9F%BA%E7%A1%80/1.htm">Kotlin基础</a><a class="tag" taget="_blank" href="/search/kotlin/1.htm">kotlin</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</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/%E7%89%B9%E6%80%A7/1.htm">特性</a><a class="tag" taget="_blank" href="/search/%E5%AF%86%E5%B0%81%E7%B1%BB/1.htm">密封类</a><a class="tag" taget="_blank" href="/search/data/1.htm">data</a><a class="tag" taget="_blank" href="/search/class/1.htm">class</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a> <div>前言在Android开发中,Kotlin以其简洁的语法和强大的特性显著提升了开发效率。本文将解析Kotlin中7个关键特性,通过代码示例展示它们在实际开发中的应用。一、构造函数:主次分明主构造函数classUserconstructor(_name:String){//传统写法valname=_name}classStudent(valid:Int,varname:String)//简化版主构造函</div> </li> <li><a href="/article/1901533252414402560.htm" title="HarmonyOS Next ohpm-repo自动化运维——日志、备份与监控" target="_blank">HarmonyOS Next ohpm-repo自动化运维——日志、备份与监控</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a> <div>在HarmonyOSNext开发过程中,ohpm-repo作为私有仓库管理工具,其稳定运行对于项目的顺利推进至关重要。有效的自动化运维是保障ohpm-repo高效运行的关键,涵盖日志管理、仓库备份与恢复以及批量操作等多个方面。接下来,我们详细探讨这些自动化运维能力。如何管理ohpm-repo的日志?ohpm-repo有一个内置的日志记录器,定义了四种日志类型,分别是访问日志(access.log)</div> </li> <li><a href="/article/1901533214237847552.htm" title="【APM】Loki日志多行显示" target="_blank">【APM】Loki日志多行显示</a> <span class="text-muted">运维归一</span> <a class="tag" taget="_blank" href="/search/DevOps/1.htm">DevOps</a><a class="tag" taget="_blank" href="/search/APM/1.htm">APM</a><a class="tag" taget="_blank" href="/search/loki/1.htm">loki</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%BF%97%E5%B9%B6%E8%A1%8C/1.htm">日志并行</a> <div>上一篇文章我们搭建了Alertmanager和Loki,接下来我们来实现日志并行显示专栏:https://blog.csdn.net/zhanremo3062/category_12552674.html我们只需要修改Promtail服务的配置文件即可multiline:#RE2正则表达式,如果匹配将开始一个新的多行日志块#这个表达式必须被提供firstline:#解析的最大等待时间(Godura</div> </li> <li><a href="/article/1901532996868042752.htm" title="基于HarmonyNext的ArkTS实战:构建跨平台金融理财系统" target="_blank">基于HarmonyNext的ArkTS实战:构建跨平台金融理财系统</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/harmonyos-next/1.htm">harmonyos-next</a> <div>基于HarmonyNext的ArkTS实战:构建跨平台金融理财系统引言金融理财是现代人生活中不可或缺的一部分,尤其是在数字化时代,用户对理财工具的需求日益增长。HarmonyNext作为新一代操作系统,结合ArkTS的强大能力,为开发者提供了构建高性能、跨平台金融理财系统的绝佳工具。本文将详细讲解如何利用ArkTS和HarmonyNext构建一个功能完善的金融理财系统,涵盖账户管理、投资组合分析、</div> </li> <li><a href="/article/83.htm" title="java线程的无限循环和退出" target="_blank">java线程的无限循环和退出</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>最近想写一个游戏,然后碰到有关线程的问题,网上查了好多资料都没满足。 突然想起了前段时间看的有关线程的视频,于是信手拈来写了一个线程的代码片段。 希望帮助刚学java线程的童鞋 package thread; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date</div> </li> <li><a href="/article/210.htm" title="tomcat 容器" target="_blank">tomcat 容器</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>Tomcat的组成部分 1、server A Server element represents the entire Catalina servlet container. (Singleton) 2、service service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。 &nbsp; 3、connector 一个connector</div> </li> <li><a href="/article/337.htm" title="php递归,静态变量,匿名函数使用" target="_blank">php递归,静态变量,匿名函数使用</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E9%80%92%E5%BD%92%E5%87%BD%E6%95%B0/1.htm">递归函数</a><a class="tag" taget="_blank" href="/search/%E5%8C%BF%E5%90%8D%E5%87%BD%E6%95%B0/1.htm">匿名函数</a><a class="tag" taget="_blank" href="/search/%E9%9D%99%E6%80%81%E5%8F%98%E9%87%8F/1.htm">静态变量</a><a class="tag" taget="_blank" href="/search/%E5%BC%95%E7%94%A8%E4%BC%A0%E5%8F%82/1.htm">引用传参</a> <div>&nbsp; &lt;!doctype html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;title&gt;Current To-Do List&lt;/title&gt; &lt;/head&gt; &lt;body&gt</div> </li> <li><a href="/article/464.htm" title="属性颜色字体变化" target="_blank">属性颜色字体变化</a> <span class="text-muted">周华华</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>function changSize(className){ var diva=byId(&quot;fot&quot;) diva.className=className; } &lt;/script&gt; &lt;style type=&quot;text/css&quot;&gt; .max{ background: #900; color:#039; </div> </li> <li><a href="/article/591.htm" title="将properties内容放置到map中" target="_blank">将properties内容放置到map中</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/properties/1.htm">properties</a> <div>代码比较简单: private static Map&lt;Object, Object&gt; map; private static Properties p; static { //读取properties文件 InputStream is = XXX.class.getClassLoader().getResourceAsStream(&quot;xxx.properti</div> </li> <li><a href="/article/718.htm" title="[简单]拼接字符串" target="_blank">[简单]拼接字符串</a> <span class="text-muted">53873039oycg</span> <a class="tag" taget="_blank" href="/search/%E5%AD%97%E7%AC%A6%E4%B8%B2/1.htm">字符串</a> <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工作中遇到需要从Map里面取值拼接字符串的情况,自己写了个,不是很好,欢迎提出更优雅的写法,代码如下: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import java.util.HashMap; import java.uti</div> </li> <li><a href="/article/845.htm" title="Struts2学习" target="_blank">Struts2学习</a> <span class="text-muted">云端月影</span> <div>最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置。 配置文件精简了,的确是简便了开发过程,但是,我们熟悉的配置突然disappear了,真是一下很不适应。跟着潮流走吧,看看该怎样来搞定convention-plugin。 使用Convention插件,你需要将其JAR文件放</div> </li> <li><a href="/article/972.htm" title="Java新手入门的30个基本概念二" target="_blank">Java新手入门的30个基本概念二</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%96%B0%E6%89%8B/1.htm">新手</a><a class="tag" taget="_blank" href="/search/java+%E5%85%A5%E9%97%A8/1.htm">java 入门</a> <div>基本概念:  1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。  2.OOP中最重要的思想是类,类是模板是蓝图,</div> </li> <li><a href="/article/1099.htm" title="jedis 简单使用" target="_blank">jedis 简单使用</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a><a class="tag" taget="_blank" href="/search/command/1.htm">command</a><a class="tag" taget="_blank" href="/search/jedis/1.htm">jedis</a> <div>jedis.RedisOperationCollection.java package jedis; import org.apache.log4j.Logger; import redis.clients.jedis.Jedis; import java.util.List; import java.util.Map; import java.util.Set; pub</div> </li> <li><a href="/article/1226.htm" title="PL/SQL的函数和包体的基础" target="_blank">PL/SQL的函数和包体的基础</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/PL%2FSQL%E7%BC%96%E7%A8%8B%E5%87%BD%E6%95%B0/1.htm">PL/SQL编程函数</a><a class="tag" taget="_blank" href="/search/%E5%8C%85%E4%BD%93%E6%98%BE%E7%A4%BA%E5%8C%85%E7%9A%84%E5%85%B7%E4%BD%93%E6%95%B0%E6%8D%AE/1.htm">包体显示包的具体数据</a><a class="tag" taget="_blank" href="/search/%E5%8C%85/1.htm">包</a> <div>由于明天举要上课,所以刚刚将代码敲了一遍PL/SQL的函数和包体的实现(单例模式过几天好好的总结下再发出来);以便明天能更好的学习PL/SQL的循环,今天太累了,所以早点睡觉,明天继续PL/SQL总有一天我会将你永远的记载在心里,,, &nbsp; 函数; 函数:PL/SQL中的函数相当于java中的方法;函数有返回值 定义函数的 --输入姓名找到该姓名的年薪 create or re</div> </li> <li><a href="/article/1353.htm" title="Mockito(二)--实例篇" target="_blank">Mockito(二)--实例篇</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/1.htm">持续集成</a><a class="tag" taget="_blank" href="/search/mockito/1.htm">mockito</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学习了基本知识后,就可以实战了,Mockito的实际使用还是比较麻烦的。因为在实际使用中,最常遇到的就是需要模拟第三方类库的行为。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 比如现在有一个类FTPFileTransfer,实现了向FTP传输文件的功能。这个类中使用了a</div> </li> <li><a href="/article/1480.htm" title="精通Oracle10编程SQL(7)编写控制结构" target="_blank">精通Oracle10编程SQL(7)编写控制结构</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/plsql/1.htm">plsql</a> <div>/* *编写控制结构 */ --条件分支语句 --简单条件判断 DECLARE v_sal NUMBER(6,2); BEGIN select sal into v_sal from emp where lower(ename)=lower('&amp;name'); if v_sal&lt;2000 then update emp set</div> </li> <li><a href="/article/1607.htm" title="【Log4j二】Log4j属性文件配置详解" target="_blank">【Log4j二】Log4j属性文件配置详解</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a> <div>如下是一个log4j.properties的配置 &nbsp; log4j.rootCategory=INFO, stdout , R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appe</div> </li> <li><a href="/article/1734.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>public class CollectionDemo implements Serializable,Comparable&lt;CollectionDemo&gt;{ private static final long serialVersionUID = -2958090810811192128L; private int id; private String nam</div> </li> <li><a href="/article/1861.htm" title="java导致linux负载过高的定位方法" target="_blank">java导致linux负载过高的定位方法</a> <span class="text-muted">ronin47</span> <div>定位java进程ID 可以使用top或ps -ef |grep java ![图片描述][1] 根据进程ID找到最消耗资源的java pid 比如第一步找到的进程ID为5431 执行 top -p 5431 -H ![图片描述][2] 打印java栈信息 $ jstack -l 5431 &gt; 5431.log 在栈信息中定位具体问题 将消耗资源的Java PID转</div> </li> <li><a href="/article/1988.htm" title="给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数" target="_blank">给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a> <div> import java.util.ArrayList; import java.util.List; import java.util.Random; public class RandNFromRand5 { /** 题目:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。 解法1: f(k) = (x0-1)*5^0+(x1-</div> </li> <li><a href="/article/2115.htm" title="PL/SQL Developer保存布局" target="_blank">PL/SQL Developer保存布局</a> <span class="text-muted">Kai_Ge</span> <div>&nbsp; &nbsp; &nbsp; 近日由于项目需要,数据库从DB2迁移到ORCAL,因此数据库连接客户端选择了PL/SQL Developer。由于软件运用不熟悉,造成了很多麻烦,最主要的就是进入后,左边列表有很多选项,自己删除了一些选项卡,布局很满意了,下次进入后又恢复了以前的布局,很是苦恼。在众多PL/SQL&nbsp;Developer使用技巧中找到如下这段: &nbsp; &n</div> </li> <li><a href="/article/2242.htm" title="[未来战士计划]超能查派[剧透,慎入]" target="_blank">[未来战士计划]超能查派[剧透,慎入]</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E5%88%92/1.htm">计划</a> <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 非常好看,超能查派,这部电影......为我们这些热爱人工智能的工程技术人员提供一些参考意见和思想........ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虽然电影里面的人物形象不是非常的可爱....但是非常的贴近现实生活.... &nbsp;&nbsp;&nbsp;&nbs</div> </li> <li><a href="/article/2369.htm" title="Google Map API V2" target="_blank">Google Map API V2</a> <span class="text-muted">dai_lm</span> <a class="tag" taget="_blank" href="/search/google+map/1.htm">google map</a> <div>以后如果要开发包含google map的程序就更麻烦咯 http://www.cnblogs.com/mengdd/archive/2013/01/01/2841390.html 找到篇不错的文章,大家可以参考一下 http://blog.sina.com.cn/s/blog_c2839d410101jahv.html 1. 创建Android工程 由于v2的key需要G</div> </li> <li><a href="/article/2496.htm" title="java数据计算层的几种解决方法2" target="_blank">java数据计算层的几种解决方法2</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%AE%97%E5%99%A8/1.htm">集算器</a> <div>2、SQL &nbsp;&nbsp;&nbsp; SQL/SP/JDBC在这里属于一类,这是老牌的数据计算层,性能和灵活性是它的优势。但随着新情况的不断出现,单纯用SQL已经难以满足需求,比如: JAVA开发规模的扩大,数据量的剧增,复杂计算问题的涌现。虽然SQL得高分的指标不多,但都是权重最高的。 &nbsp;&nbsp;&nbsp; 成熟度:5星。最成熟的。 &nbsp;&nbsp;</div> </li> <li><a href="/article/2623.htm" title="Linux下Telnet的安装与运行" target="_blank">Linux下Telnet的安装与运行</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/telnet/1.htm">telnet</a> <div> Linux下Telnet的安装与运行 &nbsp; linux默认是使用SSH服务的 而不安装telnet服务&nbsp; 如果要使用telnet 就必须先安装相应的软件包&nbsp; 即使安装了软件包 默认的设置telnet 服务也是不运行的 需要手工进行设置 如果是redhat9,则在第三张光盘中找到 telnet-server-0.17-25.i386.rpm </div> </li> <li><a href="/article/2750.htm" title="PHP中钩子函数的实现与认识" target="_blank">PHP中钩子函数的实现与认识</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>假如有这么一段程序: function fun(){ fun1(); fun2(); }   首先程序执行完fun1()之后执行fun2()然后fun()结束。   但是,假如我们想对函数做一些变化。比如说,fun是一个解析函数,我们希望后期可以提供丰富的解析函数,而究竟用哪个函数解析,我们希望在配置文件中配置。这个时候就可以发挥钩子的力量了。   我们可以在fu</div> </li> <li><a href="/article/2877.htm" title="EOS中的WorkSpace密码修改" target="_blank">EOS中的WorkSpace密码修改</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/%E4%BF%AE%E6%94%B9WorkSpace%E5%AF%86%E7%A0%81/1.htm">修改WorkSpace密码</a> <div>EOS中BPS的WorkSpace密码修改 &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 蕃薯耀 201</div> </li> <li><a href="/article/3004.htm" title="SpringMVC4零配置--SpringSecurity相关配置【SpringSecurityConfig】" target="_blank">SpringMVC4零配置--SpringSecurity相关配置【SpringSecurityConfig】</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/SpringSecurity/1.htm">SpringSecurity</a> <div>&nbsp;SpringSecurity的配置相对来说有些复杂,如果是完整的bean配置,则需要配置大量的bean,所以xml配置时使用了命名空间来简化配置,同样,spring为我们提供了一个抽象类WebSecurityConfigurerAdapter和一个注解@EnableWebMvcSecurity,达到同样减少bean配置的目的,如下: &nbsp; applicationContex</div> </li> <li><a href="/article/3131.htm" title="ie 9 kendo ui中ajax跨域的问题" target="_blank">ie 9 kendo ui中ajax跨域的问题</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/AJAX%E8%B7%A8%E5%9F%9F/1.htm">AJAX跨域</a> <div>这两天遇到个问题,kendo ui的datagrid,根据json去读取数据,然后前端通过kendo ui的datagrid去渲染,但很奇怪的是,在ie 10,ie 11,chrome,firefox等浏览器中,同样的程序, 浏览起来是没问题的,但把应用放到公网上的一台服务器, 却发现如下情况: 1) ie 9下,不能出现任何数据,但用IE 9浏览器浏览本机的应用,却没任何问题 </div> </li> <li><a href="/article/3258.htm" title="不要让别人笑你不能成为程序员" target="_blank">不要让别人笑你不能成为程序员</a> <span class="text-muted">lampcy</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>在经历六个月的编程集训之后,我刚刚完成了我的第一次一对一的编码评估。但是事情并没有如我所想的那般顺利。 说实话,我感觉我的脑细胞像被轰炸过一样。 手慢慢地离开键盘,心里很压抑。不禁默默祈祷:一切都会进展顺利的,对吧?至少有些地方我的回答应该是没有遗漏的,是不是? 难道我选择编程真的是一个巨大的错误吗——我真的永远也成不了程序员吗? 我需要一点点安慰。在自我怀疑,不安全感和脆弱等等像龙卷风一</div> </li> <li><a href="/article/3385.htm" title="马皇后的贤德" target="_blank">马皇后的贤德</a> <span class="text-muted">nannan408</span> <div>&nbsp;&nbsp; 马皇后不怕朱元璋的坏脾气,并敢理直气壮地吹耳边风。众所周知,朱元璋不喜欢女人干政,他认为“后妃虽母仪天下,然不可使干政事”,因为“宠之太过,则骄恣犯分,上下失序”,因此还特地命人纂述《女诫》,以示警诫。但马皇后是个例外。   有一次,马皇后问朱元璋道:“如今天下老百姓安居乐业了吗?”朱元璋不高兴地回答:“这不是你应该问的。”马皇后振振有词地回敬道:“陛下是天下之父,</div> </li> <li><a href="/article/3512.htm" title="选择某个属性值最大的那条记录(不仅仅包含指定属性,而是想要什么属性都可以)" target="_blank">选择某个属性值最大的那条记录(不仅仅包含指定属性,而是想要什么属性都可以)</a> <span class="text-muted">Rainbow702</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/group+by/1.htm">group by</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%A4%A7%E5%80%BC/1.htm">最大值</a><a class="tag" taget="_blank" href="/search/max/1.htm">max</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%A4%A7%E7%9A%84%E9%82%A3%E6%9D%A1%E8%AE%B0%E5%BD%95/1.htm">最大的那条记录</a> <div>好久好久不写SQL了,技能退化严重啊!!! &nbsp; 直入主题: 比如我有一张表,file_info, 它有两个属性(但实际不只,我这里只是作说明用): file_code, file_version 同一个code可能对应多个version 现在,我想针对每一个code,取得它相关的记录中,version 值 最大的那条记录, SQL如下: select * </div> </li> <li><a href="/article/3639.htm" title="VBScript脚本语言" target="_blank">VBScript脚本语言</a> <span class="text-muted">tntxia</span> <a class="tag" taget="_blank" href="/search/VBScript/1.htm">VBScript</a> <div>&nbsp; VBScript 是基于VB的脚本语言。主要用于Asp和Excel的编程。 &nbsp; VB家族语言简介 &nbsp; Visual Basic 6.0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;源于BASIC语言。 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 由微软公司开发的包含协助开发环境的事</div> </li> <li><a href="/article/3766.htm" title="java中枚举类型的使用" target="_blank">java中枚举类型的使用</a> <span class="text-muted">xiao1zhao2</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/%E6%9E%9A%E4%B8%BE/1.htm">枚举</a><a class="tag" taget="_blank" href="/search/1.5%E6%96%B0%E7%89%B9%E6%80%A7/1.htm">1.5新特性</a> <div>枚举类型是j2se在1.5引入的新的类型,通过关键字enum来定义,常用来存储一些常量. &nbsp; 1.定义一个简单的枚举类型 public enum Sex { MAN, WOMAN } &nbsp; 枚举类型本质是类,编译此段代码会生成.class文件.通过Sex.MAN来访问Sex中的成员,其返回值是Sex类型. &nbsp; 2.常用方法 静态的values()方</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>