【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/1892072781135278080.htm" title="Ubuntu 在/etc/profile中配置环境变量后,开启新终端窗口环境变量失效问题解决(非root用户)" target="_blank">Ubuntu 在/etc/profile中配置环境变量后,开启新终端窗口环境变量失效问题解决(非root用户)</a> <span class="text-muted">深度视觉机器</span> <a class="tag" taget="_blank" href="/search/Ubuntu20/1.htm">Ubuntu20</a><a class="tag" taget="_blank" href="/search/%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%A4%B1%E6%95%88%E9%97%AE%E9%A2%98%E5%88%B0%E6%AD%A4%E8%A7%A3%E5%86%B3%E3%80%82/1.htm">环境变量失效问题到此解决。</a> <div>最近在使用ubuntu系统的过程中用非root用户登录,发现在安装完jdk并添加相关环境变量,java-version可以正常显示,但当我开启一个新的终端的时候,这个命令就失效了,网上查了一下原因,是需要修改当前登录用户的.bashrc文件中添加环境变量才可永久生效,下面来说明几种解决方案。1、临时解决方案(非root用户)临时解决方案就是重新加载/etc/profile文件,执行以下命令:$so</div> </li> <li><a href="/article/1892071394775199744.htm" title="Go语言入门指南" target="_blank">Go语言入门指南</a> <span class="text-muted">茶颜悅色</span> <a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>Go语言,作为一门现代编程语言,自诞生以来便备受开发者青睐。它以其简洁的语法、高效的性能和强大的并发支持,迅速成为云服务开发、后端开发以及微服务架构中的热门选择。本文将从Go语言的历史背景、特性、安装方法到快速入门等方面进行详细介绍,帮助你快速上手这门语言。一、Go语言的历史背景Go语言(Golang)由Google公司于2007年9月30日启动研发,并在2009年11月10日正式开源。它的设计初</div> </li> <li><a href="/article/1892068368379342848.htm" title="hive-site.xml 配置总结" target="_blank">hive-site.xml 配置总结</a> <span class="text-muted">hxsln11</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>在Hive安装后,hive主要的配置文件为conf中hive-site.xml那该文件中那么多的配置选项都是什么含义呢。下面这篇文章带你解密这些配置请跟随以下这些问题来看以下配置:1.hive输出格式的配置项是哪个?2.hive被各种语言调用如何配置?3.hive提交作业是在hive中还是hadoop中?4.一个查询的最后一个map/reduce任务输出是否被压缩的标志,通过哪个配置项?5.当用户</div> </li> <li><a href="/article/1892066980731613184.htm" title="Mac Java 使用 tesseract 进行 ORC 识别" target="_blank">Mac Java 使用 tesseract 进行 ORC 识别</a> <span class="text-muted">nukix</span> <a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</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><a class="tag" taget="_blank" href="/search/ORC/1.htm">ORC</a> <div>在Java开发中使用图片转文字时,难免会遇到问题,比如我使用Mac(M1芯片)系统进行开发,就出现报错。博主博客https://blog.uso6.comhttps://blog.csdn.net/dxk539687357一、直接使用1.使用brew进行安装brewinstalltesseract如果是其他系统的,建议看官方文档进行安装。2.查看版本nukix@nukixPC~%tesseract</div> </li> <li><a href="/article/1892064073735008256.htm" title="音频采集(VUE3+JAVA)" target="_blank">音频采集(VUE3+JAVA)</a> <span class="text-muted">a26637896</span> <a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>vue部分代码xx.vueimportRecorderfrom'./Recorder.js';exportdefault{data(){return{mediaStream:null,recorder:null,isRecording:false,audioChunks:[],vadInterval:null//新增:用于存储声音活动检测的间隔ID};},asyncmounted(){this.m</div> </li> <li><a href="/article/1892059412550447104.htm" title="渗透测试工具包 开源安全测试工具 网络安全工具_网络安全渗透测试工具(1)" target="_blank">渗透测试工具包 开源安全测试工具 网络安全工具_网络安全渗透测试工具(1)</a> <span class="text-muted">2401_84254011</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/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a> <div>hackUtils-它是一个用于渗透测试和网络安全研究的黑客工具包,渗透以及web攻击脚本。msf框架:pocsscan攻击框架Pocsuite攻击框架Beebeeto攻击框架漏洞POC&EXP-ExploitDB官方git版本。php漏洞代码分析ysoserial-JAVA反序列化POC生成工具:JavaUnserializeExploits-JAVA反序列化EXP。JenkinsCommonC</div> </li> <li><a href="/article/1892058530568007680.htm" title="Java基础专项复习7——事务" target="_blank">Java基础专项复习7——事务</a> <span class="text-muted">Ttang23</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Java基础专项复习系列目录1、Java基础专项复习1——函数关键字static-CSDN博客2、Java基础专项复习2——集合-CSDN博客3、Java基础专项复习3——Map集合-CSDN博客4、Java基础专项复习4——IO流-CSDN博客5、Java基础专项复习5——异常-CSDN博客6、Java基础专项复习6——多线程-CSDN博客文章目录目录Java基础专项复习系列目录文章目录1.1事</div> </li> <li><a href="/article/1892057646920429568.htm" title="Android Java创建ViewModel新api" target="_blank">Android Java创建ViewModel新api</a> <span class="text-muted">debug_cat</span> <a class="tag" taget="_blank" href="/search/Android%E5%BA%94%E7%94%A8%E5%B1%82%E5%BC%80%E5%8F%91/1.htm">Android应用层开发</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/leetcode/1.htm">leetcode</a> <div>背景项目使用Java,创建ViewModel发现之前旧api不管用了。不要问为什么项目还要用Java,别问。老项目不让升级。ViewModel创建新方式新方式是因为依赖新版本库,其实用旧版本库就回到旧方式了。依赖:deflifecycle_version="2.5.0"//ViewModelimplementation"androidx.lifecycle:lifecycle-viewmodel:</div> </li> <li><a href="/article/1892057520688656384.htm" title="【Spring】Spring的模块架构与生态圈—Spring Boot、Spring Cloud与Spring Security" target="_blank">【Spring】Spring的模块架构与生态圈—Spring Boot、Spring Cloud与Spring Security</a> <span class="text-muted">AI人H哥会Java</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%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><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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a> <div>随着互联网的发展,企业对快速开发和高可用性的需求不断增加,Spring生态系统(包括SpringBoot、SpringCloud和SpringSecurity)应运而生,为Java开发提供了强大的支持。在实际应用中,SpringBoot使得开发者能够快速构建独立的、生产级的Spring应用;SpringCloud则为微服务架构提供了完整的解决方案;而SpringSecurity则为应用提供了安全保</div> </li> <li><a href="/article/1892054997571530752.htm" title="Python学习心得体会" target="_blank">Python学习心得体会</a> <span class="text-muted">yuetouwen</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</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的语法简洁明了,相较于其他编程语言,其代码更接近自然语言。例如,使用缩进来表示代码块,而不是像C或Java那样使用大括号。在学习初期,我快速掌握了变量的定义、</div> </li> <li><a href="/article/1892054241107832832.htm" title="【Java】—— 包装类&泛型" target="_blank">【Java】—— 包装类&泛型</a> <span class="text-muted">两袖清风998</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、包装类(WrapperClass)1、包装类的定义在Java中数据分为两大类:基础数据类型(内置数据类型)引用类型其中基础数据类型(byteintlongdoublebooleanchar......)和C语言接近是早期为了吸引C语言的程序员。后续Java有引入了一系列更进阶的语法机制,而这些机制又依赖于引用类型。Java希望把所有的类型统一成Object体系,让基础数据类型也可以使用equa</div> </li> <li><a href="/article/1892052980769812480.htm" title="JSP(学习自用)" target="_blank">JSP(学习自用)</a> <span class="text-muted">文城521</span> <a class="tag" taget="_blank" href="/search/JAVA%E5%AE%9E%E8%AE%AD/1.htm">JAVA实训</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、本质JSP解析后就是Servlet类的java代码。二、jsp内嵌java代码1、声明脚本用于声明属性和方法。2、运行脚本相当于在service方法中写代码3、打印脚本用于打印上面两个脚本内声明的变量结果啥的。//页面会显示张三三、jsp内置对象1、request代表客户端的请求。2、response代表服务端的响应。3、session代表客户端当前会话。4、application代表整个We</div> </li> <li><a href="/article/1892051594862718976.htm" title="Effective Java学习笔记" target="_blank">Effective Java学习笔记</a> <span class="text-muted">lucky。</span> <a class="tag" taget="_blank" href="/search/Java%E5%AD%A6%E4%B9%A0/1.htm">Java学习</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>静态工厂方法考虑使用静态工厂方法代替构造静态工厂方法与构造器不同的第一优势在于,它们有名字第二个优势,不用每次被调用时都创建新对象第三个优势,可以返回原返回类型的子类第四个优势,在创建带泛型的实例时,能使代码变得简洁(jdk1.8已经解决)除此之外可以有多个参数相同但名称不同的工厂方法可以减少对外暴露的属性多了一层控制,方便统一修改Java中,获得一个类实例最简单的方法就是使用new关键字,通过构</div> </li> <li><a href="/article/1892050712859308032.htm" title="java 代码走查_代码走查如何保证软件质量" target="_blank">java 代码走查_代码走查如何保证软件质量</a> <span class="text-muted">weixin_40006965</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E8%B5%B0%E6%9F%A5/1.htm">代码走查</a> <div>目的代码走查的好处非常多,第一个是让新同学快速熟悉代码并了解系统。第二个是做资损防控的事前检查,在事前规避引发线上故障。第三个是通过一起讨论和审查,加强团队代码阅读和编写能力,让大家编写出优秀的代码。代码走查的优点非常多,但是最核心的还是希望通过代码走查提前发现问题并解决问题。所以基于以上目的,代码走查不是为了找到代码写的差的程序员加以批评,不是为了找到差的代码,而是一起发现问题共同成长,所以对于</div> </li> <li><a href="/article/1892049955296702464.htm" title="【Java基础-47.1】Java中通过继承Thread类创建线程" target="_blank">【Java基础-47.1】Java中通过继承Thread类创建线程</a> <span class="text-muted">AllenBright</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Java%E5%9F%BA%E7%A1%80/1.htm">Java基础</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在Java中,多线程编程是实现并发操作的重要手段之一。Java提供了多种创建线程的方式,其中一种是通过继承Thread类来创建线程。本文将详细介绍如何通过继承Thread类创建线程,并探讨其使用场景、优缺点以及注意事项。1.什么是Thread类?Thread类是Java中用于表示线程的核心类。它位于java.lang包中,提供了线程的创建、启动、暂停、中断等操作。每个Thread对象都代表一个独立</div> </li> <li><a href="/article/1892049576282615808.htm" title="java代码走查_java代码开发完成后,代码走查规范" target="_blank">java代码走查_java代码开发完成后,代码走查规范</a> <span class="text-muted">游凯超</span> <a class="tag" taget="_blank" href="/search/java%E4%BB%A3%E7%A0%81%E8%B5%B0%E6%9F%A5/1.htm">java代码走查</a> <div>代码走查注意事项:1、不变的值,尽量写个常量类2、尽量使用if{}else,不要一直if去判断3、减少循环调用方法查询数据库4、dao层尽量不要用逻辑,尽量在service里写业务逻辑5、金额使用Bigdecimal类型的,0.00这种格式靠右显示6、iframe的弹框,要放到js里,可以缓存,放到jsp里每次都需要加载。7、ajax对应success对应一个error异常,尽量用error,网络</div> </li> <li><a href="/article/1892049576710434816.htm" title="java 代码走查_java代码走查计划书" target="_blank">java 代码走查_java代码走查计划书</a> <span class="text-muted">沙鸥123</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E8%B5%B0%E6%9F%A5/1.htm">代码走查</a> <div>《java代码走查计划书》由会员分享,可在线阅读,更多相关《java代码走查计划书(8页珍藏版)》请在人人文库网上搜索。1、WATERCorporation代码走查计划书Version2.0XXX2012/3/20文档修改记录版本号主要作者修改记录完成日期1.0无2010-03-181.1待评审物2010-03-181.2评审流程2010-03-192.0人员分工、评审流程2010-03-20目录</div> </li> <li><a href="/article/1892047936699822080.htm" title="Arthas使用使用方法" target="_blank">Arthas使用使用方法</a> <span class="text-muted">小秋蜀黍</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%AE%B9%E9%87%8F%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90/1.htm">大容量性能问题分析</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>一、Arthas简介可以用来快速定位java程序使用中的问题,查看程序运行过程中的各种信息。相对于之前jvm命令方式的定位方式,主要有以下特性:1)对源程序无侵入性,不需要重启或修改源码2)交互式命令行操作方式,方便使用3)功能丰富,对jvm各种性能,class信息等都能做到分析二、安装启动1、将下载的软件传入需要分析的服务容器中解压,然后执行java-jararthas-boot.jar命令运行</div> </li> <li><a href="/article/1892045288286253056.htm" title="C# dynamic 关键字 使用详解" target="_blank">C# dynamic 关键字 使用详解</a> <span class="text-muted">鲤籽鲲</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>总目录前言dynamic是C#4.0引入的关键字,用于声明动态类型,允许在运行时解析类型和成员,而非编译时。它主要设计用于简化与动态语言(如Python、JavaScript)的交互、处理未知结构的数据(如JSON、XML)以及减少反射代码的复杂性。一、基本概念动态类型解析:编译器不会对dynamic变量进行类型检查,所有操作(方法调用、属性访问)在运行时解析。底层机制:由DLR(DynamicL</div> </li> <li><a href="/article/1892045289678761984.htm" title="JavaWEB学习笔记2(自用,自整理)" target="_blank">JavaWEB学习笔记2(自用,自整理)</a> <span class="text-muted">发际线码农</span> <a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>笔记根据“尚硅谷”JavaWEB教学视频以及老师课后学习资料整理,若有错误以老师为准。笔记是博主一字一字亲手码出来的,由于自己还是学习阶段,本质还是在模仿的基础上加入自己的拙见。所以笔记会有很多地方和老师的资料有雷同,如有侵权,请大胆联系博主删除!!!因为自己的原因看到剩100集左右没有继续看下去,笔记存放时间有点久,有的图失效了,如果之后又时间博主尽量补上这个坑。JavaWEB学习笔记7、Ser</div> </li> <li><a href="/article/1892045160422895616.htm" title="第三章:前端技术栈与性能关联" target="_blank">第三章:前端技术栈与性能关联</a> <span class="text-muted">Young soul2</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%9F%BA%E7%A1%80/1.htm">前端基础</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>前端开发技术栈主要由HTML、CSS和JavaScript构成,它们相互协作,共同决定了网页的呈现效果和性能表现。了解它们与性能的关联,能帮助开发者更有针对性地进行优化。3.1HTML与性能3.1.1语义化标签的重要性HTML语义化标签,如、、、、、等,不仅能让代码结构更清晰,便于维护和团队协作,还对性能优化有积极作用。语义化标签可以帮助浏览器更好地理解页面结构,从而更高效地进行渲染。例如,一个新</div> </li> <li><a href="/article/1892044908231979008.htm" title="Vue.js 组件开发" target="_blank">Vue.js 组件开发</a> <span class="text-muted">周盛欢</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>嘿,小伙伴们!今天咱们来聊聊Vue.js组件开发。如果你是零基础,别怕,跟着我一步一步来,保证你能轻松上手。Vue.js是一个很厉害的前端框架,它能帮我们快速开发出酷炫的网页应用。而组件开发,是Vue.js的核心技能之一,学会了它,你就能像搭积木一样,拼凑出复杂的页面啦!第一步:了解什么是Vue.js组件在Vue.js里,组件就像是一个个小零件。你可以把它们想象成乐高积木,每个积木都有自己的功能和</div> </li> <li><a href="/article/1892042008474742784.htm" title="「学编程常见问题」学Java要准备什么配置的电脑?" target="_blank">「学编程常见问题」学Java要准备什么配置的电脑?</a> <span class="text-muted">测试小扎</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AD%A6/1.htm">自学</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AD%A6%E7%BC%96%E7%A8%8B/1.htm">自学编程</a> <div>学Java对电脑的配置没有特别高的要求,不需要买配置特别好的电脑,普通PC机可以参考下方的这个配置哦!操作系统:Win10或Mac,优先Win10内存:推荐16G及以上,8G也OK,越大越好CPU:Inteli5及以上,AMD谨慎考虑硬盘:512G及以上,含固态硬盘优先品牌:windows系统优先选择Thinkpad系列,联想,华为等其他品牌也可以考虑注意:购机初始化系统时,用户名建议用英文,不要</div> </li> <li><a href="/article/1892041881869676544.htm" title="SpringCloud常见面试题" target="_blank">SpringCloud常见面试题</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/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1.SpringCloud什么是微服务?谈谈你对微服务的理解?微服务以前所有的代码都放在同一个工程中、部署在同一个服务器、同一项目的不同模块不同功能互相抢占资源,微服务就是将工程根据不同的业务规则拆分成微服务,部署在不同的服务器上,服务之间相互调用,java中有的微服务有dubbo(只能用来做微服务)、springcloud(提供了服务的发现、断路器等)。微服务的特点:按业务划分为一个独立运行的程</div> </li> <li><a href="/article/1892037344823930880.htm" title="Java学习的知识笔记" target="_blank">Java学习的知识笔记</a> <span class="text-muted">世间万物皆对象</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>不会改变原始对象的方法reverse函数,作用:排序使用小技巧判断string是否相等可以使用equals来进行判断。判断string是否是空字符串可以用isBlank()进行判断对于超大的整数加减使用对应的函数进行操作,比如加,使用add函数参考bignum.java因为math类的构造方法是private修饰,所以无法建立实例使用String.charAt(index)方法,返回在index位</div> </li> <li><a href="/article/1892026511649730560.htm" title="加密算法比较:SHA1,SHA256,MD5" target="_blank">加密算法比较:SHA1,SHA256,MD5</a> <span class="text-muted">weixin_43642131</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/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> <div>以一个60M的文件为测试样本,经过1000次的测试平均值,三种算法的表现为:MD5算法运行1000次的平均时间为:226msSHA1算法运行1000次的平均时间为:308msSHA256算法运行1000次的平均时间为:473ms安全性方面,显然SHA256(又称SHA2)的安全性最高,但是耗时要比其他两种多很多。MD5相对较容易碰撞,因此,SHA1应该是这三种中性能最好的一款加密算法。JAVA实现</div> </li> <li><a href="/article/1892025628476108800.htm" title="【fastapi】WEB框架内实现SSE服务,后端主动推送消息到前端" target="_blank">【fastapi】WEB框架内实现SSE服务,后端主动推送消息到前端</a> <span class="text-muted">Biggee Lucloner</span> <a class="tag" taget="_blank" href="/search/fastapi/1.htm">fastapi</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>sse技术简介SSE(Server-SentEvents)是一种允许服务器向客户端浏览器推送信息的技术。它是HTML5的一部分,专门用于建立一个单向的从服务器到客户端的通信连接。SSE的使用场景非常广泛,包括实时消息推送、实时通知更新等。严格地说,HTTP无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。也就是说,发送的不是一次</div> </li> <li><a href="/article/1892023229657182208.htm" title="小狐狸3.1.2版本源码,新增deepseek接口" target="_blank">小狐狸3.1.2版本源码,新增deepseek接口</a> <span class="text-muted">CSDN专家-微编程</span> <a class="tag" taget="_blank" href="/search/PHP%E6%BA%90%E7%A0%81/1.htm">PHP源码</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>小狐狸3.1.2版本源码,新增deepseek接口文件夹说明:1、后端:文件夹是后台文件2、.sql文件是数据库文件后台安装步骤:1、在宝塔新建个站点,php版本使用7.4,将“后端”文件夹里的文件上传到站点根目录,运行目录设置为/public2、导入数据库文件,数据库文件是/db.sql3、修改数据库连接配置,配置文件是/.env4、正式使用时,请把调试模式关闭:/.env文件第一行,true改</div> </li> <li><a href="/article/1892015538536771584.htm" title="【华为OD技术面试手撕真题】106、半径为 k 的子数组平均值 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)" target="_blank">【华为OD技术面试手撕真题】106、半径为 k 的子数组平均值 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)</a> <span class="text-muted">KJ.JK</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAOD%E6%8A%80%E6%9C%AF%E9%9D%A2%E8%AF%95%E6%89%8B%E6%92%95%E7%9C%9F%E9%A2%98/1.htm">华为OD技术面试手撕真题</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod%E6%9C%BA%E8%AF%95%E7%9C%9F%E9%A2%98/1.htm">华为od机试真题</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod%E6%9C%BA%E8%AF%95E%E5%8D%B7/1.htm">华为od机试E卷</a><a class="tag" taget="_blank" href="/search/%E5%8D%8A%E5%BE%84%E4%B8%BA/1.htm">半径为</a><a class="tag" taget="_blank" href="/search/k/1.htm">k</a><a class="tag" taget="_blank" href="/search/%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84%E5%B9%B3%E5%9D%87%E5%80%BC/1.htm">的子数组平均值</a> <div>文章目录一、题目题目描述样例1二、代码参考C语言思路C语言代码C++语言思路C++代码Java语言思路Java代码Python语言思路Python代码JS语言思路JS代码作者:KJ.JK个人博客首页:KJ.JK专栏介绍:本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C&C++&Java&Python&JS),思路分析都非常详细,争取实现最低的时间复杂度和高通过率,每</div> </li> <li><a href="/article/1892010745881751552.htm" title="vue集成codemirror代码编辑器" target="_blank">vue集成codemirror代码编辑器</a> <span class="text-muted">NMGWAP</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>点击上方“青年码农”关注回复“特效源码”可获取各种资料CodeMirror是一个用JavaScript为浏览器实现的通用文本编辑器。它专门用于编辑代码,并带有多种语言模式和插件,可实现更高级的编辑功能。本教程是基于vue2实现集成,使用vue-codemirror插件1.安装# npmnpm install vue-codemirror -S# y</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>