前面介绍了ssm框架的整合开发以及后端接口部分的实现(如今对这些接口有了新的变动以及优化),本文将整合前端框架jquery-easyui来实现前后端接口的对接,更加直接的展示poi导入导出excel的效果。(视频教程地址:https://edu.csdn.net/course/detail/8894 欢迎支持!!)
对于easyui,除了页面的内容展示以及样式排版外,主要的责任在于请求后端接口拿到数据并填充到相应的页面位置中。其中的接口就包括:获取数据列表,搜索,导出数据,导入数据。
为了展示效果,我结合了企业实际项目中的实际业务模块,就用“产品信息列表”来进行演示。页面起名为product.jsp,并在web.xml将其作为welcome-list的欢迎页面中:
product.jsp
具体的页面代码都在下面了,包括:如果获取数据列表并填充到easyui的datagrid,导出数据到excel,打开对话框上传excel文件导入数据等等:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Insert title here
<%-- --%>
在这里,后端新增了一个ProductController控制器,用于对接上面页面的请求接口,具体代码如下:
package com.debug.steadyjack.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.debug.steadyjack.dto.BaseResponse;
import com.debug.steadyjack.enums.StatusCode;
import com.debug.steadyjack.enums.WorkBookVersion;
import com.debug.steadyjack.mapper.ProductMapper;
import com.debug.steadyjack.model.Product;
import com.debug.steadyjack.service.PoiService;
import com.debug.steadyjack.service.ProductService;
import com.debug.steadyjack.utils.ExcelBeanUtil;
import com.debug.steadyjack.utils.ExcelUtil;
import com.debug.steadyjack.utils.WebUtil;
@Controller
public class ProductController {
private static final Logger log=LoggerFactory.getLogger(ProductController.class);
private static final String prefix="product";
@Value("${poi.excel.sheet.name}")
private String sheetProductName;
@Value("${poi.excel.file.name}")
private String excelProductName;
@Autowired
private ProductMapper productMapper;
@Autowired
private PoiService poiService;
@Autowired
private ProductService productService;
/**
* 获取产品列表
* @param name
* @return
*/
@RequestMapping(value=prefix+"/list",method=RequestMethod.GET)
@ResponseBody
public List list(String name){
List products=new ArrayList();
try {
products=productMapper.selectAll(name);
} catch (Exception e) {
log.error("获取产品列表发生异常: ",e.fillInStackTrace());
}
return products;
}
/**
* 导出excel
* @param response
* @return
*/
@RequestMapping(value=prefix+"/excel/export",method=RequestMethod.GET)
public @ResponseBody String exportExcel(HttpServletResponse response,String search){
try {
List products=productMapper.selectAll(search);
String[] headers=new String[]{"id编号","名称","单位","单价","库存量","采购日期","备注信息"};
List> dataList=ExcelBeanUtil.manageProductList(products);
log.info("excel下载填充数据: {} ",dataList);
Workbook wb=new HSSFWorkbook();
ExcelUtil.fillExcelSheetData(dataList, wb, headers, sheetProductName);
WebUtil.downloadExcel(response, wb, excelProductName);
return excelProductName;
} catch (Exception e) {
log.error("下载excel 发生异常:",e.fillInStackTrace());
}
return null;
}
/**
* 上传excel导入数据
* @param request
* @return
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value=prefix+"/excel/upload",method=RequestMethod.POST,consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public BaseResponse uploadExcel(MultipartHttpServletRequest request){
BaseResponse response=new BaseResponse<>(StatusCode.Success);
try {
MultipartFile file=request.getFile("productFile");
if (file==null || file.getName()==null) {
return new BaseResponse<>(StatusCode.Invalid_Param);
}
String fileName=file.getOriginalFilename();
String suffix=StringUtils.substring(fileName, fileName.lastIndexOf(".")+1);
if (WorkBookVersion.valueOfSuffix(suffix)==null) {
return new BaseResponse<>(StatusCode.WorkBook_Version_Invalid);
}
log.info("文件名:{} 文件后缀名:{} ",fileName,suffix);
Workbook wb=poiService.getWorkbook(file,suffix);
List products=poiService.readExcelData(wb);
//批量插入-第一种方法
//productService.insertBatch(products);
//批量插入-第二种方法(注意jdbc链接mysql允许批量插入删除的配置)
productMapper.insertBatch(products);
} catch (Exception e) {
log.error("上传excel导入数据 发生异常:",e.fillInStackTrace());
return new BaseResponse<>(StatusCode.System_Error);
}
return response;
}
}
优化过后的PoiService代码如下:
package com.debug.steadyjack.service;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.debug.steadyjack.enums.WorkBookVersion;
import com.debug.steadyjack.model.Product;
import com.debug.steadyjack.utils.DateUtil;
import com.debug.steadyjack.utils.ExcelUtil;
@Service
public class PoiService {
private static final Logger log=LoggerFactory.getLogger(PoiService.class);
/**
* 读取excel数据
* @param wb
* @return
* @throws Exception
*/
public List readExcelData(Workbook wb) throws Exception{
Product product=null;
List products=new ArrayList();
Row row=null;
int numSheet=wb.getNumberOfSheets();
if (numSheet>0) {
for(int i=0;i0) {
for(int j=1;j<=numRow;j++){
//TODO:跳过excel sheet表格头部
row=sheet.getRow(j);
product=new Product();
String name=ExcelUtil.manageCell(row.getCell(1), null);
String unit=ExcelUtil.manageCell(row.getCell(2), null);
Double price=Double.valueOf(ExcelUtil.manageCell(row.getCell(3), null));
String stock=ExcelUtil.manageCell(row.getCell(4), null);
String remark=ExcelUtil.manageCell(row.getCell(6), null);
product.setName(name);
product.setUnit(unit);
product.setPrice(price);
product.setStock(Double.valueOf(stock));
String value=ExcelUtil.manageCell(row.getCell(5), "yyyy-MM-dd");
product.setPurchaseDate(DateUtil.strToDate(value, "yyyy-MM-dd"));
product.setRemark(remark);
products.add(product);
}
}
}
}
log.info("获取数据列表: {} ",products);
return products;
}
/**
* 根据版本来区分获取workbook实例
* @param version
* @return
*/
public Workbook getWorkbook(String version,InputStream inputStream) throws Exception{
Workbook wk=null;
if (Objects.equals(WorkBookVersion.WorkBook2003.getCode(), version)) {
wk=new HSSFWorkbook(inputStream);
}else if (Objects.equals(WorkBookVersion.WorkBook2007.getCode(), version)) {
wk=new XSSFWorkbook(inputStream);
}
return wk;
}
/**
* 根据file区分获取workbook实例
* @param version
* @return
*/
public Workbook getWorkbook(MultipartFile file,String suffix) throws Exception{
Workbook wk=null;
if (Objects.equals(WorkBookVersion.WorkBook2003Xls.getCode(), suffix)) {
wk=new HSSFWorkbook(file.getInputStream());
}else if (Objects.equals(WorkBookVersion.WorkBook2007Xlsx.getCode(), suffix)) {
wk=new XSSFWorkbook(file.getInputStream());
}
return wk;
}
}
以及需要用到根据上传的文件名来决定获取的WorkBook的实例的WorkBookVersion枚举类:
package com.debug.steadyjack.enums;
import java.util.Objects;
public enum WorkBookVersion {
WorkBook2003("2003","2003版本workBook"),
WorkBook2007("2007","2007版本workBook"),
WorkBook2003Xls("xls","xls后缀名结尾-2003版本workBook"),
WorkBook2007Xlsx("xlsx","xlsx后缀名结尾-2007版本workBook");
private String code;
private String name;
private WorkBookVersion(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/*public static WorkBookVersion valueOfVersion(String code){
if (Objects.equals(WorkBook2003.getCode(), code)) {
return WorkBook2003;
}else if (Objects.equals(WorkBook2007.getCode(), code)) {
return WorkBook2007;
}else{
return null;
}
}*/
public static WorkBookVersion valueOfVersion(String version) {
if (Objects.equals(WorkBook2003.getCode(), version)) {
return WorkBook2003;
}else if (Objects.equals(WorkBook2007.getCode(), version)) {
return WorkBook2007;
}else{
return null;
}
}
public static WorkBookVersion valueOfSuffix(String suffix) {
if (Objects.equals(WorkBook2003Xls.getCode(), suffix)) {
return WorkBook2003Xls;
}else if (Objects.equals(WorkBook2007Xlsx.getCode(), suffix)) {
return WorkBook2007Xlsx;
}else{
return null;
}
}
}
到此,就没有了。然后点击项目右键run到tomcat7服务器,可以看到请求了产品的数据列表,搜索,导出数据到Excel以及导入数据到数据并展示在列表中,详细截图如下:
好了,关于springmvc+spring+mybatis整合框架之poi导入导出excel这一系列就介绍到这里来,相关的源码已经贴在这几篇博客了,有相关问题可以加qq咨询:1948831260 。
另外,为了能介绍得更加清楚,我将特意将此录制为两三节小视频来介绍这个小项目,包括ssm框架的通用搭建法,整合poi框架实现导入导出excel以及如何整合easyui框架等等,如果需要,可以加上面qq付费领取(毕竟是自己辛勤付出,总要有点回报!),大概35-50块低价出售:包括项目源码、整体框架搭建的全过程以及实战视频、以及售后指导服务!当然啦,如果有需要定制开发的或者有外包的也可以加我上面qq咨询。
你可能感兴趣的:(ssh,ssm整合案例)
python os.environ_python os.environ 读取和设置环境变量
weixin_39605414
python os.environ
>>>importos>>>os.environ.keys()['LC_NUMERIC','GOPATH','GOROOT','GOBIN','LESSOPEN','SSH_CLIENT','LOGNAME','USER','HOME','LC_PAPER','PATH','DISPLAY','LANG','TERM','SHELL','J2REDIR','LC_MONETARY','QT_QPA
使用 FinalShell 进行远程连接(ssh 远程连接 Linux 服务器)
编程经验分享
开发工具 服务器 ssh linux
目录前言基本使用教程新建远程连接连接主机自定义命令路由追踪前言后端开发,必然需要和服务器打交道,部署应用,排查问题,查看运行日志等等。一般服务器都是集中部署在机房中,也有一些直接是云服务器,总而言之,程序员不可能直接和服务器直接操作,一般都是通过ssh连接来登录服务器。刚接触远程连接时,使用的是XSHELL来远程连接服务器,连接上就能够操作远程服务器了,但是仅用XSHELL并没有上传下载文件的功能
[实验室服务器使用]使用VSCode、PyCharm、MobaXterm和CMD连接远程服务器
YuanDaima2048
工具使用 服务器 vscode pycharm cmd 代理模式 机器学习 实验
文章总览:YuanDaiMa2048博客文章总览实验室服务器使用:使用VSCode、PyCharm、MobaXterm和CMD连接远程服务器在进行实验室工作时,远程连接服务器是常见的需求之一。本篇文章根据个人的一些使用介绍使用不同工具连接服务器的方法,并提供优化功能,使服务器能够使用本机代理的说明。准备服务器账号信息Host(主机):10.XXX.XX.XXXPort(端口):[SSHPort]U
VUE3 + xterm + nestjs实现web远程终端 或 连接开启SSH登录的路由器和交换机。
焚木灵
node.js vue
可远程连接系统终端或开启SSH登录的路由器和交换机。相关资料:xtermjs/xterm.js:Aterminalfortheweb(github.com)后端实现(NestJS):1、安装依赖:npminstallnode-ssh@nestjs/websockets@nestjs/platform-socket.io2、我们将创建一个名为RemoteControlModule的NestJS模块,
golang实现从服务器下载文件到本地指定目录
余生逆风飞翔
golang 服务器 开发语言
一、连接服务器,采用sftp连接模式packagemiddlewaresimport("fmt""time""github.com/pkg/sftp""golang.org/x/crypto/ssh")//建立服务器连接funcConnect(user,password,hoststring,portint)(*sftp.Client,error){var(auth[]ssh.AuthMethod
Ubuntu常用命令整理
十里染林
ubuntu16.04server开启ssh:使用x-shell连接主机,发现22端口没有打开,开启ssh服务:安装openssh-serversudoapt-getinstallopenssh-server检查安装是否成功sudops-e|grepssh开启ssh服务sudoservicesshstartUbuntu开启/关闭防火墙:开启防火墙sudoufwenable关闭防火墙sudoufwd
【深度学习】训练过程中一个OOM的问题,太难查了
weixin_40293999
深度学习 深度学习 人工智能
现象:各位大佬又遇到过ubuntu的这个问题么?现象是在训练过程中,ssh上不去了,能ping通,没死机,但是ubunutu的pc侧的显示器,鼠标啥都不好用了。只能重启。问题原因:OOM了95G,尼玛!!!!pytorch爆内存了,然后journald假死了,在journald被watchdog干掉之后,系统就崩溃了。这种规模的爆内存一般,即使被oomkill了,也要卡半天的,确实会这样,能不能配
华为USG6000E-S12防火墙Key exchange failed.无法SSH解决方案
redmond88
网络技术 ssh 华为 运维
由于目前防火墙算法太新,导致crt和xshell的版本无法登陆,按以下方法解决一、下载华为本地加载除弱安全算法组件包之外的组件包https://download.csdn.net/download/redmond88/89620664?spm=1001.2014.3001.5503二、先改后缀名为.cfg,上传文件到防火墙三、在用户视图下改后缀名为.mod四、move文件到$_install_mo
华为坤灵路由器配置SSH
redmond88
网络技术 华为 ssh 运维
配置SSH服务器的管理网口IP地址。system-view[HUAWEI]sysnameSSHServer[SSHServer]interfacemeth0/0/0[SSHServer-MEth0/0/0]ipaddress10.248.103.194255.255.255.0[SSHServer-MEth0/0/0]quit在SSH服务器端生成本地密钥对。[SSHServer]rsalocal-
处理绿盟科技安全评估的系统漏洞
自我修炼的小石头
数据库 运维 开发工具
如下图一次扫描,中度风险39个,这个是必须要处理的.其中mysql占了36个,一看这个感觉整个人都不好了.但是最后解决的办法也很简单,就是升级.系统版本Redhat7.31.telnet因为要升级openssh,openssl,为了避免意外,首先要开启telnet服务,并把所有相关的包上传到服务器.1.1确认是否安装了telnet和xinetd(默认是没有安装)rpm-qatelnet*rpm-q
linux 使用SSH密钥配置免密登录
_Johnny_
Linux linux ssh 服务器
需求:多台主机SSH免密登录,需要使用同一个密钥对操作:在Linux中,使用SSH密钥对来在多台主机之间配置免密登录。以下是配置步骤:在你的本地机器上生成一个SSH密钥对。如果你已经有一个,你可以跳过这一步。在终端中运行以下命令:ssh-keygen-trsa这将在你的~/.ssh目录下生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。将你的公钥复制到远程主机。你可以使用ssh-c
蓝易云 - 诊断并修复SSH连接Github时遇到的“connection closed“错误。
蓝易云
ssh github 运维 linux vscode redis
解决SSH连接GitHub时遇到的"connectionclosed"错误,需要依次排查网络连通性、认证信息、SSH配置和服务器响应等多个可能影响连接的因素。下面是解决步骤和方法:网络连通性检查:使用ping命令检查您的机器是否能够到达GitHub的服务器。pinggithub.com如果不能ping通,可能是网络问题,检查代理设置或网络连接。使用traceroute或tracert命令(取决于操
如何在麒麟操作系统中限制SSH远程登录而不影响FTP
Seal^_^
国产化 # 麒麟OS ssh 运维 国产化 操作系统 SSH
如何在麒麟操作系统中限制SSH远程登录而不影响FTP1、禁止SSH远程登录1.1禁止Root用户1.2禁止特定用户1.3禁止特定用户组2、重启SSHD服务3、注意事项TheBegin点点关注,收藏不迷路在服务器管理中,出于安全考虑,我们经常需要限制特定用户或用户组通过SSH远程登录服务器,但同时保持FTP等服务的正常使用不受影响。本文将详细介绍在麒麟操作系统(假设基于Linux,类似于Ubuntu
Ansible架构介绍与安装
2401_86637445
ansible 架构
一、介绍Ansible什么是Ansible?Ansible是一款自动化运维工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。实现了批量系统配置、批量程序部署、批量运行命令等功能。ansiblepuppetsaltstack主流的三种。ansible自动化运维工具被红帽收购阿里巴巴在用saltstackpython开发。无客户端,只需安装SSH、P
rsync exited with code 255.Load key “...“: invalid format Permission denied, please try again.
沧州刺史
后端 服务器 运维 github actions linux ssh
在配置githubactions自动部署前端项目到服务器上时,登录服务器使用的是秘钥登录。出现报错:[general]GITHUB_WORKSPACE:/home/runner/work/clogin-frontend/clogin-frontend[SSH]Creating/home/runner/.sshdirin/home/runner/work/clogin-frontend/clogin
【集群架构中的故障集合】_nfs connection reset by peer
2024云技术
2024年程序员学习 架构 java linux
3.Connectionrefused连接拒绝检查是否能ping通对应服务器[12:41root@backup~]#rsync-avz/etc176.16.1.31:/tmpssh:connecttohost176.16.1.31port22:Connectionrefusedrsync:connectionunexpectedlyclosed(0bytesreceivedsofar)[sende
ssh安装,配置以及免密连接
叶域
环境配置与项目部署 ssh linux
ssh安装,配置以及免密连接目录:一、ssh检查与安装二、ssh基本用法三、配置文件(~/.ssh/config)四、ssh免密连接五、通过ssh在服务器执行命令一、ssh检查与安装sudosystemctlstatusssh#检查SSH服务器状态一般linux系统都自带ssh,如果没有可以根据如下命令安装sudoaptupdate#更新数据sudoaptupgrade#更新软件sudoaptin
“ssh_dispatch_run_fatal: Connection to x.x.x.x port 22: message authentication code incorrect“报错解决方法
守月满空山雪照窗
Linux ssh 运维
ssh远程连接:
[email protected] 报错如下:CorruptedMAConinput.ssh_dispatch_run_fatal:Connectiontox.x.x.xport22:messageauthenticationcodeincorrect执行如下命令:ssh-Qmac可以看到:hmac-sha1hmac-sha1-96hmac-sha2-256hmac-sha2
用前端的语言写后端——Node.js之Express
tabzzz
前端 前端 node.js express
ExpressExpress是一种流行的模型视图控制器(MVC)Node.js框架,具有快速、极简和灵活的优点,为Web和移动应用程序开发提供了强大的功能集合。最受欢迎的Node.js框架!文章目录Express安装ExpressHelloWorld路由中间件全局中间件应用中间件开放跨域请求几种常用的Express内置中间件函数1.JSON格式数据中间件函数2.静态文件中间件函数3.路由中间件函数
一文说透 Android 应用架构 MVC、MVP、MVVM 和 组件化,Android基础入门教程
Java后时代
2024年程序员学习 android 架构 mvc
然后,就是我们的View层的代码,同样,我对代码做了删减:@Route(path=BaseConstants.EYEPETIZER_MENU)publicclassHomeActivityextendsCommonActivityimplementsHomeContract.IView{//实例化PresenterprivateHomeContract.IPresenterpresenter;{p
python 卡方检验_Python-卡方检验
cunzai1985
python numpy 数据分析 机器学习 数据挖掘
python卡方检验Python-卡方检验(Python-Chi-SquareTest)Chi-Squaretestisastatisticalmethodtodetermineiftwocategoricalvariableshaveasignificantcorrelationbetweenthem.Boththosevariablesshouldbefromsamepopulationand
【rsync+ssh】rsync远程同步备份数据
Bogon
rsync连接远程主机进行同步或备份时有两种途径:1.使用远程shell程序(如ssh或rsh)进行连接2.使用TCP直接连接rsyncdaemonrsyncdaemon是"rsync--daemon"或再加上其他一些选项启动的,它会读取配置文件,默认是/etc/rsyncd.conf,并默认监听在873端口上,当外界有客户端对此端口发起连接请求,通过这个网络套接字就可以完成连接,以后与该客户端通
redis-shake v4全量增量同步redis数据
nangonghen
redis redis 数据库 缓存 redis-shake
1概述RedisShake是一个用于处理和迁移Redis数据的工具,github地址是https://github.com/tair-opensource/RedisShake。它提供以下特性:1)Redis兼容性:RedisShake兼容从2.8到7.2的Redis版本,并支持各种部署方式,包括单机,主从,哨兵和集群。2)云服务兼容性:RedisShake与主流云服务提供商提供的流行Redis-
集群hdfs启动
sxu~源
hdfs hadoop big data
1)各个模块分开启动/停止(配置ssh是前提)常用(1)整体启动/停止HDFSstart-dfs.sh/stop-dfs.sh(2)整体启动/停止YARNstart-yarn.sh/stop-yarn.sh2)各个服务组件逐一启动/停止(1)分别启动/停止HDFS组件hdfs--daemonstart/stopnamenode/datanode/secondarynamenode(2)启动/停止Y
sftp上传和下载文件
王小工
Linux linux
SFTP(SSHFileTransferProtocol)是一种基于SSH协议的文件传输协议,它提供了文件传输过程中的加密和验证功能,确保了数据的安全性。SFTP上传和下载文件的过程可以通过多种方式实现,包括使用SFTP客户端软件、命令行工具或编程SDK等。以下是SFTP上传和下载文件的基本步骤和方法:一、SFTP客户端软件操作软件选择与安装:FileZilla:一款广受欢迎的开源FTP客户端,支
通过TensorBoard查看服务器训练过程
江木123
工具 服务器
步骤1:启动服务器上的TensorBoard在服务器上,启动TensorBoard并指定一个端口(例如6006):tensorboard--logdir--port6006这里是你存放训练日志的目录。步骤2:使用SSH隧道将端口转发到本地在本地计算机的终端中,使用SSH命令创建一个隧道,将服务器上的6006端口转发到本地计算机的6006端口:ssh-L6006:localhost:6006@600
配置文件使VSCode连接Ubuntu时无需重复输入密码
郑师傅炒板栗
Linux ubuntu linux vscode
一、在XShell(已经连接到Ubuntu上)输入:ssh-keygen-trsa#结果如下:二、继续在命令行中输入:vimauthorized_keys然后在本机的用户->.ssh文件夹下,复制id_rsa.pub里面的公钥内容,到authorized_keys中,再输入:wq,保存后退出(vim的内容);三、以上做完就大功告成了,以后通过VSCode打开连接的Ubuntu的内容,就无需重复输入
在Unity中测试并显示帧率
Jinx Boy
unity 游戏引擎
usingUnityEngine;usingUnityEngine.UI;publicclassFPSShow:MonoBehaviour{publicTextfpsText;//UIText组件引用voidStart(){fpsText=GameObject.Find("FPSDisplay").GetComponent();//假设UIText对象的名字为"FPSDisplay"}voidUp
尝试用sshpass解决问题
旭娃
https://blog.csdn.net/joosonmao/article/details/39160501sshpass是开源linux程序sh登陆不能在命令行中指定密码,sshpass的出现,解决了这一问题。它允许你用-p参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。源码下载地址:http://sourceforge.net/projects/sshp
如何配置公钥
null or notnull
gitee
首次配置公鑰:1.配置Git用户名和邮箱。gitconfig--globaluser.name"ligdssa"gitconfig--globaluser.email"
[email protected] "2.查看是否配置成功gitconfig--list3.生成创建SSH公钥C:\Users\用户文件夹\.ssh如果这文件夹中有文件,需要先删除(1).执行:ssh-keygen-ted25519-C"Gite
mongodb3.03开启认证
21jhf
mongodb
下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下:
(百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略)
Windows下我做了一个bat文件,用来启动mongodb,命令行如下:
mongod --dbpath db\data --port 27017 --directoryperdb --logp
【Spark103】Task not serializable
bit1129
Serializable
Task not serializable是Spark开发过程最令人头疼的问题之一,这里记录下出现这个问题的两个实例,一个是自己遇到的,另一个是stackoverflow上看到。等有时间了再仔细探究出现Task not serialiazable的各种原因以及出现问题后如何快速定位问题的所在,至少目前阶段碰到此类问题,没有什么章法
1.
package spark.exampl
你所熟知的 LRU(最近最少使用)
dalan_123
java
关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现
1、大体的想法
a、查询出最近最晚使用的项
b、给最近的使用的项做标记
通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项?
这时候多
Javascript 跨域
周凡杨
JavaScript jsonp 跨域 cross-domain
 
linux下安装apache服务器
g21121
apache
安装apache
下载windows版本apache,下载地址:http://httpd.apache.org/download.cgi
1.windows下安装apache
Windows下安装apache比较简单,注意选择路径和端口即可,这里就不再赘述了。 2.linux下安装apache:
下载之后上传到linux的相关目录,这里指定为/home/apach
FineReport的JS编辑框和URL地址栏语法简介
老A不折腾
finereport web报表 报表软件 语法总结
JS编辑框:
1.FineReport的js。
作为一款BS产品,browser端的JavaScript是必不可少的。
FineReport中的js是已经调用了finereport.js的。
大家知道,预览报表时,报表servlet会将cpt模板转为html,在这个html的head头部中会引入FineReport的js,这个finereport.js中包含了许多内置的fun
根据STATUS信息对MySQL进行优化
墙头上一根草
status
mysql 查看当前正在执行的操作,即正在执行的sql语句的方法为:
show processlist 命令
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一、慢查询mysql> show variab
我的spring学习笔记7-Spring的Bean配置文件给Bean定义别名
aijuans
Spring 3
本文介绍如何给Spring的Bean配置文件的Bean定义别名?
原始的
<bean id="business" class="onlyfun.caterpillar.device.Business">
<property name="writer">
<ref b
高性能mysql 之 性能剖析
annan211
性能 mysql mysql 性能剖析 剖析
1 定义性能优化
mysql服务器性能,此处定义为 响应时间。
在解释性能优化之前,先来消除一个误解,很多人认为,性能优化就是降低cpu的利用率或者减少对资源的使用。
这是一个陷阱。
资源时用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度,保持cpu忙绿,这是必要的。很多时候发现
编译进了新版本的InnoDB之后,cpu利用率上升的很厉害,这并不
主外键和索引唯一性约束
百合不是茶
索引 唯一性约束 主外键约束 联机删除
目标;第一步;创建两张表 用户表和文章表
第二步;发表文章
1,建表;
---用户表 BlogUsers
--userID唯一的
--userName
--pwd
--sex
create
线程的调度
bijian1013
java 多线程 thread 线程的调度 java多线程
1. Java提供一个线程调度程序来监控程序中启动后进入可运行状态的所有线程。线程调度程序按照线程的优先级决定应调度哪些线程来执行。
2. 多数线程的调度是抢占式的(即我想中断程序运行就中断,不需要和将被中断的程序协商)
a) 
查看日志常用命令
bijian1013
linux 命令 unix
一.日志查找方法,可以用通配符查某台主机上的所有服务器grep "关键字" /wls/applogs/custom-*/error.log
二.查看日志常用命令1.grep '关键字' error.log:在error.log中搜索'关键字'2.grep -C10 '关键字' error.log:显示关键字前后10行记录3.grep '关键字' error.l
【持久化框架MyBatis3一】MyBatis版HelloWorld
bit1129
helloworld
MyBatis这个系列的文章,主要参考《Java Persistence with MyBatis 3》。
样例数据
本文以MySQL数据库为例,建立一个STUDENTS表,插入两条数据,然后进行单表的增删改查
CREATE TABLE STUDENTS
(
stud_id int(11) NOT NULL AUTO_INCREMENT,
【Hadoop十五】Hadoop Counter
bit1129
hadoop
1. 只有Map任务的Map Reduce Job
File System Counters
FILE: Number of bytes read=3629530
FILE: Number of bytes written=98312
FILE: Number of read operations=0
FILE: Number of lar
解决Tomcat数据连接池无法释放
ronin47
tomcat 连接池 优化
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会 再次出现无法登录的情况。
今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。
简单分析了一
java-75-二叉树两结点的最低共同父结点
bylijinnan
java
import java.util.LinkedList;
import java.util.List;
import ljn.help.*;
public class BTreeLowestParentOfTwoNodes {
public static void main(String[] args) {
/*
* node data is stored in
行业垂直搜索引擎网页抓取项目
carlwu
Lucene Nutch Heritrix Solr
公司有一个搜索引擎项目,希望各路高人有空来帮忙指导,谢谢!
这是详细需求:
(1) 通过提供的网站地址(大概100-200个网站),网页抓取程序能不断抓取网页和其它类型的文件(如Excel、PDF、Word、ppt及zip类型),并且程序能够根据事先提供的规则,过滤掉不相干的下载内容。
(2) 程序能够搜索这些抓取的内容,并能对这些抓取文件按照油田名进行分类,然后放到服务器不同的目录中。
[通讯与服务]在总带宽资源没有大幅增加之前,不适宜大幅度降低资费
comsci
资源
降低通讯服务资费,就意味着有更多的用户进入,就意味着通讯服务提供商要接待和服务更多的用户,在总体运维成本没有由于技术升级而大幅下降的情况下,这种降低资费的行为将导致每个用户的平均带宽不断下降,而享受到的服务质量也在下降,这对用户和服务商都是不利的。。。。。。。。
&nbs
Java时区转换及时间格式
Cwind
java
本文介绍Java API 中 Date, Calendar, TimeZone和DateFormat的使用,以及不同时区时间相互转化的方法和原理。
问题描述:
向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于东八区(北京时间,GMT+8:00),而身处东四区的用户想要查询当天的销售记录。则需把东四区的“今天”这个时间范围转换为服务器所在时区的时间范围。
readonly,只读,不可用
dashuaifu
js jsp disable readOnly readOnly
readOnly 和 readonly 不同,在做js开发时一定要注意函数大小写和jsp黄线的警告!!!我就经历过这么一件事:
使用readOnly在某些浏览器或同一浏览器不同版本有的可以实现“只读”功能,有的就不行,而且函数readOnly有黄线警告!!!就这样被折磨了不短时间!!!(期间使用过disable函数,但是发现disable函数之后后台接收不到前台的的数据!!!)
LABjs、RequireJS、SeaJS 介绍
dcj3sjt126com
js Web
LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更
[应用结构]入口脚本
dcj3sjt126com
PHP yii2
入口脚本
入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。
Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。
控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php),该文
haoop shell命令
eksliang
hadoop hadoop shell
cat
chgrp
chmod
chown
copyFromLocal
copyToLocal
cp
du
dus
expunge
get
getmerge
ls
lsr
mkdir
movefromLocal
mv
put
rm
rmr
setrep
stat
tail
test
text
MultiStateView不同的状态下显示不同的界面
gundumw100
android
只要将指定的view放在该控件里面,可以该view在不同的状态下显示不同的界面,这对ListView很有用,比如加载界面,空白界面,错误界面。而且这些见面由你指定布局,非常灵活。
PS:ListView虽然可以设置一个EmptyView,但使用起来不方便,不灵活,有点累赘。
<com.kennyc.view.MultiStateView xmlns:android=&qu
jQuery实现页面内锚点平滑跳转
ini
JavaScript html jquery html5 css
平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以设置滚动速度,又可以在 url 链接上没有“小尾巴”。
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/37.htmHTML文件代码:
&
kafka offset迁移
kane_xie
kafka
在早前的kafka版本中(0.8.0),offset是被存储在zookeeper中的。
到当前版本(0.8.2)为止,kafka同时支持offset存储在zookeeper和offset manager(broker)中。
从官方的说明来看,未来offset的zookeeper存储将会被弃用。因此现有的基于kafka的项目如果今后计划保持更新的话,可以考虑在合适
android > 搭建 cordova 环境
mft8899
android
1 , 安装 node.js
http://nodejs.org
node -v 查看版本
2, 安装 npm
可以先从 https://github.com/isaacs/npm/tags 下载 源码 解压到
java封装的比较器,比较是否全相同,获取不同字段名字
qifeifei
非常实用的java比较器,贴上代码:
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
i
记录一些函数用法
.Aky.
位运算 PHP 数据库 函数 IP
高手们照旧忽略。
想弄个全天朝IP段数据库,找了个今天最新更新的国内所有运营商IP段,copy到文件,用文件函数,字符串函数把玩下。分割出startIp和endIp这样格式写入.txt文件,直接用phpmyadmin导入.csv文件的形式导入。(生命在于折腾,也许你们觉得我傻X,直接下载人家弄好的导入不就可以,做自己的菜鸟,让别人去说吧)
当然用到了ip2long()函数把字符串转为整型数
sublime text 3 rust
wudixiaotie
Sublime Text
1.sublime text 3 => install package => Rust
2.cd ~/.config/sublime-text-3/Packages
3.mkdir rust
4.git clone https://github.com/sp0/rust-style
5.cd rust-style
6.cargo build --release
7.ctrl