【JavaWeb项目】——外卖订餐系统用户购买餐品、查询购物车、取消购物车餐品操作

【JavaWeb项目】——外卖订餐系统用户购买餐品、查询购物车、取消购物车餐品操作_第1张图片

个人主页:【Y小夜】

作者简介:一位双非学校的大二学生,编程爱好者,

专注于基础和实战分享,欢迎私信咨询!

入门专栏:【MySQL,Java基础,Rust】

热门专栏:【Python,Javaweb,Vue框架】

感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️

目录

购买餐品

后端处理AddCarServlet部分

代码

解析

查询购物车

后端处理UshowCarServlet部分

代码

解析

前端界面showCar2.jsp部分

代码

解析

取消购物车餐品

后端处理DelCarServlet部分

代码

解析


购买餐品

后端处理AddCarServlet部分

代码

package com.dingcan.controller;

import com.dingcan.service.CarService;
import com.dingcan.service.Impl.CarServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "AddCarServlet", value = "/addCarServlet")
public class AddCarServlet extends HttpServlet {
    CarService carService=new CarServiceImpl();
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String cname=req.getParameter("fname");
        int cprice=Integer.parseInt(req.getParameter("fprice"));
        int cfid=Integer.parseInt(req.getParameter("fid"));
        int cuid= (int) req.getSession().getAttribute("uid1");
        int cdid=Integer.parseInt(req.getParameter("fdianid"));
        if(carService.addCar(cname,cprice,cfid,cuid,cdid))
        {
            resp.sendRedirect("ushowCarServlet");
        }
        else
        {
            resp.sendRedirect("fail.jsp");
        }

    }
}

解析

        这段Java代码是一个Servlet控制器,用于处理将新餐品添加到购物车的请求:

  1. 包声明:

    • package com.dingcan.controller;: 声明了这个类属于 com.dingcan.controller 包。
  2. 导入服务类:

    • 导入了 com.dingcan.service.CarService 接口及其实现类 com.dingcan.service.Impl.CarServiceImpl
  3. @WebServlet 注解:

    • @WebServlet(name = "AddCarServlet", value = "/addCarServlet"): 注解用于注册Servlet,定义了它的名称和URL映射。当访问 /addCarServlet 路径时,这个Servlet会被调用。
  4. 类定义:

    • public class AddCarServlet extends HttpServlet: 定义了一个名为 AddCarServlet 的类,它继承自 HttpServlet
  5. 成员变量:

    • CarService carService = new CarServiceImpl();: 创建了 CarService 接口的实现类 CarServiceImpl 的实例。
  6. service 方法:

    • @Override: 表示重写了父类的方法。
    • protected void service(HttpServletRequest req, HttpServletResponse resp): 这是Servlet的 service 方法,用于处理客户端的请求。
  7. 获取请求参数:

    • 从请求中获取商品名称 (cname)、价格 (cprice)、商品ID (cfid)、用户ID (cuid) 和店铺ID (cdid)。
  8. 从会话中获取用户ID:

    • int cuid = (int) req.getSession().getAttribute("uid1");: 从会话中安全地获取用户ID。
  9. 添加商品到购物车:

    • if (carService.addCar(cname, cprice, cfid, cuid, cdid)): 使用 carService 的 addCar 方法尝试添加商品到购物车。
  10. 重定向:

    • 如果添加成功,使用 resp.sendRedirect("ushowCarServlet") 重定向到 ushowCarServlet,这将展示添加成功的反馈或购物车列表。
    • 如果添加失败,使用 resp.sendRedirect("fail.jsp") 重定向到错误页面。
  11. 异常处理:

    • 方法声明中包含了 throws ServletException, IOException,表示这个方法可能会抛出 ServletException 和 IOException 异常。

    AddCarServlet 的主要作用是接收用户提交的商品信息,调用服务层方法添加商品到购物车,并根据操作结果重定向到相应页面。这个过程中,它利用了会话管理来获取当前登录用户的ID,并与用户提交的商品信息一起存储到数据库中。如果添加失败,可能需要添加额外的逻辑来提供反馈信息给用户。

查询购物车

后端处理UshowCarServlet部分

代码

package com.dingcan.controller;


import cn.hutool.db.Entity;
import com.dingcan.service.CarService;
import com.dingcan.service.Impl.CarServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet(name = "UshowCarServlet", value = "/ushowCarServlet")
public class UshowCarServlet extends HttpServlet {
    CarService carService=new CarServiceImpl();
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取session中的uid1
        int uid1= (int) req.getSession().getAttribute("uid1");
        List list=carService.uFindCar(uid1);
        if (list!=null){
            req.setAttribute("list",list);
            req.getRequestDispatcher("/u1/showCar2.jsp").forward(req,resp);
        }

    }
}

解析

        这段Java代码是一个Servlet控制器,用于展示用户购物车中的餐品信息:

  1. 包声明:

    • package com.dingcan.controller;: 声明了这个类属于 com.dingcan.controller 包。
  2. 导入相关类:

    • 导入了 cn.hutool.db.Entity 用于数据库操作。
    • 导入了 com.dingcan.service.CarService 接口及其实现类 com.dingcan.service.Impl.CarServiceImpl
  3. @WebServlet 注解:

    • @WebServlet(name = "UshowCarServlet", value = "/ushowCarServlet"): 注解用于注册Servlet,定义了它的名称和URL映射。当访问 /ushowCarServlet 路径时,这个Servlet会被调用。
  4. 类定义:

    • public class UshowCarServlet extends HttpServlet: 定义了一个名为 UshowCarServlet 的类,它继承自 HttpServlet
  5. 成员变量:

    • CarService carService = new CarServiceImpl();: 创建了 CarService 接口的实现类 CarServiceImpl 的实例。
  6. service 方法:

    • @Override: 表示重写了父类的方法。
    • protected void service(HttpServletRequest req, HttpServletResponse resp): 这是Servlet的 service 方法,用于处理客户端的请求。
  7. 获取会话属性:

    • int uid1 = (int) req.getSession().getAttribute("uid1");: 从会话中获取用户ID (uid1)。
  8. 查询数据库:

    • List list = carService.uFindCar(uid1);: 使用 carService 的 uFindCar 方法根据用户ID查询购物车中的商品信息。
  9. 检查查询结果:

    • if (list != null): 检查查询结果是否不为空。
  10. 设置请求属性:

    • req.setAttribute("list", list);: 将查询结果 list 设置为请求属性,这样就可以在JSP页面中通过 ${list} 访问这些数据。
  11. 请求转发:

    • req.getRequestDispatcher("/u1/showCar2.jsp").forward(req, resp);: 将请求转发到 /u1/showCar2.jsp 页面,携带请求属性。
  12. 异常处理:

    • 方法声明中包含了 throws ServletException, IOException,表示这个方法可能会抛出 ServletException 和 IOException 异常。

    UshowCarServlet 的主要作用是根据用户ID检索购物车中的商品信息,并将这些信息转发到 showCar2.jsp 页面进行展示。如果查询结果为空,则可能不会执行转发,这意味着在 showCar2.jsp 页面中需要对 list 可能为 null 的情况进行处理。使用 hutool 库的 Entity 类来处理数据库查询结果。这个Servlet通过转发请求到JSP页面,实现了MVC架构中的控制层功能。

前端界面showCar2.jsp部分

代码

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 20/6/2024
  Time: 下午10:38
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    展示商家1登入的信息
    
    
    


LOGO
餐名 价格 状态 操作
${car.cname} ${car.cprice} ${car.cstate == 1 ? "发货中" : "未发货"} 取消

解析

        这段代码是一个JSP页面,用于展示用户登录后的信息,特别是他们购物车中的商品信息:

  1. JSP注释:

    • 页面顶部的注释由IntelliJ IDEA自动生成,提供了创建者、日期和时间。
  2. 页面指令:

    • <%@ page contentType="text/html;charset=UTF-8" language="java" %>: 设置页面的MIME类型为HTML,字符集为UTF-8,脚本语言为Java。
    • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>: 引入JSTL核心库,使用c作为前缀。
  3. HTML结构:

    • : 根元素。
    • : 包含页面的元数据,如标题和样式链接。
    • </code>: 页面标题为“展示用户购物车的信息”。</li> </ul></li> <li> <p><strong>Bootstrap和自定义CSS</strong>:</p> <ul> <li><code><link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"></code>: 引入Bootstrap的CSS文件,用于页面样式。</li> <li><code><link href="css/uShow.css" rel="stylesheet"></code>: 引入自定义的CSS样式文件。</li> </ul></li> <li> <p><strong>页面内容</strong>:</p> <ul> <li><code><div class="first"></code>: 包含整个页面的主要内容。</li> <li><code><div class="one"></code>: 包含LOGO和系统名称。</li> <li><code><div class="two"></code>: 包含LOGO图片和系统名称标签。</li> <li><code><div class="three"></code>: 包含注销按钮,链接到<code>exitServlet</code>。</li> </ul></li> <li> <p><strong>导航菜单</strong>:</p> <ul> <li><code><div class="btn-group-vertical"></code>: 垂直排列的按钮组,包含不同商家和分类的链接。</li> </ul></li> <li> <p><strong>购物车商品列表</strong>:</p> <ul> <li><code><table class="table table-striped table-bordered table-condensed"></code>: 使用Bootstrap样式的表格,展示购物车中的商品信息。</li> <li><code><thead></code>: 表格的头部,包含列标题。</li> <li><code><tbody></code>: 表格的主体,使用JSTL的<code><c:forEach></code>标签循环遍历<code>list</code>集合。</li> </ul></li> <li> <p><strong>JSTL标签</strong>:</p> <ul> <li><code><c:forEach items="${list}" var="car"></code>: 用于遍历作为请求属性传递到页面的<code>list</code>集合。</li> </ul></li> <li> <p><strong>表格行</strong>:</p> <ul> <li><code><tr></code>: 表格的一行,用于显示单个商品的信息。</li> <li><code><td></code>: 表格单元格,显示商品的名称(<code>car.cname</code>)、价格(<code>car.cprice</code>)、状态。</li> </ul></li> <li> <p><strong>操作链接</strong>:</p> <ul> <li><code><a href="delCarServlet?cid=${car.cid}" class="btn btn-primary">取消</a></code>: 在操作列中,创建一个链接到<code>delCarServlet</code>的按钮,用于取消购物车中的某个商品。</li> </ul></li> <li> <p><strong>状态显示</strong>:</p> <ul> <li><code>${car.cstate == 1 ? "发货中" : "未发货"}</code>: 使用JSP表达式来显示商品的当前状态。</li> </ul></li> <li> <p><strong>Bootstrap类</strong>:</p> <ul> <li>页面使用了Bootstrap的类(如<code>btn</code>, <code>btn-primary</code>, <code>table-striped</code>, <code>table-bordered</code>, <code>table-condensed</code>, <code>warning</code>, <code>danger</code>)来增强表单的布局和样式。</li> </ul></li> <li> <p><strong>页面底部</strong>:</p> <ul> <li><code><script src="js/ucaidan.js"></script></code>: 引入JavaScript文件,可能用于页面的动态交互或效果。</li> </ul></li> </ol> <p>        这个JSP页面提供了一个用户购物车信息展示的用户界面,允许用户查看商品信息,并提供了取消商品的链接。使用Bootstrap框架增强了用户界面的友好性和响应性。</p> <h2 id="%F0%9F%8E%AF%E5%8F%96%E6%B6%88%E8%B4%AD%E7%89%A9%E8%BD%A6%E9%A4%90%E5%93%81">取消购物车餐品</h2> <h3 id="%F0%9F%98%8E%E5%90%8E%E7%AB%AF%E5%A4%84%E7%90%86DelCarServlet%E9%83%A8%E5%88%86">后端处理DelCarServlet部分</h3> <h4>代码</h4> <pre><code class="language-java">package com.dingcan.controller; import com.dingcan.service.CarService; import com.dingcan.service.Impl.CarServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(name = "DelCarServlet", value = "/delCarServlet") public class DelCarServlet extends HttpServlet { CarService carService=new CarServiceImpl(); @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { int cid=Integer.parseInt(req.getParameter("cid")); boolean b=carService.delCar(cid); if(b){ resp.sendRedirect("ushowCarServlet"); }else{ resp.sendRedirect("fail.jsp"); } } } </code></pre> <h4>解析</h4> <p>        这段Java代码是一个Servlet控制器,用于处理从用户购物车中删除商品的请求:</p> <ol> <li> <p><strong>包声明</strong>:</p> <ul> <li><code>package com.dingcan.controller;</code>: 声明了这个类属于 <code>com.dingcan.controller</code> 包。</li> </ul></li> <li> <p><strong>导入服务类</strong>:</p> <ul> <li>导入了 <code>com.dingcan.service.CarService</code> 接口及其实现类 <code>com.dingcan.service.Impl.CarServiceImpl</code>。</li> </ul></li> <li> <p><strong>@WebServlet 注解</strong>:</p> <ul> <li><code>@WebServlet(name = "DelCarServlet", value = "/delCarServlet")</code>: 注解用于注册Servlet,定义了它的名称和URL映射。当访问 <code>/delCarServlet</code> 路径时,这个Servlet会被调用。</li> </ul></li> <li> <p><strong>类定义</strong>:</p> <ul> <li><code>public class DelCarServlet extends HttpServlet</code>: 定义了一个名为 <code>DelCarServlet</code> 的类,它继承自 <code>HttpServlet</code>。</li> </ul></li> <li> <p><strong>成员变量</strong>:</p> <ul> <li><code>CarService carService = new CarServiceImpl();</code>: 创建了 <code>CarService</code> 接口的实现类 <code>CarServiceImpl</code> 的实例。</li> </ul></li> <li> <p><strong>service 方法</strong>:</p> <ul> <li><code>@Override</code>: 表示重写了父类的方法。</li> <li><code>protected void service(HttpServletRequest req, HttpServletResponse resp)</code>: 这是Servlet的 <code>service</code> 方法,用于处理客户端的请求。</li> </ul></li> <li> <p><strong>获取请求参数</strong>:</p> <ul> <li><code>int cid = Integer.parseInt(req.getParameter("cid"));</code>: 从请求中获取 <code>cid</code> 参数,即要删除的商品的唯一标识符,并转换为整数类型。</li> </ul></li> <li> <p><strong>删除商品</strong>:</p> <ul> <li><code>boolean b = carService.delCar(cid);</code>: 使用 <code>carService</code> 的 <code>delCar</code> 方法尝试从数据库中删除ID为 <code>cid</code> 的商品。</li> </ul></li> <li> <p><strong>重定向</strong>:</p> <ul> <li>如果删除成功 (<code>b</code> 为 <code>true</code>),使用 <code>resp.sendRedirect("ushowCarServlet")</code> 重定向到 <code>ushowCarServlet</code>,这将展示更新后的购物车列表。</li> <li>如果删除失败 (<code>b</code> 为 <code>false</code>),使用 <code>resp.sendRedirect("fail.jsp")</code> 重定向到错误页面。</li> </ul></li> <li> <p><strong>异常处理</strong>:</p> <ul> <li>方法声明中包含了 <code>throws ServletException, IOException</code>,表示这个方法可能会抛出 <code>ServletException</code> 和 <code>IOException</code> 异常。</li> </ul></li> </ol> <p><code>   <strong>DelCarServlet</strong></code><strong> 的主要作用是接收商品ID,调用服务层方法删除购物车中的商品,并根据操作结果重定向到相应页面。这个过程中,它利用了服务层提供的业务逻辑和数据访问对象来实现数据的持久化。如果删除失败,可能需要添加额外的逻辑来提供反馈信息给用户。</strong></p> <p style="text-align:center;"></p> <p style="text-align:center;"></p> <p style="text-align:center;"></p> </div> </div>������������������������������������������������������������������������������������������������������������������������������������������������ </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1830200444727685120"></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">你可能感兴趣的:(Javaweb开发,hive,hadoop,数据仓库,java,后端,前端框架,maven)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835113570208149504.htm" title="CesiumJS+SuperMap3D.js混用实现通视分析" target="_blank">CesiumJS+SuperMap3D.js混用实现通视分析</a> <span class="text-muted">SteveJi666</span> <a class="tag" taget="_blank" href="/search/WebGL/1.htm">WebGL</a><a class="tag" taget="_blank" href="/search/cesium/1.htm">cesium</a><a class="tag" taget="_blank" href="/search/EarthSDK/1.htm">EarthSDK</a><a class="tag" taget="_blank" href="/search/SuperMap/1.htm">SuperMap</a><a class="tag" taget="_blank" href="/search/3d/1.htm">3d</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/arcgis/1.htm">arcgis</a> <div>版本简介:cesium:1.99;Supermap3D:SuperMapiClientJavaScript11i(2023);官方下载文档链家:SuperMap技术资源中心|为您提供全面的在线技术服务示例参考:support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#analysissupport.supermap</div> </li> <li><a href="/article/1835112058253832192.htm" title="Java应用的数据库连接池连接池性能测试" target="_blank">Java应用的数据库连接池连接池性能测试</a> <span class="text-muted">微赚淘客机器人开发者联盟@聚娃科技</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/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应用的数据库连接池连接池性能测试大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!数据库连接池的性能测试是确保Java应用能够高效运行的关键步骤。性能测试可以帮助我们评估连接池在高并发条件下的表现,以及识别可能的性能瓶颈。本文将介绍如何对Java应用中的数据库连接池进行性能测试。性能测试的重要性性能测试对于数据库连接池至关重要,因为它可以:评估性能:确定连接</div> </li> <li><a href="/article/1835111238384840704.htm" title="2022年技术胖私藏工具分享 300+编程实用工具" target="_blank">2022年技术胖私藏工具分享 300+编程实用工具</a> <span class="text-muted">wudongyu</span> <div>2022年技术胖私藏工具分享300+编程实用工具Javascript工具Underscore.js一套完善的函数式编程的接口,更方便地在JavaScript中实现函数式编程https://underscorejs.org/fastclick用于消除物理点击和click移动浏览器上事件触发之间的300毫秒延迟https://github.com/ftlabs/fastclickLodash一致性、模</div> </li> <li><a href="/article/1835110923262586880.htm" title="MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现" target="_blank">MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现</a> <span class="text-muted">OEC小胖胖</span> <a class="tag" taget="_blank" href="/search/web%E5%90%8E%E7%AB%AF/1.htm">web后端</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>MyBatis如何将Mapper接口与其XML映射文件关联:深入原理与实现1.概述MyBatis是一个简单、灵活的持久层框架,它通过SQL语句将Java对象与数据库进行映射。MyBatis支持基于XML和注解的配置方式。在实际开发中,XML映射文件与Mapper接口的关联是MyBatis的核心功能之一。通过这种关联,开发者可以在Mapper接口中定义方法,并在XML文件中编写SQL语句,从而实现数</div> </li> <li><a href="/article/1835110293278126080.htm" title="史上最全的maven的pom.xml文件详解" target="_blank">史上最全的maven的pom.xml文件详解</a> <span class="text-muted">Meta999</span> <a class="tag" taget="_blank" href="/search/Maven/1.htm">Maven</a> <div>注:详解文件中,用红色进行标注的是平常项目中常用的配置节点。要详细学习!转载的,太经典了、、、、欢迎收藏xxxxxxxxxxxx4.0.0xxxxxxjar1.0-SNAPSHOTxxx-mavenhttp://maven.apache.orgAmavenprojecttostudymaven.jirahttp://jira.baidu.com/banseonDemobanseon@126.com</div> </li> <li><a href="/article/1835108149615489024.htm" title="Mybatis实现员工管理系统" target="_blank">Mybatis实现员工管理系统</a> <span class="text-muted">wu1113_</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>文章目录1.案例需求2.编程思路3.案例源码4.小结1.案例需求在上次做的父子模块的maven以及Ajax实现人工管理系统的基础上使用Mybatis实现员工管理系统的增删改查,具体运行效果如下:2.编程思路Mybatis框架的一般执行流程:创建MyBatis配置文件mybatis-config.xml在里面加载数据源、事务等,管理映射文件创建需要的映射文件mapper.xml,用于映射表中列和实体</div> </li> <li><a href="/article/1835105882648702976.htm" title="详解 Pandas 的 query 函数" target="_blank">详解 Pandas 的 query 函数</a> <span class="text-muted">文刀小桂</span> <a class="tag" taget="_blank" href="/search/Pandas/1.htm">Pandas</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Pandas的query()方法能够使用字符串表达式来筛选DataFrame数据的行,类似于SQL的where子句importpandasaspddf=pd.DataFrame({"A":[1,3,5,6,7],"B":[11,10,9,8,12],"C":["hello","pandas","python","java","shell"],"D":["2024-02-01","2023-12-1</div> </li> <li><a href="/article/1835104243913158656.htm" title="Java中将 File对象转MultipartFile对象 File >>> MultipartFile" target="_blank">Java中将 File对象转MultipartFile对象 File >>> MultipartFile</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Java中将File类型的对象转换为MultipartFile类型的对象所需要的包:importjava.io.FileInputStream;importorg.springframework.web.multipart.MultipartFile;实现代码://传入一个File对象,获得一个转换后的MultipartFile对象publicMultipartFilegetMultipartFi</div> </li> <li><a href="/article/1835103990602362880.htm" title="java ajax_Java Ajax入门" target="_blank">java ajax_Java Ajax入门</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/ajax/1.htm">ajax</a> <div>接下来整理一下Ajax相关的内容,AJAX(asynchronousjsandxml),即异步的JavaScript和xml,它的主要作用就是让页面不必等待服务器返回整个页面信息,而可以通过异步的方式给服务器发送数据和获取数据,对页面进行局部刷新,是一种提高用户体验的技术。同步和异步同步和异步的主要区别如下;(1)同步:一个响应结束后才能发送下一个请求,页面在请求期间不能做其他事情。(2)异步:不</div> </li> <li><a href="/article/1835101343581302784.htm" title="Java File与MultipartFile互转" target="_blank">Java File与MultipartFile互转</a> <span class="text-muted">我在Java摸滚打趴</span> <a class="tag" taget="_blank" href="/search/Java%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E7%B1%BB/1.htm">Java开发工具类</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>pom中添加依赖commons-fileuploadcommons-fileupload1.4File转MultipartFile/***File转MultipartFile**@paramfile*@return*/publicstaticMultipartFilecreateFileItem(Filefile){FileItemFactoryfactory=newDiskFileItemFac</div> </li> <li><a href="/article/1835100839690203136.htm" title="Java url转MultipartFile inputStream转File file转multipartFile" target="_blank">Java url转MultipartFile inputStream转File file转multipartFile</a> <span class="text-muted">Abel_JiaWei</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Javaurl转MultipartFileinputStream转Filefile转multipartFile/***url转MultipartFile*@paramurl*@return*@throwsException*/publicstaticMultipartFileurlToMultipartFile(Stringurl)throwsException{Filefile=null;Mul</div> </li> <li><a href="/article/1835099579717087232.htm" title="JavaScript 基础 - 第15天" target="_blank">JavaScript 基础 - 第15天</a> <span class="text-muted">+码农快讯+</span> <a class="tag" taget="_blank" href="/search/JavaScript%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">JavaScript学习笔记</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录JavaScript基础-第15天深浅拷贝浅拷贝深拷贝通过JSON序列化实现js库lodash实现深拷贝通过递归实现深拷贝异常处理throwtry...catchdebugger处理this改变thiscallapplybindthis指向性能优化防抖(debounce)手写防抖函数节流(throttle)手写节流函数JavaScript基础-第15天深浅拷贝浅拷贝浅拷贝:把对象拷贝给一个</div> </li> <li><a href="/article/1835099327492616192.htm" title="JavaScript 基础 - 第13天" target="_blank">JavaScript 基础 - 第13天</a> <span class="text-muted">+码农快讯+</span> <a class="tag" taget="_blank" href="/search/JavaScript%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">JavaScript学习笔记</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>文章目录JavaScript基础-第13天深入对象创建对象三种方式构造函数new实例化过程实例成员&静态成员实例成员静态成员一切皆对象内置构造函数ObjectArrayStringNumberJavaScript基础-第13天了解面向对象编程的基础概念及构造函数的作用,体会JavaScript一切皆对象的语言特征,掌握常见的对象属性和方法的使用。深入对象内置构造函数综合案例深入对象了解面向对象的基</div> </li> <li><a href="/article/1835097184824029184.htm" title="【Java】如何将二进制转换成MultipartFile" target="_blank">【Java】如何将二进制转换成MultipartFile</a> <span class="text-muted">Mxin5</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>业务场景:前端发送请求到后端进行文件上传,后端接收文件并调用第三方接口进行文件处理,响应格式为二进制,然后我们需要将二进制进行转换为MultipartFile进行文件上传。如果你想要将File转换成MultipartFile,可以参考:【Java】如何将File转换成MultipartFile_javafile转multipartfile_MXin5的博客-CSDN博客1.传递二进制respons</div> </li> <li><a href="/article/1835094160550490112.htm" title="Android-悬浮窗功能的实现(附Java、KT实现源码)(1)" target="_blank">Android-悬浮窗功能的实现(附Java、KT实现源码)(1)</a> <span class="text-muted">egrhef</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>//获取服务的操作对象valbinder=serviceasFloatWinfowServices.MyBinderbinder.service}overridefunonServiceDisconnected(name:ComponentName){}}overridefunonActivityResult(requestCode:Int,resultCode:Int,data:Intent){</div> </li> <li><a href="/article/1835093025827680256.htm" title="【Java将File完美转为MultipartFile】:亲测有效" target="_blank">【Java将File完美转为MultipartFile】:亲测有效</a> <span class="text-muted">阿火~</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>由于multipartFile有很多有用的api,但是有时候我们接收到前台的参数是文件名和文件内容,而不是文件,此时不能使用multipartFile接收,导致处理起来很不方便,比如我用minio上传文件,minio需要multipartFile类型的文件,而我拿到前端传来的文件名和文件内容只能自己通过File类创建文件,所以如果想用multipartFile类型就需要自己转换,然而天不遂人愿,并</div> </li> <li><a href="/article/1835091010678517760.htm" title="js的书写位置和css的书写位置的区别?为什么要这样写?" target="_blank">js的书写位置和css的书写位置的区别?为什么要这样写?</a> <span class="text-muted">李是啥也不会</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JavaScript和CSS的书写位置有以下区别:CSS通常写在标签中,或者在外部样式表文件中()。CSS主要用于控制页面的视觉样式和布局,通常在HTML文件的部分引入,以确保在页面渲染时样式已经加载完毕,从而避免样式闪烁。JavaScript通常写在标签中,或者在外部脚本文件中()。JavaScript用于添加页面的动态行为和交互。一般建议将JavaScript放在HTML文件的末尾(标签之前)</div> </li> <li><a href="/article/1835091011232165888.htm" title="基于Google authentic实现的双因子登录认证系统前后台基于SSMP+Vue+Element(解决SecureRandom造成的服务器请求缓慢)" target="_blank">基于Google authentic实现的双因子登录认证系统前后台基于SSMP+Vue+Element(解决SecureRandom造成的服务器请求缓慢)</a> <span class="text-muted">Tate_Brown</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/JAVA/1.htm">JAVA</a><a class="tag" taget="_blank" href="/search/IDEA/1.htm">IDEA</a><a class="tag" taget="_blank" href="/search/DEBUG/1.htm">DEBUG</a><a class="tag" taget="_blank" href="/search/VUE/1.htm">VUE</a> <div>用md5两次加盐密码,可以灵活更换算法--直接上代码地址:JAVA后台:https://github.com/TateBrownJava/TwoFALogindemoBackendVue前端:https://github.com/TateBrownJava/TwoFALoginDemofrontend-------------------------------------------------</div> </li> <li><a href="/article/1835089877234970624.htm" title="SpringBoot2:web开发常用功能实现及原理解析-整合EasyExcel实现Excel导入导出功能" target="_blank">SpringBoot2:web开发常用功能实现及原理解析-整合EasyExcel实现Excel导入导出功能</a> <span class="text-muted">生产队队长</span> <a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/All/1.htm">All</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</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、工程包结构主要是这5个Java类2、导入EasyExcel包这里同时贴出其他相关springboot的基础包org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-devtoolsruntimetrueorg.springframework.bootspring-boot-config</div> </li> <li><a href="/article/1835088110564765696.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/%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>Java中的网络编程主要涉及使用Socket类进行网络通信,以及理解各种网络协议。以下是一些关键概念和示例代码,帮助您入门。1.网络协议Java支持多种网络协议,最常用的包括:TCP(传输控制协议):面向连接的协议,确保数据的可靠传输。UDP(用户数据报协议):无连接的协议,适用于对速度要求高但对可靠性要求低的应用。网络通信模型通常指的是OSI(开放系统互联)模型,它将网络通信分为七个层次。每一层</div> </li> <li><a href="/article/1835087354029764608.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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、多态前言1.为什么要使用多态Java中使用多态的主要目的是提高代码的可重用性和扩展性,使得代码更加灵活和易于维护。通过多态,我们可以将不同的对象看做是同一种类型,从而使得我们可以使用同一种接口来操作这些对象,而不必关心具体的实现细节。2.多态概念当父类的引用所指向的子类对象引用指向的对象不一样时。调用重写的方法,所表现出来的行为是不一样的,我们把这种思想叫做多态。上面所说的可能大家会觉得有点抽</div> </li> <li><a href="/article/1835087354495332352.htm" title="Java之String类" target="_blank">Java之String类</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/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>一、String类常用方法1.引用类型的比较我们知道在Java中两个引用遍历是不能用"=="号来比较的,而String类重写了父类objects的equals方法,实现了引用类型的比较例子importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Stringstr1="helloworld";Strings</div> </li> <li><a href="/article/1835085634478370816.htm" title="Java String 文字(Literal)和 对象(Object)初始化" target="_blank">Java String 文字(Literal)和 对象(Object)初始化</a> <span class="text-muted">HoneyMoose</span> <div>当我们创建String对象的时候,如果使用new()的方式来创建一个String对象,JVM将会每次都会在heap内存中为我们创建的String对象开辟一个存储空间来进行存储。但是,如果我们使用赋值方式创建String对象的话,JVM首先将会对我们赋的值到StringPool中进行查找,如果找到的话,就返回已经存在这个值的引用。如果没有找到,就创建一个新的String对象并且返回这个创建对象的引用</div> </li> <li><a href="/article/1835084202329075712.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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、抽象类1.抽象类概念如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类,比如动物类。没有实际工作的方法,我们可以把它设计成一个抽象方法,包含抽象方法的类我们称为抽象类。2.抽象类语法在Java中,一个类如果被abstract修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。//抽象类:被abstract修饰的类publicabs</div> </li> <li><a href="/article/1835081554641121280.htm" title="多线程相关面试题(2024大厂高频面试题系列)" target="_blank">多线程相关面试题(2024大厂高频面试题系列)</a> <span class="text-muted">小橘子831</span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E9%9D%A2%E8%AF%95/1.htm">后端面试</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>1、聊一下并行和并发有什么区别?并发是同一时间应对多件事情的能力,多个线程轮流使用一个或多个CPU并行是同一时间动手做多件事情的能力,4核CPU同时执行4个线程2、说一下线程和进程的区别?进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间3、如果在java中创建线程有哪些方式?在java中一共有四种常见的创建方式,</div> </li> <li><a href="/article/1835080168381706240.htm" title="Java多线程相关面试题整理" target="_blank">Java多线程相关面试题整理</a> <span class="text-muted">长河落日袁同学</span> <a class="tag" taget="_blank" href="/search/%E4%B8%8D%E7%A7%AF%E8%B7%AC%E6%AD%A5%E6%97%A0%E4%BB%A5%E8%87%B3%E5%8D%83%E9%87%8C/1.htm">不积跬步无以至千里</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E9%94%81/1.htm">锁</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>目录1.什么是线程和进程?线程与进程有什么区别?那什么是上下文切换?进程间怎么通信?什么是用户线程和守护线程?2.并行和并发的区别?3.创建线程的几种方式?Runnable接口和Callable接口的区别?run()方法和start()有什么区别?4.Java线程状态和方法?描述线程的生命周期?一个线程两次调用start()方法会出现什么情况?sleep()和wait()方法的区别是什么?5.并发</div> </li> <li><a href="/article/1835073615754784768.htm" title="MyBatis 方法重载的陷阱及解决方案" target="_blank">MyBatis 方法重载的陷阱及解决方案</a> <span class="text-muted">molashaonian</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/%E6%96%B9%E6%B3%95%E9%87%8D%E8%BD%BD/1.htm">方法重载</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E5%B8%B8/1.htm">异常</a><a class="tag" taget="_blank" href="/search/%E6%96%B9%E6%B3%95%E5%90%8D%E7%9B%B8%E5%90%8C/1.htm">方法名相同</a> <div>在使用MyBatis进行开发时,尤其是使用注解模式(如@Select、@Insert等)时,开发者常常会遇到这样一个问题:为什么我的方法重载不能正常工作?即使在Java中允许方法名相同但参数不同的重载,MyBatis在处理注解的SQL方法时却并不支持这种方式。这篇文章将深入探讨MyBatis的这个特性及如何规避相关的坑。问题背景在标准的Java开发中,方法重载是一种常见的设计模式。方法重载允许我们</div> </li> <li><a href="/article/1835069830089240576.htm" title="Java面试题--JVM大厂篇之深入解析JVM中的Serial GC:工作原理与代际区别" target="_blank">Java面试题--JVM大厂篇之深入解析JVM中的Serial GC:工作原理与代际区别</a> <span class="text-muted">青云交</span> <a class="tag" taget="_blank" href="/search/Java%E5%A4%A7%E5%8E%82%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">Java大厂面试题</a><a class="tag" taget="_blank" href="/search/Java%E8%99%9A%E6%8B%9F%E6%9C%BA%EF%BC%88JVM%EF%BC%89%E4%B8%93%E6%A0%8F/1.htm">Java虚拟机(JVM)专栏</a><a class="tag" taget="_blank" href="/search/Java%E6%8A%80%E6%9C%AF%E6%A0%88/1.htm">Java技术栈</a><a class="tag" taget="_blank" href="/search/Serial/1.htm">Serial</a><a class="tag" taget="_blank" href="/search/GC%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86/1.htm">GC工作原理</a><a class="tag" taget="_blank" href="/search/%E5%B9%B4%E8%BD%BB%E4%BB%A3%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6Minor/1.htm">年轻代垃圾回收Minor</a><a class="tag" taget="_blank" href="/search/GC/1.htm">GC</a><a class="tag" taget="_blank" href="/search/%E8%80%81%E5%B9%B4%E4%BB%A3%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">老年代垃圾回收</a><a class="tag" taget="_blank" href="/search/MajorGC/1.htm">MajorGC</a><a class="tag" taget="_blank" href="/search/FullGC/1.htm">FullGC</a><a class="tag" taget="_blank" href="/search/%E5%B9%B4%E8%BD%BB%E4%BB%A3%E5%92%8C%E8%80%81%E5%B9%B4%E4%BB%A3%E7%9A%84%E5%8C%BA%E5%88%AB/1.htm">年轻代和老年代的区别</a><a class="tag" taget="_blank" href="/search/SerialGC%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8/1.htm">SerialGC垃圾收集器</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%BA%BF%E7%A8%8B%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8/1.htm">单线程垃圾收集器</a> <div>目录引言:正文:一、SerialGC工作原理年轻代垃圾回收(MinorGC):老年代垃圾回收(MajorGC或FullGC):二、年轻代和老年代的区别年轻代(YoungGeneration):老年代(OldGeneration):结束语:引言:Java虚拟机(JVM)作为Java程序的运行环境,其性能和稳定性在很大程度上依赖于垃圾收集器(GC)的效率。SerialGC是JVM中最古老也是最简单的一</div> </li> <li><a href="/article/1835065923262836736.htm" title="【网络安全】漏洞挖掘:php代码审计" target="_blank">【网络安全】漏洞挖掘:php代码审计</a> <span class="text-muted">秋说</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/1.htm">漏洞挖掘</a> <div>未经许可,不得转载。文章目录正文正文在应用程序中,通过一个JavaScript注释发现了一个备份ZIP文件。解压后,获取了应用程序的代码,其中包含如下代码片段:代码首先检查变量$action是否等于'convert',如果是,则继续执行。随后对传入的变量$data使用trim()函数去除两端空白字符,并使用eval()函数执行$data的内容。显然,代码对$data没有进行任何过滤或验证,因此可以</div> </li> <li><a href="/article/1835065671130640384.htm" title="前端基础面试题·第三篇——JavaScript(其二)" target="_blank">前端基础面试题·第三篇——JavaScript(其二)</a> <span class="text-muted">DT——</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95/1.htm">前端面试</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>1.深浅拷贝1.浅拷贝浅拷贝会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝就是改引用类型的地址。//常见的浅拷贝1.Object.assign({},obj)//对象浅拷贝assign⽅法可以⽤于处理数组,不过会把数组视为对象,⽐如这⾥会把⽬标数组视为是属性为0、1、2的对象,所以源数组的0、1属性的值覆盖了⽬标对</div> </li> <li><a href="/article/40.htm" title="java线程Thread和Runnable区别和联系" target="_blank">java线程Thread和Runnable区别和联系</a> <span class="text-muted">zx_code</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/Runnable/1.htm">Runnable</a> <div>我们都晓得java实现线程2种方式,一个是继承Thread,另一个是实现Runnable。 模拟窗口买票,第一例子继承thread,代码如下 package thread; public class ThreadTest { public static void main(String[] args) { Thread1 t1 = new Thread1(</div> </li> <li><a href="/article/167.htm" title="【转】JSON与XML的区别比较" target="_blank">【转】JSON与XML的区别比较</a> <span class="text-muted">丁_新</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。 XML是标</div> </li> <li><a href="/article/294.htm" title="c++ 实现五种基础的排序算法" target="_blank">c++ 实现五种基础的排序算法</a> <span class="text-muted">CrazyMizzz</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>#include<iostream> using namespace std; //辅助函数,交换两数之值 template<class T> void mySwap(T &x, T &y){ T temp = x; x = y; y = temp; } const int size = 10; //一、用直接插入排</div> </li> <li><a href="/article/421.htm" title="我的软件" target="_blank">我的软件</a> <span class="text-muted">麦田的设计者</span> <a class="tag" taget="_blank" href="/search/%E6%88%91%E7%9A%84%E8%BD%AF%E4%BB%B6/1.htm">我的软件</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E4%B9%90%E7%B1%BB/1.htm">音乐类</a><a class="tag" taget="_blank" href="/search/%E5%A8%B1%E4%B9%90/1.htm">娱乐</a><a class="tag" taget="_blank" href="/search/%E6%94%BE%E6%9D%BE/1.htm">放松</a> <div>     这是我写的一款app软件,耗时三个月,是一个根据央视节目开门大吉改变的,提供音调,猜歌曲名。1、手机拥有者在android手机市场下载本APP,同意权限,安装到手机上。2、游客初次进入时会有引导页面提醒用户注册。(同时软件自动播放背景音乐)。3、用户登录到主页后,会有五个模块。a、点击不胫而走,用户得到开门大吉首页部分新闻,点击进入有新闻详情。b、</div> </li> <li><a href="/article/548.htm" title="linux awk命令详解" target="_blank">linux awk命令详解</a> <span class="text-muted">被触发</span> <a class="tag" taget="_blank" href="/search/linux+awk/1.htm">linux awk</a> <div>awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然后输出 awk命令形式: awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file [-F|-f|-v]大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=val</div> </li> <li><a href="/article/675.htm" title="各种语言比较" target="_blank">各种语言比较</a> <span class="text-muted">_wy_</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a> <div>                    Java Ruby PHP 擅长领域                  </div> </li> <li><a href="/article/802.htm" title="oracle 中数据类型为clob的编辑" target="_blank">oracle 中数据类型为clob的编辑</a> <span class="text-muted">知了ing</span> <a class="tag" taget="_blank" href="/search/oracle+clob/1.htm">oracle clob</a> <div>public void updateKpiStatus(String kpiStatus,String taskId){ Connection dbc=null; Statement stmt=null; PreparedStatement ps=null; try { dbc = new DBConn().getNewConnection(); //stmt = db</div> </li> <li><a href="/article/929.htm" title="分布式服务框架 Zookeeper -- 管理分布式环境中的数据" target="_blank">分布式服务框架 Zookeeper -- 管理分布式环境中的数据</a> <span class="text-muted">矮蛋蛋</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a> <div>原文地址: http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ 安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两</div> </li> <li><a href="/article/1056.htm" title="tomcat数据源" target="_blank">tomcat数据源</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a> <div>数据库 JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。 没有使用JNDI时我用要这样连接数据库: 03.  Class.forName("com.mysql.jdbc.Driver");  04.  conn</div> </li> <li><a href="/article/1183.htm" title="遍历的方法" target="_blank">遍历的方法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E9%81%8D%E5%8E%86/1.htm">遍历</a> <div>                                                      遍历 在java的泛</div> </li> <li><a href="/article/1310.htm" title="linux查看硬件信息的命令" target="_blank">linux查看硬件信息的命令</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>linux查看硬件信息的命令 一.查看CPU: cat /proc/cpuinfo   二.查看内存: free   三.查看硬盘: df   linux下查看硬件信息 1、lspci 列出所有PCI 设备; lspci - list all PCI devices:列出机器中的PCI设备(声卡、显卡、Modem、网卡、USB、主板集成设备也能</div> </li> <li><a href="/article/1437.htm" title="java常见的ClassNotFoundException" target="_blank">java常见的ClassNotFoundException</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory   添加包common-logging.jar2.java.lang.ClassNotFoundException: javax.transaction.Synchronization    </div> </li> <li><a href="/article/1564.htm" title="【Gson五】日期对象的序列化和反序列化" target="_blank">【Gson五】日期对象的序列化和反序列化</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/1.htm">反序列化</a> <div>对日期类型的数据进行序列化和反序列化时,需要考虑如下问题:   1. 序列化时,Date对象序列化的字符串日期格式如何 2. 反序列化时,把日期字符串序列化为Date对象,也需要考虑日期格式问题 3. Date A -> str -> Date B,A和B对象是否equals   默认序列化和反序列化     import com</div> </li> <li><a href="/article/1691.htm" title="【Spark八十六】Spark Streaming之DStream vs. InputDStream" target="_blank">【Spark八十六】Spark Streaming之DStream vs. InputDStream</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Stream/1.htm">Stream</a> <div>  1. DStream的类说明文档:   /** * A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous * sequence of RDDs (of the same type) representing a continuous st</div> </li> <li><a href="/article/1818.htm" title="通过nginx获取header信息" target="_blank">通过nginx获取header信息</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx+header/1.htm">nginx header</a> <div>1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面, if ( $http_cookie ~* "(.*)$") {         set $all_cookie $1; }     变量$all_cookie就获得了cookie的值,可以用于运算了 </div> </li> <li><a href="/article/1945.htm" title="java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999" target="_blank">java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984 写了个java版的: public class Print_1_To_NDigit { /** * Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999 * 1.使用字符串</div> </li> <li><a href="/article/2072.htm" title="Netty源码学习-ReplayingDecoder" target="_blank">Netty源码学习-ReplayingDecoder</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/netty/1.htm">netty</a> <div>ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看 http://bylijinnan.iteye.com/blog/1982618 API说,ReplayingDecoder简化了操作,比如: FrameDecoder在decode时,需要判断数据是否接收完全: public class IntegerH</div> </li> <li><a href="/article/2199.htm" title="js特殊字符过滤" target="_blank">js特殊字符过滤</a> <span class="text-muted">cngolon</span> <a class="tag" taget="_blank" href="/search/js%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6/1.htm">js特殊字符</a><a class="tag" taget="_blank" href="/search/js%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%E8%BF%87%E6%BB%A4/1.htm">js特殊字符过滤</a> <div>1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号function stripscript(s) {    var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()&mdash;—|{}【】‘;:”“'。,、?]"</div> </li> <li><a href="/article/2326.htm" title="hibernate使用sql查询" target="_blank">hibernate使用sql查询</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div> import java.util.Iterator; import java.util.List; import java.util.Map; import org.hibernate.Hibernate; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.Transa</div> </li> <li><a href="/article/2453.htm" title="linux shell脚本中切换用户执行命令方法" target="_blank">linux shell脚本中切换用户执行命令方法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E4%BB%A4/1.htm">命令</a><a class="tag" taget="_blank" href="/search/%E5%88%87%E6%8D%A2%E7%94%A8%E6%88%B7/1.htm">切换用户</a> <div>经常在写shell脚本时,会碰到要以另外一个用户来执行相关命令,其方法简单记下:   1、执行单个命令:su - user -c "command" 如:下面命令是以test用户在/data目录下创建test123目录 [root@slave19 /data]# su - test -c "mkdir /data/test123" </div> </li> <li><a href="/article/2580.htm" title="好的代码里只要一个 return 语句" target="_blank">好的代码里只要一个 return 语句</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/return/1.htm">return</a> <div>别再这样写了:public boolean foo() {    if (true) {         return true;     } else {          return false;    </div> </li> <li><a href="/article/2707.htm" title="Android动画效果学习" target="_blank">Android动画效果学习</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>1、透明动画效果 方法一:代码实现 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, fals</div> </li> <li><a href="/article/2834.htm" title="linux复习笔记之bash shell (4)管道命令" target="_blank">linux复习笔记之bash shell (4)管道命令</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/linux%E7%AE%A1%E9%81%93%E5%91%BD%E4%BB%A4%E6%B1%87%E6%80%BB/1.htm">linux管道命令汇总</a><a class="tag" taget="_blank" href="/search/linux%E7%AE%A1%E9%81%93%E5%91%BD%E4%BB%A4/1.htm">linux管道命令</a><a class="tag" taget="_blank" href="/search/linux%E5%B8%B8%E7%94%A8%E7%AE%A1%E9%81%93%E5%91%BD%E4%BB%A4/1.htm">linux常用管道命令</a> <div>转载请出自出处: http://eksliang.iteye.com/blog/2105461     bash命令执行的完毕以后,通常这个命令都会有返回结果,怎么对这个返回的结果做一些操作呢?那就得用管道命令‘|’。     上面那段话,简单说了下管道命令的作用,那什么事管道命令呢?     答:非常的经典的一句话,记住了,何为管</div> </li> <li><a href="/article/2961.htm" title="Android系统中自定义按键的短按、双击、长按事件" target="_blank">Android系统中自定义按键的短按、双击、长按事件</a> <span class="text-muted">gqdy365</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>在项目中碰到这样的问题: 由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成: 1、单击事件:就是普通key的单击; 2、双击事件:500ms内同一按键单击两次; 3、长按事件:同一按键长按超过1000ms(系统中长按事件为500ms); 4、组合按键:两个以上按键同时按住; </div> </li> <li><a href="/article/3088.htm" title="asp.net获取站点根目录下子目录的名称" target="_blank">asp.net获取站点根目录下子目录的名称</a> <span class="text-muted">hvt</span> <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/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a><a class="tag" taget="_blank" href="/search/Web+Forms/1.htm">Web Forms</a> <div>使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下: <asp:ListBox runat="server" ID="lbKeleyiFolder" />   那么在页面上显示根目录子文件夹的代码如下: string[] m_sub</div> </li> <li><a href="/article/3215.htm" title="Eclipse程序员要掌握的常用快捷键" target="_blank">Eclipse程序员要掌握的常用快捷键</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/%E5%BF%AB%E6%8D%B7%E9%94%AE/1.htm">快捷键</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>  判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。   曾有人在豆瓣评 《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个 程序员图书列表,目的也就是通过读书,让程序员变懒。  写道 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可</div> </li> <li><a href="/article/3342.htm" title="c++编程随记" target="_blank">c++编程随记</a> <span class="text-muted">lx.asymmetric</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div> 为了字体更好看,改变了格式……   &&运算符:   #include<iostream> using namespace std; int main(){      int a=-1,b=4,k;      k=(++a<0)&&!(b--</div> </li> <li><a href="/article/3469.htm" title="linux标准IO缓冲机制研究" target="_blank">linux标准IO缓冲机制研究</a> <span class="text-muted">音频数据</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,</div> </li> <li><a href="/article/3596.htm" title="随想 生活" target="_blank">随想 生活</a> <span class="text-muted">暗黑小菠萝</span> <a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%B4%BB/1.htm">生活</a> <div>其实账户之前就申请了,但是决定要自己更新一些东西看也是最近。从毕业到现在已经一年了。没有进步是假的,但是有多大的进步可能只有我自己知道。   毕业的时候班里12个女生,真正最后做到软件开发的只要两个包括我,PS:我不是说测试不好。当时因为考研完全放弃找工作,考研失败,我想这只是我的借口。那个时候才想到为什么大学的时候不能好好的学习技术,增强自己的实战能力,以至于后来找工作比较费劲。我</div> </li> <li><a href="/article/3723.htm" title="我认为POJO是一个错误的概念" target="_blank">我认为POJO是一个错误的概念</a> <span class="text-muted">windshome</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/J2EE/1.htm">J2EE</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1/1.htm">设计</a> <div>              这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。    &</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>