F04_HttpRunner关联:通过头域匹配方式提取 SessionID

F04_HttpRunner关联:通过头域匹配方式提取 SessionID

 

F04_HttpRunner关联:通过头域匹配方式提取 SessionID_第1张图片

 

 

从响应结构进行分析,cookie 出现在响应的头域内(headers),而且不管服务器返回了多少个cookie,浏览器再次请求的时候,都会把这些所有的cookie附加上。

 

那么我们能否把问题简化?不再费劲的取出某个cookie的名称和值,而是一股脑提取所有cookie,不管有用没用,后面再发起新的请求的时候,将这些提取到的所有cookie全部给服务器传回去,需要哪个,服务器自己来觉得吧,反正它要的肯定在这里面呢 :)

 

接下来试一试吧

 

首先回顾一下源码:httprunner-2.5.5\httprunner\response.py

# headers
elif top_query == "headers":
    headers = self.headers
    if not sub_query:
        # extract headers
        return headers

    try:
        return headers[sub_query]
    except KeyError:
        err_msg = u"Failed to extract header! => {}\n".format(field)
        err_msg += u"response headers: {}\n".format(headers)
        logger.log_error(err_msg)
        raise exceptions.ExtractFailure(err_msg)

 

 

里面关键有这么一句,可以返回 headers 里面的任意一个头域:

  return headers[sub_query]

 

 

那么我们来取出头中的所有的cookie,就可以这么表示了:

headers.Set-Cookie

 

 

重新调整测试用例:

- config:
    name: index

- test:
    name: Get SessionID
    request:
      url: http://localhost/myweb/jxc/index.asp
      method: GET
    extract:
      # 从请求头域中获取所有 cookie  
      - sid: headers.Set-Cookie
      - form: 
validate: - eq: [status_code, 200] - eq: [$form, index.asp]

 

 

重新验证用例格式:

F04_HttpRunner关联:通过头域匹配方式提取 SessionID_第2张图片

 

 

执行测试用例,成功。

F04_HttpRunner关联:通过头域匹配方式提取 SessionID_第3张图片

 

用例执行通过,但是从命令行提示中,或者从测试报告中,并没有直接告诉我们提取 cookie 的情况如何。虽然没有报错就意味着成功,但是直观看到提取的内容会更加放心的,不是么?

 

 

解决办法也简单,使用 debug 日志级别来执行。

命令: hrun <用例名称> --log-level debug

 

在 HttpRunner 中可以选择五种日志模式,分别是:

  • DEBUG -> INFO -> WARNING -> ERROR -> CRITICAL
  • 默认级别: INFO

 

其中:

  • debug: 级别最低,打印日志信息最为详细,可用于代码调试
  • info:打印正常信息
  • warn: 打印警告信息
  • error: 打印错误信息
  • critical: 打印严重信息

 

源码:\httprunner-2.5.5\docs\run-tests\load-test.md

-L LOGLEVEL, --loglevel=LOGLEVEL
    Choose between DEBUG/INFO/WARNING/ERROR/CRITICAL.
    Default is INFO.

 

 

按 debug 模式执行后,在日志中有这么一行,可以看到提取出来我们想要的 cookie 了,而且这时候 cookie 的 “键名称” 无论如何变化也不用我们去操心了。


DEBUG    start to extract from response object.
DEBUG    extract: headers.Set-Cookie    => ASPSESSIONIDQCARSBQQ=LOBLJMGDKIGMKPIEBKHGDONJ; path=/

 

 

完整的 debug 日志如下:

D:\A00__Dev\HTTPRunnerTest\nostore>hrun t1.yml --log-level debug
INFO     HttpRunner version: 2.5.5
INFO     Start to run testcase: index
Get SessionID
INFO     GET http://localhost/myweb/jxc/index.asp
DEBUG    request kwargs(raw): {'verify': True}
DEBUG    processed request:
> GET http://localhost/myweb/jxc/index.asp
> kwargs: {'verify': True, 'timeout': 120}
DEBUG
================== request details ==================
url              : 'http://localhost/myweb/jxc/index.asp'
method           : 'GET'
headers          : {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, defl
ate', 'Accept': '*/*', 'Connection': 'keep-alive'}

DEBUG
================== response details ==================
ok               : True
url              : 'http://localhost/myweb/jxc/index.asp'
status_code      : 200
reason           : 'OK'
cookies          : 
encoding         : 'ISO-8859-1'
headers          : {'Cache-Control': 'no-cache', 'Content-Type': 'text/html', ...... 'Content-Length': '1902'}
content_type     : 'text/html'
body             : '\r\n\r\n\r\n ......'

INFO     status_code: 200, response_time(ms): 49.0 ms, response_length: 4046 bytes

DEBUG    start to extract from response object.
DEBUG    extract: headers.Set-Cookie    => ASPSESSIONIDQCARSBQQ=LOBLJMGDKIGMKPIEBKHGDONJ;path=/
DEBUG    extract: <FORM ACTION=\"(.*)\?action=login\" METHOD=\"post\" name=\"loginform\">=> index.asp
DEBUG    start to validate.
DEBUG    extract: status_code   => 200
DEBUG
validate: status_code equals 200(int)   ==> pass
DEBUG
validate: LazyString($form) equals index.asp(str)       ==> pass
.

----------------------------------------------------------------------
Ran 1 test in 0.123s

OK
DEBUG    No html report template specified, use default.
INFO     Start to render Html report ...
INFO     Generated Html report: D:\A00__Dev\HTTPRunnerTest\nostore\reports\20200403T063629.057808.html
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-Break to quit</code></pre> 
  <p> </p> 
  <p> </p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1279863151969452032"></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">你可能感兴趣的:(接口自动化测试之,-,HttpRunner框架)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1884047345646104576.htm"
                           title="<sa8650>QCX Usecase 使用详解—如何在 QCX 框架中添加新的自定义Usecase/Pipeline" target="_blank"><sa8650>QCX Usecase 使用详解—如何在 QCX 框架中添加新的自定义Usecase/Pipeline</a>
                        <span class="text-muted">waterAdmin</span>
<a class="tag" taget="_blank" href="/search/%E6%B1%BD%E8%BD%A6/1.htm">汽车</a><a class="tag" taget="_blank" href="/search/%E8%BD%A6%E8%BD%BD%E7%B3%BB%E7%BB%9F/1.htm">车载系统</a><a class="tag" taget="_blank" href="/search/%E8%A7%86%E8%A7%89%E6%A3%80%E6%B5%8B/1.htm">视觉检测</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div><sa8650>QCXUsecase使用详解—如何在QCX框架中添加新的自定义Usecase/Pipeline一、前言二、为Usecase/Pipeline创建新文件夹三、CreateUsecaseXML四、为camxAutoo_Test管道创建拓扑五、添加Usecase/Pipeline编译六、使用Qcarcam_Test应用程序运行Usecase一、前言本页介绍根据OEM/Tier1要求创建自</div>
                    </li>
                    <li><a href="/article/1884042930491027456.htm"
                           title="pymoo:Python中的多目标优化框架" target="_blank">pymoo:Python中的多目标优化框架</a>
                        <span class="text-muted">葛梓熙</span>

                        <div>pymoo:Python中的多目标优化框架pymoo项目地址:https://gitcode.com/gh_mirrors/pym/pymoo项目介绍pymoo是一个开源的多目标优化框架,专为Python开发者设计。它提供了最先进的单目标和多目标优化算法,以及与多目标优化相关的多种功能,如可视化和决策支持。无论你是学术研究者还是工业应用开发者,pymoo都能帮助你轻松实现复杂的多目标优化任务。项目</div>
                    </li>
                    <li><a href="/article/1884041292615315456.htm"
                           title="chatgpt赋能Python-python_pyomo" target="_blank">chatgpt赋能Python-python_pyomo</a>
                        <span class="text-muted">atest166</span>
<a class="tag" taget="_blank" href="/search/ChatGpt/1.htm">ChatGpt</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>PythonPyomo:优化问题解决利器PythonPyomo是一个开源的Python优化建模语言工具箱。它提供了一种简单灵活的方法来描述优化问题,并在可行性、线性、非线性、混合整数和二次规划等方面提供广泛的建模和求解功能。优点灵活:Pyomo可以通过对象导向编程方式来描述优化问题,而无需使用特定的语法或格式。它提供了一种比传统表格方式更灵活的方式来表示问题。可扩展:Pyomo的建模框架可以很容易</div>
                    </li>
                    <li><a href="/article/1884035994584412160.htm"
                           title="【AI论文】FilmAgent: 一个用于虚拟3D空间中端到端电影制作自动化的多智能体框架" target="_blank">【AI论文】FilmAgent: 一个用于虚拟3D空间中端到端电影制作自动化的多智能体框架</a>
                        <span class="text-muted">东临碣石82</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>摘要:虚拟电影制作涉及复杂的决策过程,包括剧本编写、虚拟摄影以及演员的精确定位和动作设计。受近期基于语言智能体社会的自动化决策领域进展的启发,本文提出了FilmAgent,这是一个新颖的、基于大型语言模型(LLM)的多智能体协作框架,旨在实现我们构建的3D虚拟空间中的端到端电影制作自动化。FilmAgent模拟了各种剧组成员角色,包括导演、编剧、演员和摄影师,并涵盖了电影制作工作流程的关键阶段:(</div>
                    </li>
                    <li><a href="/article/1884033725918932992.htm"
                           title="容器化检索增强框架(R2R)" target="_blank">容器化检索增强框架(R2R)</a>
                        <span class="text-muted">deepdata_cn</span>
<a class="tag" taget="_blank" href="/search/RAG/1.htm">RAG</a><a class="tag" taget="_blank" href="/search/RAG/1.htm">RAG</a>
                        <div>R2RbySciPhi-AI是一个专门的RAG框架,专注于通过迭代细化来改进检索过程。主要特点包括实现新颖的检索算法,支持多步检索过程,与各种嵌入模型和向量存储集成,以及用于分析和可视化检索性能的工具。适合有兴趣突破检索技术界限的开发人员和研究人员,特别是在需要创新检索方法的场景。具有RESTfulAPI的容器化检索增强一代(RAG)。具有生产就绪型功能,包括多模式内容摄取、混合搜索功能、可配置的</div>
                    </li>
                    <li><a href="/article/1884025911687311360.htm"
                           title="Flutter框架分析(一)--架构总览(1)" target="_blank">Flutter框架分析(一)--架构总览(1)</a>
                        <span class="text-muted">简介_vN</span>
<a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a>
                        <div>Flutter被设计成一个可扩展,分层的系统。它包含了一系列依赖其下层的独立库。其示意图见下图.其中,framework层中的每一个组件均是可选的和可以代替的。从上图可知,Flutter系统总共可以分为三层。上层的框架(Framework),中层的引擎(Engine),以及底层的嵌入层(Embedder)。框架(Framework):框架层是纯dart语言实现的一个响应式框架,开发者平常需要通过该</div>
                    </li>
                    <li><a href="/article/1884016827680485376.htm"
                           title="高级Qt信号槽编程技巧" target="_blank">高级Qt信号槽编程技巧</a>
                        <span class="text-muted">QT性能优化QT原理源码QT界面美化</span>
<a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/qt6.3/1.htm">qt6.3</a><a class="tag" taget="_blank" href="/search/qt5/1.htm">qt5</a><a class="tag" taget="_blank" href="/search/QT%E6%95%99%E7%A8%8B/1.htm">QT教程</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div>高级Qt信号槽编程技巧补天云火鸟博客创作软件补天云网站1Qt高级信号槽编程基础1.1Qt核心概念和机制介绍1.1.1Qt核心概念和机制介绍Qt核心概念和机制介绍高级Qt信号槽编程技巧,Qt核心概念与机制详解引言,在深入探讨Qt中高级信号槽编程技巧之前,我们先对Qt的核心概念及其工作机制进行一番了解。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面、移动和嵌入式设备上。其设计思想强调了组件化、模块</div>
                    </li>
                    <li><a href="/article/1884007372062519296.htm"
                           title="练习题 - Django 4.x File 文件上传使用示例和配置方法" target="_blank">练习题 - Django 4.x File 文件上传使用示例和配置方法</a>
                        <span class="text-muted">Mr数据杨</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/Web%E5%BC%80%E5%8F%91/1.htm">Web开发</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/sqlite/1.htm">sqlite</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>在现代的web应用开发中,文件上传是一个常见的功能,无论是用户上传头像、上传文档,还是其他类型的文件,处理文件上传都是开发者必须掌握的技能之一。Django作为一个流行的Pythonweb框架,提供了便捷的文件上传功能和配置方法。学习如何在Django中实现文件上传,不仅有助于提升编程技能,还能帮助我们更好地理解web应用的开发流程。本次练习题的设计目的是通过真实的生活实例帮助自学编程的用户掌握D</div>
                    </li>
                    <li><a href="/article/1883994008443744256.htm"
                           title="基于YOLOv8+PyQt5的密集人群计数检测系统" target="_blank">基于YOLOv8+PyQt5的密集人群计数检测系统</a>
                        <span class="text-muted">人工智能教学实践</span>
<a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a>
                        <div>基于YOLOv8+PyQt5的密集人群计数检测系统是一个结合了目标检测算法与图形用户界面的项目,以下是相关介绍:【毕业设计参考】基于yolov8+pyqt5的密集人群计数检测系统.zip资源-CSDN文库系统概述该系统旨在实时分析某一区域内的人群数量与分布情况,将YOLOv8算法的高效目标检测能力与PyQt5框架的简洁直观界面相结合,能够实时捕获视频流,通过YOLOv8进行人群检测,并在用户界面中</div>
                    </li>
                    <li><a href="/article/1883991489340567552.htm"
                           title="python 基本知识" target="_blank">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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>Python:背景知识及环境安装什么是Python?Python是一种解释型、面向对象的高级编程语言。它的设计哲学强调代码的可读性和简洁性,因此被广泛应用于各种领域,包括:数据科学与机器学习:NumPy,Pandas,Matplotlib,Scikit-learn等库让Python成为了数据分析和机器学习的首选语言。Web开发:Django,Flask等框架提供了高效的Web开发解决方案。自动化:</div>
                    </li>
                    <li><a href="/article/1883990857435115520.htm"
                           title="如何使用HASH创建低交互式蜜罐系统" target="_blank">如何使用HASH创建低交互式蜜罐系统</a>
                        <span class="text-muted">FreeBuf-</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7/1.htm">工具</a><a class="tag" taget="_blank" href="/search/%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95/1.htm">哈希算法</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>关于HASHHASH是一个用于创建和启动低交互蜜罐的框架,可以帮助广大研究人员轻松创建HTTP无关的低交互式软件蜜罐。HASH的主要理念是易于配置,能够灵活地模拟在HTTP/HTTPs上运行的任何软件。尽可能减少占用空间,避免被检测为蜜罐。功能介绍1、单一框架即可部署基于HTTP/HTTPs的蜜罐;2、通过YAML文件轻松配置;3、内置honeytraps;4、基于强大的随机化fakerjs以避免</div>
                    </li>
                    <li><a href="/article/1883985565188157440.htm"
                           title="NVIDIA Isaac Lab 入门教程(一)" target="_blank">NVIDIA Isaac Lab 入门教程(一)</a>
                        <span class="text-muted">kuan_li_lyg</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%9C%80%E4%BC%98%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7/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/%E6%9C%BA%E5%99%A8%E4%BA%BA/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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/1.htm">强化学习</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E4%BB%BF%E5%AD%A6%E4%B9%A0/1.htm">模仿学习</a><a class="tag" taget="_blank" href="/search/Isaac/1.htm">Isaac</a>
                        <div>系列文章目录前言IsaacLab是一个用于机器人学习的统一模块化框架,旨在简化机器人研究中的常见工作流程(如RL、从演示中学习和运动规划)。它建立在英伟达IsaacSim的基础上,利用最新的仿真功能实现逼真的场景和快速高效的仿真。该框架的核心目标是模块化:轻松定制和添加新环境、机器人和传感器。灵活性:适应社区不断变化的需求。开放性:保持开源,允许社区贡献和扩展框架。包含电池:包含大量可随时使用的环</div>
                    </li>
                    <li><a href="/article/1883985313030795264.htm"
                           title="Struts2 架构" target="_blank">Struts2 架构</a>
                        <span class="text-muted">段远山</span>
<a class="tag" taget="_blank" href="/search/Struts2/1.htm">Struts2</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/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>Struts2是一个MVC拉动的(或MVC2)框架,Struts2的模型-视图-控制器模式是通过以下五个核心部分进行实现的:操作(Actions)拦截器(Interceptors)值栈(ValueStack)/OGNL结果(Result)/结果类型视图技术而Struts2与传统的MVC框架略有不同,因为它由Action扮演模型的角色,而不是控制器,虽然这样会有一些重叠。上图描述了Struts2高级</div>
                    </li>
                    <li><a href="/article/1883983925970268160.htm"
                           title="Pytest Fixtures 介绍与用法" target="_blank">Pytest Fixtures 介绍与用法</a>
                        <span class="text-muted">香奈儿5号奶茶</span>
<a class="tag" taget="_blank" href="/search/pytest/1.htm">pytest</a>
                        <div>PytestFixtures是Pytest框架中用于管理测试前置条件和后置清理的一种强大工具。可以帮助我们在测试中设置初始状态,减少重复代码,并提高测试的可维护性登录后复制下载代码查看我的示例gitclonehttps://gitee.com/Ac1998/pytest-fixtures-demo.git1.2.下面我们来学习一下如何使用它前置条件已经安装了最新版本已安装Python基本了解如何使</div>
                    </li>
                    <li><a href="/article/1883980389370884096.htm"
                           title="goGin框架教程" target="_blank">goGin框架教程</a>
                        <span class="text-muted">sumatch</span>
<a class="tag" taget="_blank" href="/search/go/1.htm">go</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a>
                        <div>1.gin框架入门1.1介绍Gin是一个用Golang编写的高性能的web框架,由于http路由的优化,速度提高了近40倍。Gin的特点就是封装优雅、API友好。Gin的一些特性:快速基于Radix树的路由,小内存占用。没有反射。可预测的API性能。支持中间件传入的HTTP请求可以由一系列中间件和最终操作来处理。例如:Logger,Authorization,GZIP,最终操作DB。Crash处理</div>
                    </li>
                    <li><a href="/article/1883978876854530048.htm"
                           title="DeepSeek R1模型基于ollama部署" target="_blank">DeepSeek R1模型基于ollama部署</a>
                        <span class="text-muted">&Dirac</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">机器学习笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</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/nlp/1.htm">nlp</a>
                        <div>DeepSeekR1模型基于ollama部署1、安装部署ollama(windows)2、在ollama中使用deepseekr13、问答示例4、python调用接口5、ollama常用命令1、安装部署ollama(windows)Ollama是一个专为本地机器设计的开源框架,旨在简化大型语言模型(LLM)的部署和运行过程。它提供了一套工具和命令,使用户能够轻松地下载、管理和运行各种语言模型,包括</div>
                    </li>
                    <li><a href="/article/1883974338407886848.htm"
                           title="struts2" target="_blank">struts2</a>
                        <span class="text-muted">工布之者</span>
<a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a>
                        <div>s2的工作原理(图解)详解Struts2的工作原理上图来源于Struts2官方站点,是Struts2的整体结构。一个请求在Struts2框架中的处理大概分为以下几个步骤1客户端初始化一个指向Servlet容器(例如Tomcat)的请求2这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成</div>
                    </li>
                    <li><a href="/article/1883974212129976320.htm"
                           title="fixture测试夹具是什么?在pytest中有何作用?" target="_blank">fixture测试夹具是什么?在pytest中有何作用?</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/pytest/1.htm">pytest</a>
                        <div>前言大家晚上好呀,今天呢来和大家唠唠pytest中的fixtures夹具的详解,废话就不多说了咱们直接进入主题哈。一、fixture的优势pytest框架的fixture测试夹具就相当于unittest框架的setup、teardown,但相对之下它的功能更加强大和灵活。命名方式灵活,不限于unittest的setup、teardown可以实现数据共享,多个模块跨文件共享前置后置可以实现多个模块跨</div>
                    </li>
                    <li><a href="/article/1883973706745704448.htm"
                           title="Spring Boot项目中使用MockMvc进行测试的详细指南" target="_blank">Spring Boot项目中使用MockMvc进行测试的详细指南</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>目录MockMvc简介安装和配置基本用法高级用法集成测试测试最佳实践总结MockMvc简介MockMvc是Spring框架提供的一种用于测试SpringMVC控制器的工具。它允许开发者在不启动完整的Web服务器的情况下,模拟HTTP请求并验证响应。MockMvc的主要优点包括:快速执行:</div>
                    </li>
                    <li><a href="/article/1883966391460098048.htm"
                           title="鸿蒙学习自由流转与分布式运行环境-价值与架构定义(1)" target="_blank">鸿蒙学习自由流转与分布式运行环境-价值与架构定义(1)</a>
                        <span class="text-muted">技术分享,共享成长</span>
<a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>文章目录价值与架构定义1、价值2、架构定义随着个人设备数量越来越多,跨多个设备间的交互将成为常态。基于传统OS开发跨设备交互的应用程序时,需要解决设备发现、设备认证、设备连接、数据同步等技术难题,不但开发成本高,还存在安全隐私、兼容性、性能等诸多问题。为了适应万物互联时代的环境变化,鸿蒙系统构建了基于分布式运行环境所需要的基础设施,为开发者提供了基础的分布式框架能力,使开发者可以更方便的实现跨设备</div>
                    </li>
                    <li><a href="/article/1883949683101986816.htm"
                           title="如何在Next.js使用Blitz.js的功能" target="_blank">如何在Next.js使用Blitz.js的功能</a>
                        <span class="text-muted"></span>

                        <div>如何在Next.js使用Blitz.js的功能前言大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!@blitzjs/next@blitzjs/next适配器公开了特定于Next.js框架的函数和组件。概览@blitzjs/next适配器公开了特定于Next</div>
                    </li>
                    <li><a href="/article/1883949486569484288.htm"
                           title="REST风格(SPRINGBOOT框架)" target="_blank">REST风格(SPRINGBOOT框架)</a>
                        <span class="text-muted">一只藏羚吖</span>
<a class="tag" taget="_blank" href="/search/SPRINGBOOT%E6%A1%86%E6%9E%B6/1.htm">SPRINGBOOT框架</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>
                        <div>目录一、核心概念二、主要特点三、优点四、缺点五、应用实例1.添加SpringBootStarterWeb依赖2.创建RESTful控制器3.配置和测试4.部署和运行REST(RepresentationalStateTransfer)风格是一种针对网络应用设计和开发的架构风格,它强调资源的表示、无状态通信以及统一接口,它定义了一种在网络上创建、读取、更新和删除资源(通常指数据)的方式。以下从多个方</div>
                    </li>
                    <li><a href="/article/1883942044775280640.htm"
                           title="SpringAI基于API对大语言模型调用" target="_blank">SpringAI基于API对大语言模型调用</a>
                        <span class="text-muted">_沉浮_</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/springAI/1.htm">springAI</a>
                        <div>引言随着人工智能技术的迅猛发展,大型语言模型(LLM)在各个领域的应用越来越广泛。SpringAI作为一个旨在简化AI集成的框架,为开发者提供了高效、便捷的工具来连接和调用这些大模型。本文将详细探讨如何使用SpringAI整合通义千问等大语言模型,并通过实例演示这一过程,最后提供一些扩展建议。一、SpringAI简介SpringAI是一个专为AI工程设计的应用框架,旨在将Spring生态系统设计原</div>
                    </li>
                    <li><a href="/article/1883941288705847296.htm"
                           title="自定义数据集使用框架的线性回归方法对其进行拟合" target="_blank">自定义数据集使用框架的线性回归方法对其进行拟合</a>
                        <span class="text-muted">〖是♂我〗</span>
<a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92/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/%E5%9B%9E%E5%BD%92/1.htm">回归</a>
                        <div>代码:#导入必要的库importtorchimportnumpyasnpimportmatplotlib.pyplotasplt#定义数据集:二维数据,其中第一列是特征x,第二列是目标值ydata=[[-0.5,7.7],[1.8,98.5],[0.9,57.8],[0.4,39.2],[-1.4,-15.7],[-1.4,-37.3],[-1.8,-49.1],[1.5,75.6],[0.4,3</div>
                    </li>
                    <li><a href="/article/1883938138322169856.htm"
                           title="使用 PyTorch 实现逻辑回归:从数据到模型保存与加载" target="_blank">使用 PyTorch 实现逻辑回归:从数据到模型保存与加载</a>
                        <span class="text-muted">弥树子</span>
<a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92/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>
                        <div>在机器学习中,逻辑回归是一种经典的分类算法,广泛应用于二分类问题。本文将通过一个简单的示例,展示如何使用PyTorch框架实现逻辑回归模型,从数据准备到模型训练、保存和加载,最后进行预测。1.数据准备逻辑回归的核心是通过学习数据中的特征与标签之间的关系来进行分类。在本示例中,我们手动创建了一个简单的二维数据集,包含两类数据点。第一类数据点的标签为0,第二类数据点的标签为1。class1_point</div>
                    </li>
                    <li><a href="/article/1883933351715336192.htm"
                           title="Go语言web快速开发框架Gin如何进行数据的增删查改呢?" target="_blank">Go语言web快速开发框架Gin如何进行数据的增删查改呢?</a>
                        <span class="text-muted">网友阿贵</span>
<a class="tag" taget="_blank" href="/search/Go%E8%AF%AD%E8%A8%80/1.htm">Go语言</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/gin/1.htm">gin</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/intellij-idea/1.htm">intellij-idea</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a>
                        <div>在Go语言中使用Gin框架进行Web开发时,你可以轻松地结合database/sql接口和具体的数据库驱动(如MySQL的go-sql-driver/mysql)来执行数据的增删查改(CRUD)操作。下面通过几个简单的例子展示如何使用Gin和MySQL进行基本的数据操作。1.安装依赖确保你已经安装了必要的依赖:goget-ugithub.com/gin-gonic/gingoget-ugithub</div>
                    </li>
                    <li><a href="/article/1883932467753185280.htm"
                           title="深度学习之基于Django+YOLOv5商标识别" target="_blank">深度学习之基于Django+YOLOv5商标识别</a>
                        <span class="text-muted">Q1744828575</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/plotly/1.htm">plotly</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>欢迎大家点赞、收藏、关注、评论啦,由于篇幅有限,只展示了部分核心代码。文章目录一项目简介二、功能三、系统四.总结一项目简介  一、项目背景在数字化时代,商标作为企业的重要资产,其保护和管理显得尤为重要。然而,传统的商标识别方法往往依赖于人工审查,效率低下且容易出错。随着深度学习技术的不断发展,尤其是目标检测领域的进步,自动化、高精度的商标识别成为可能。本项目旨在利用DjangoWeb框架和YOLO</div>
                    </li>
                    <li><a href="/article/1883931080591994880.htm"
                           title="【机器学习】 自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测" target="_blank">【机器学习】 自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测</a>
                        <span class="text-muted">加德霍克</span>
<a class="tag" taget="_blank" href="/search/tensorflow/1.htm">tensorflow</a><a class="tag" taget="_blank" href="/search/%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92/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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%BD%9C%E4%B8%9A/1.htm">作业</a>
                        <div>一、使用tensorflow框架实现逻辑回归1.数据部分:首先自定义了一个简单的数据集,特征X是100个随机样本,每个样本一个特征,目标值y基于线性关系并添加了噪声。tensorflow框架不需要numpy数组转换为相应的张量,可以直接在模型中使用数据集。2.模型定义部分:方案1:model=tf.keras.Sequential([tf.keras.layers.Dense(1,input_sh</div>
                    </li>
                    <li><a href="/article/1883930072834961408.htm"
                           title="计算机网络——OSI和TCP/IP模型" target="_blank">计算机网络——OSI和TCP/IP模型</a>
                        <span class="text-muted">阿常11</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>OSI模型一、OSI模型概述OSI模型是一个理论框架,将网络通信分为七层,旨在提供一个通用的、国际化的网络通信标准,强调分层解耦和协议独立性。其特点如下:严格分层:每层功能明确。协议与实现分离:理论上任何协议可替换。二、OSI模型的七层结构(一)物理层(PhysicalLayer)功能:负责在物理介质传输比特流(0和1),即数据信号。相关设备及信号:网线、光纤、集线器;网卡的电压信号、Wi-Fi的</div>
                    </li>
                    <li><a href="/article/1883929064482336768.htm"
                           title="使用.NET 8构建高效的时间日期帮助类" target="_blank">使用.NET 8构建高效的时间日期帮助类</a>
                        <span class="text-muted">黄同学real</span>
<a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">后端开发</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>使用.NET8构建高效的时间日期帮助类在现代Web应用程序中,处理日期和时间是一个常见的需求。无论是记录日志、生成报告还是进行数据分析,正确处理日期和时间对于确保数据的准确性和一致性至关重要。本文将详细介绍如何使用ASP.NETCore和C#构建一个高效的时间日期帮助类,并展示其使用方法。技术栈.NET8:提供强大的API开发框架。C#:用于编写高效的业务逻辑。代码实现DateTimeHelper</div>
                    </li>
                                <li><a href="/article/21.htm"
                                       title="矩阵求逆(JAVA)利用伴随矩阵" target="_blank">矩阵求逆(JAVA)利用伴随矩阵</a>
                                    <span class="text-muted">qiuwanchi</span>
<a class="tag" taget="_blank" href="/search/%E5%88%A9%E7%94%A8%E4%BC%B4%E9%9A%8F%E7%9F%A9%E9%98%B5%E6%B1%82%E9%80%86%E7%9F%A9%E9%98%B5/1.htm">利用伴随矩阵求逆矩阵</a>
                                    <div>package gaodai.matrix;

import gaodai.determinant.DeterminantCalculation;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 矩阵求逆(利用伴随矩阵)
 * @author 邱万迟
 </div>
                                </li>
                                <li><a href="/article/148.htm"
                                       title="单例(Singleton)模式" target="_blank">单例(Singleton)模式</a>
                                    <span class="text-muted">aoyouzi</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%BC%8F/1.htm">模式</a><a class="tag" taget="_blank" href="/search/Singleton/1.htm">Singleton</a>
                                    <div>3.1           概述 如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式。这种情况在我们应用中经常碰到,例如缓存池,数据库连接池,线程池,一些应用服务实例等。在多线程环境中,为了保证实例的唯一性其实并不简单,这章将和读者一起探讨如何实现单例模式。 3.2</div>
                                </li>
                                <li><a href="/article/275.htm"
                                       title="[开源与自主研发]就算可以轻易获得外部技术支持,自己也必须研发" target="_blank">[开源与自主研发]就算可以轻易获得外部技术支持,自己也必须研发</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a>
                                    <div> 
 
      现在国内有大量的信息技术产品,都是通过盗版,免费下载,开源,附送等方式从国外的开发者那里获得的。。。。。。 
 
       虽然这种情况带来了国内信息产业的短暂繁荣,也促进了电子商务和互联网产业的快速发展,但是实际上,我们应该清醒的看到,这些产业的核心力量是被国外的</div>
                                </li>
                                <li><a href="/article/402.htm"
                                       title="页面有两个frame,怎样点击一个的链接改变另一个的内容" target="_blank">页面有两个frame,怎样点击一个的链接改变另一个的内容</a>
                                    <span class="text-muted">Array_06</span>
<a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/XHTML/1.htm">XHTML</a>
                                    <div><a src="地址"  targets="这里写你要操作的Frame的名字" />搜索 
然后你点击连接以后你的新页面就会显示在你设置的Frame名字的框那里 
 
targerts="",就是你要填写目标的显示页面位置 
===================== 
例如: 
 
 <frame src=&</div>
                                </li>
                                <li><a href="/article/529.htm"
                                       title="Struts2实现单个/多个文件上传和下载" target="_blank">Struts2实现单个/多个文件上传和下载</a>
                                    <span class="text-muted">oloz</span>
<a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/1.htm">文件上传</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a>
                                    <div>struts2单文件上传: 
    步骤01:jsp页面 
 
<!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data,不然就会以二进制文本上传到服务器端--> 
  <form action="fileUplo</div>
                                </li>
                                <li><a href="/article/656.htm"
                                       title="推荐10个在线logo设计网站" target="_blank">推荐10个在线logo设计网站</a>
                                    <span class="text-muted">362217990</span>
<a class="tag" taget="_blank" href="/search/logo/1.htm">logo</a>
                                    <div>在线设计Logo网站。 
1、http://flickr.nosv.org(这个太简单) 
2、http://www.logomaker.com/?source=1.5770.1 
3、http://www.simwebsol.com/ImageTool 
4、http://www.logogenerator.com/logo.php?nal=1&tpl_catlist[]=2 
5、ht</div>
                                </li>
                                <li><a href="/article/783.htm"
                                       title="jsp上传文件" target="_blank">jsp上传文件</a>
                                    <span class="text-muted">香水浓</span>
<a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/fileupload/1.htm">fileupload</a>
                                    <div>1. jsp上传 
 
Notice: 
1. form表单 method 属性必须设置为 POST 方法 ,不能使用 GET 方法 
2. form表单 enctype 属性需要设置为 multipart/form-data 
3. form表单 action 属性需要设置为提交到后台处理文件上传的jsp文件地址或者servlet地址。例如 uploadFile.jsp 程序文件用来处理上传的文</div>
                                </li>
                                <li><a href="/article/910.htm"
                                       title="我的架构经验系列文章 - 前端架构" target="_blank">我的架构经验系列文章 - 前端架构</a>
                                    <span class="text-muted">agevs</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/jQuer/1.htm">jQuer</a>
                                    <div>框架层面:近几年前端发展很快,前端之所以叫前端因为前端是已经可以独立成为一种职业了,js也不再是十年前的玩具了,以前富客户端RIA的应用可能会用flash/flex或是silverlight,现在可以使用js来完成大部分的功能,因此js作为一门前端的支撑语言也不仅仅是进行的简单的编码,越来越多框架性的东西出现了。越来越多的开发模式转变为后端只是吐json的数据源,而前端做所有UI的事情。MVCMV</div>
                                </li>
                                <li><a href="/article/1037.htm"
                                       title="android ksoap2 中把XML(DataSet) 当做参数传递" target="_blank">android ksoap2 中把XML(DataSet) 当做参数传递</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>我的android app中需要发送webservice ,于是我使用了 ksop2 进行发送,在测试过程中不是很顺利,不能正常工作.我的web service 请求格式如下     
     
[html]  
view plain 
copy       
 
 <Envelope xmlns="http://schemas.</div>
                                </li>
                                <li><a href="/article/1164.htm"
                                       title="使用Spring进行统一日志管理 + 统一异常管理" target="_blank">使用Spring进行统一日志管理 + 统一异常管理</a>
                                    <span class="text-muted">baalwolf</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>统一日志和异常管理配置好后,SSH项目中,代码以往散落的log.info() 和 try..catch..finally 再也不见踪影! 
统一日志异常实现类:    
[java]  
view plain 
copy       
 
 package com.pilelot.web.util;   
    
 impor</div>
                                </li>
                                <li><a href="/article/1291.htm"
                                       title="Android SDK 国内镜像" target="_blank">Android SDK 国内镜像</a>
                                    <span class="text-muted">BigBird2012</span>
<a class="tag" taget="_blank" href="/search/android+sdk/1.htm">android sdk</a>
                                    <div>一、镜像地址: 
1、东软信息学院的 Android SDK 镜像,比配置代理下载快多了。 
配置地址, http://mirrors.neusoft.edu.cn/configurations.we#android 
2、北京化工大学的: 
IPV4:ubuntu.buct.edu.cn  
IPV4:ubuntu.buct.cn 
IPV6:ubuntu.buct6.edu.cn 
</div>
                                </li>
                                <li><a href="/article/1418.htm"
                                       title="HTML无害化和Sanitize模块" target="_blank">HTML无害化和Sanitize模块</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/Linky/1.htm">Linky</a><a class="tag" taget="_blank" href="/search/Sanitize/1.htm">Sanitize</a>
                                    <div>一.ng-bind-html、ng-bind-html-unsafe 
        AngularJS非常注重安全方面的问题,它会尽一切可能把大多数攻击手段最小化。其中一个攻击手段是向你的web页面里注入不安全的HTML,然后利用它触发跨站攻击或者注入攻击。 
        考虑这样一个例子,假设我们有一个变量存</div>
                                </li>
                                <li><a href="/article/1545.htm"
                                       title="[Maven学习笔记二]Maven命令" target="_blank">[Maven学习笔记二]Maven命令</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>mvn compile 
compile编译命令将src/main/java和src/main/resources中的代码和配置文件编译到target/classes中,不会对src/test/java中的测试类进行编译 
MVN编译使用 
maven-resources-plugin:2.6:resources 
maven-compiler-plugin:2.5.1:compile 
&nbs</div>
                                </li>
                                <li><a href="/article/1672.htm"
                                       title="【Java命令二】jhat" target="_blank">【Java命令二】jhat</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Java%E5%91%BD%E4%BB%A4/1.htm">Java命令</a>
                                    <div>jhat用于分析使用jmap dump的文件,,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。 jhat默认开启监听端口7000的HTTP服务,jhat是Java Heap Analysis Tool的缩写 
1. 用法: 
[hadoop@hadoop bin]$ jhat -help

Usage:  jhat [-stack <bool&g</div>
                                </li>
                                <li><a href="/article/1799.htm"
                                       title="JBoss 5.1.0 GA:Error installing to Instantiated: name=AttachmentStore state=Desc" target="_blank">JBoss 5.1.0 GA:Error installing to Instantiated: name=AttachmentStore state=Desc</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>进到类似目录 server/default/conf/bootstrap,打开文件 profile.xml找到: Xml代码<bean  
  
name="AttachmentStore"  
class="org.jboss.system.server.profileservice.repository.AbstractAtta</div>
                                </li>
                                <li><a href="/article/1926.htm"
                                       title="写给初学者的6条网页设计安全配色指南" target="_blank">写给初学者的6条网页设计安全配色指南</a>
                                    <span class="text-muted">brotherlamp</span>
<a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/ui%E8%87%AA%E5%AD%A6/1.htm">ui自学</a><a class="tag" taget="_blank" href="/search/ui%E8%A7%86%E9%A2%91/1.htm">ui视频</a><a class="tag" taget="_blank" href="/search/ui%E6%95%99%E7%A8%8B/1.htm">ui教程</a><a class="tag" taget="_blank" href="/search/ui%E8%B5%84%E6%96%99/1.htm">ui资料</a>
                                    <div>网页设计中最基本的原则之一是,不管你花多长时间创造一个华丽的设计,其最终的角色都是这场秀中真正的明星——内容的衬托 
    我仍然清楚地记得我最早的一次美术课,那时我还是一个小小的、对凡事都充满渴望的孩子,我摆放出一大堆漂亮的彩色颜料。我仍然记得当我第一次看到原色与另一种颜色混合变成第二种颜色时的那种兴奋,并且我想,既然两种颜色能创造出一种全新的美丽色彩,那所有颜色</div>
                                </li>
                                <li><a href="/article/2053.htm"
                                       title="有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。写一个函数实现。复杂度是什么。" target="_blank">有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。写一个函数实现。复杂度是什么。</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                                    <div>

import java.util.Random;
import java.util.Set;
import java.util.TreeSet;

/**
 * http://weibo.com/1915548291/z7HtOF4sx
 * #面试题#有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。
 * 写一个函数实现。复杂度是什么</div>
                                </li>
                                <li><a href="/article/2180.htm"
                                       title="struts2获得request、session、application方式" target="_blank">struts2获得request、session、application方式</a>
                                    <span class="text-muted">chiangfai</span>
<a class="tag" taget="_blank" href="/search/application/1.htm">application</a>
                                    <div>1、与Servlet API解耦的访问方式。 
a.Struts2对HttpServletRequest、HttpSession、ServletContext进行了封装,构造了三个Map对象来替代这三种对象要获取这三个Map对象,使用ActionContext类。 
-----> 
  
package pro.action;
import java.util.Map;
imp</div>
                                </li>
                                <li><a href="/article/2307.htm"
                                       title="改变python的默认语言设置" target="_blank">改变python的默认语言设置</a>
                                    <span class="text-muted">chenchao051</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                                    <div> import sys
 sys.getdefaultencoding() 
 可以测试出默认语言,要改变的话,需要在python lib的site-packages文件夹下新建: 
sitecustomize.py, 这个文件比较特殊,会在python启动时来加载,所以就可以在里面写上: 
import sys
sys.setdefaultencoding('utf-8') 
&n</div>
                                </li>
                                <li><a href="/article/2434.htm"
                                       title="mysql导入数据load data infile用法" target="_blank">mysql导入数据load data infile用法</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%AF%BC%E5%85%A5%E6%95%B0%E6%8D%AE/1.htm">导入数据</a>
                                    <div>我们常常导入数据!mysql有一个高效导入方法,那就是load data infile 下面来看案例说明 
 
基本语法: 
load data  [low_priority] [local] infile 'file_name txt' [replace | ignore] 
into table tbl_name 
[fields 
[terminated by't'] 
[OPTI</div>
                                </li>
                                <li><a href="/article/2561.htm"
                                       title="phpexcel导入excel表到数据库简单入门示例" target="_blank">phpexcel导入excel表到数据库简单入门示例</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/Excel/1.htm">Excel</a>
                                    <div>  
跟导出相对应的,同一个数据表,也是将phpexcel类放在class目录下,将Excel表格中的内容读取出来放到数据库中 
<?php 
error_reporting(E_ALL); 
set_time_limit(0); 
?> 
<html> 
<head> 
<meta http-equiv="Content-Type" </div>
                                </li>
                                <li><a href="/article/2688.htm"
                                       title="22岁到72岁的男人对女人的要求" target="_blank">22岁到72岁的男人对女人的要求</a>
                                    <span class="text-muted">dcj3sjt126com</span>

                                    <div>22岁男人对女人的要求是:一,美丽,二,性感,三,有份具品味的职业,四,极有耐性,善解人意,五,该聪明的时候聪明,六,作小鸟依人状时尽量自然,七,怎样穿都好看,八,懂得适当地撒娇,九,虽作惊喜反应,但看起来自然,十,上了床就是个无条件荡妇。 32岁的男人对女人的要求,略作修定,是:一,入得厨房,进得睡房,二,不必服侍皇太后,三,不介意浪漫蜡烛配盒饭,四,听多过说,五,不再傻笑,六,懂得独</div>
                                </li>
                                <li><a href="/article/2815.htm"
                                       title="Spring和HIbernate对DDM设计的支持" target="_blank">Spring和HIbernate对DDM设计的支持</a>
                                    <span class="text-muted">e200702084</span>
<a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8B/1.htm">领域模型</a>
                                    <div>A:数据访问对象 
 
    DAO和资源库在领域驱动设计中都很重要。DAO是关系型数据库和应用之间的契约。它封装了Web应用中的数据库CRUD操作细节。另一方面,资源库是一个独立的抽象,它与DAO进行交互,并提供到领域模型的“业务接口”。 
   资源库使用领域的通用语言,处理所有必要的DAO,并使用领域理解的语言提供对领域模型的数据访问服务。</div>
                                </li>
                                <li><a href="/article/2942.htm"
                                       title="NoSql 数据库的特性比较" target="_blank">NoSql 数据库的特性比较</a>
                                    <span class="text-muted">geeksun</span>
<a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a>
                                    <div>Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。 
  
1. 数据模型 
作为Key-value型数据库,Redis也提供了键(Key)和值(Value)的映射关系。除了常规的数值或字符串,Redis的键值还可以是以下形式之一: 
Lists (列表) 
Sets</div>
                                </li>
                                <li><a href="/article/3069.htm"
                                       title="使用 Nginx Upload Module 实现上传文件功能" target="_blank">使用 Nginx Upload Module 实现上传文件功能</a>
                                    <span class="text-muted">hongtoushizi</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                                    <div>转载自: http://www.tuicool.com/wx/aUrAzm 
  
普通网站在实现文件上传功能的时候,一般是使用Python,Java等后端程序实现,比较麻烦。Nginx有一个Upload模块,可以非常简单的实现文件上传功能。此模块的原理是先把用户上传的文件保存到临时文件,然后在交由后台页面处理,并且把文件的原名,上传后的名称,文件类型,文件大小set到页面。下</div>
                                </li>
                                <li><a href="/article/3196.htm"
                                       title="spring-boot-web-ui及thymeleaf基本使用" target="_blank">spring-boot-web-ui及thymeleaf基本使用</a>
                                    <span class="text-muted">jishiweili</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/thymeleaf/1.htm">thymeleaf</a>
                                    <div>视图控制层代码demo如下: 
  
@Controller
@RequestMapping("/")
public class MessageController {
	private final MessageRepository messageRepository;

	@Autowired
	public MessageController(Mes</div>
                                </li>
                                <li><a href="/article/3323.htm"
                                       title="数据源架构模式之活动记录" target="_blank">数据源架构模式之活动记录</a>
                                    <span class="text-muted">home198979</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8%E8%AE%B0%E5%BD%95/1.htm">活动记录</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%98%A0%E5%B0%84/1.htm">数据映射</a>
                                    <div>hello!架构 
一、概念 
活动记录(Active Record):一个对象,它包装数据库表或视图中某一行,封装数据库访问,并在这些数据上增加了领域逻辑。 
对象既有数据又有行为。活动记录使用直截了当的方法,把数据访问逻辑置于领域对象中。 
  
二、实现简单活动记录 
活动记录在php许多框架中都有应用,如cakephp。 
<?php
/**
 * 行数据入口类
 *</div>
                                </li>
                                <li><a href="/article/3450.htm"
                                       title="Linux Shell脚本之自动修改IP" target="_blank">Linux Shell脚本之自动修改IP</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/Debian/1.htm">Debian</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a>
                                    <div>作为一名 
Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名、ip信息、网关等配置。修改成特定的主机名在维护和管理方面也比较方便。如下脚本用途为:修改ip和主机名等相关信息,可以根据实际需求修改,举一反三!   
#!/bin/sh
#auto Change ip netmask ga</div>
                                </li>
                                <li><a href="/article/3577.htm"
                                       title="开发环境搭建" target="_blank">开发环境搭建</a>
                                    <span class="text-muted">独浮云</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
                                    <div>       最近在开发过程中,经常出现MyEclipse内存溢出等错误,需要重启的情况,好麻烦。对于一般的JAVA+TOMCAT项目开发,其实没有必要使用重量级的MyEclipse,使用eclipse就足够了。尤其是开发机器硬件配置一般的人。 
  
      &n</div>
                                </li>
                                <li><a href="/article/3704.htm"
                                       title="操作日期和时间的工具类" target="_blank">操作日期和时间的工具类</a>
                                    <span class="text-muted">vipbooks</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7%E7%B1%BB/1.htm">工具类</a>
                                    <div>   大家好啊,好久没有来这里发文章了,今天来逛逛,分享一篇刚写不久的操作日期和时间的工具类,希望对大家有所帮助。 
 
 

/*
 * @(#)DataFormatUtils.java 2010-10-10
 * 
 * Copyright 2010 BianJing,All rights reserved.
 */
package test;

impor</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>