Jsp+Servlet+JDBC新闻发布系统2.0
很久之前写了这样一篇博客,就很久没有更新博客了,后面陆陆续续有朋友在下面评论,询问一些问题。由于之前写的实在是时代久远,索性直接重构了一遍,重构过后的系统界面如下:
开发环境:
- windows
- eclipse
- mysql
体验区:https://nicecoder.cn/newspublishsystem
【首页】
首页还沿用之前的样式,稍作调整。提供按条件查询新闻,可以根据新闻类型、关键字、类型+关键字进行检索。
- 加载方式采用了无限下拉分页加载,判断滚动条到了底部:$(window).scrollTop() == $(document).height() - $(window).height();
$(function(){var flag = 0;$(window).scroll(function(){ if ($(window).scrollTop() == $(document).height() - $(window).height()) {var pageCount = $("input[name='pageCount']").val();var pageNo = $("input[name='pageNo']").val();var keyWord = $("input[name='keyWord']").val();var type = $("input[name='type']").val();if(pageNo < pageCount){$.ajax({url:"coreServlet?bizCode=7",dataType:"json",data:{'keyword':keyWord, 'type':type, 'pageNo':parseInt(pageNo)+1},success:function(data){var html = "";$.each(data.newsList, function(i,val){ html += '<div class="new"> ';html += ' <div class="content row">';html += ' <div class="imgdiv">';html += ' <a href="coreServlet?bizCode=4&id='+val.id+'"><img src="'+val.img+'"/></a>';html += ' </div>';html += ' <div class="text">';html += ' <a href="coreServlet?bizCode=4&id='+val.id+'"><h4>"'+val.title+'</h4></a>';html += ' <p class="p1">"'+val.pudate+'-"'+val.type+'-"'+val.author+'-阅"'+val.click+'</p>';html += ' <p class="p2">"'+val.content+'</p>';html += ' </div>';html += ' </div>';html += '</div> ';});$(".new").last().after(html);$("input[name='pageNo']").val(parseInt(pageNo) + 1);}});}else if(pageNo == pageCount && flag == 0){flag ++;var html = '<p style="text-align:center; color:#FF8C69; font-size:14px; margin-top:10px; margin-bottom:10px;">-没有更多了-</p>';$(".new").last().after(html);}}});
});
- 时间格式化:采用自定义jstl标签。
- WEB-INF下面创建mytag.tld
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>myTag</short-name> <function> <description>date change</description><!-- 对这个EL方法的描述 --> <name>formatDate</name><!-- 调用EL方法的名称 --> <function-class>cn.nicecoder.util.UFunction</function-class> <function-signature> java.lang.String formatDate(java.lang.String) </function-signature> <example>${myTag:formatDate(str)}</example><!-- 例如 --> </function> </taglib>
- 创建类,创建方法
public class UFunction {/*** 转换格式"年-月-日"* @param dateTime* @return*/public static String formatDate(String dateTime){if(StringUtil.isNotEmpty(dateTime)){return dateTime.substring(0,4) + "-" +dateTime.substring(4,6) + "-" + dateTime.substring(6,8); }return dateTime;}}
- 调用方式,jsp里面调用如下
<%@ taglib uri="/WEB-INF/mytag.tld" prefix="myTag" %> //顶部添加
<p class="p1">${myTag:formatDate(news.pudate)} - <span style="color: #20B2AA;">${news.type}</span> - ${news.author} - 阅${news.click}</p>
【详情页】
详情页和下面的管理员页面都采用了我最近发现的一个好用的UI框架layui,这个框架有自己的社区,而且持续更新中,感兴趣的可以百度layui。抛弃了在我看来只适合做后端的bootstrap。提供了发表评论和点赞评论功能。评论评论和点赞文章功能也有预留,type传值不同罢了,但是ui要稍作修改,暂时还没想好,后续可能会加上。评论的头像显示,再加入用户表之后也可以完善进去。
- layui富文本编辑器,功能不是很强,但是我更看中它的简洁和外观,鹅且持续更新中,用法见官网。
- 锚点定位,滑下来再滑上去手会很痛。使用起来很简单。
<a name="mao"></a>//点击下面的a标签会跳转到这里
<a href="#mao" ><i class="layui-icon layui-icon-face-smile"></i></a>//图中的top箭头
- ajax异步提交评论
function discuss(type, id){$("#dis-btn").attr("disabled","true");var content = layedit.getContent(index);$.ajax({dataType:'json',data :{'content':content, 'type':type, 'id':id},url :"coreServlet?bizCode=5",async : true,success :function(data){location.href = "coreServlet?bizCode=4&id="+ id;}}); }
- 获取请求的IP,得到IP的地区信息,这两个就从别的地方借来用用,这里记录一下,有点长但是很好用。
public class IPUtil {public static String getIpAddress(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } }
public class AddressUtil{ /** * * @param content * 请求的参数 格式为:name=xxx&pwd=xxx * @param encoding * 服务器端请求编码。如GBK,UTF-8等 * @return * @throws UnsupportedEncodingException */ public static String getAddresses(String content, String encodingString)throws UnsupportedEncodingException { // 这里调用pconline的接口 String urlStr = "http://ip.taobao.com/service/getIpInfo.php"; // 从http://whois.pconline.com.cn取得IP所在的省市区信息 String returnStr = getResult(urlStr, content, encodingString); if (returnStr != null) { // 处理返回的省市区信息 String[] temp = returnStr.split(","); if(temp.length<3){ return "0";//无效IP,局域网测试 } String region = (temp[5].split(":"))[1].replaceAll("\"", ""); region = decodeUnicode(region);// 省份 String country = ""; String area = ""; // String region = ""; String city = ""; String county = ""; String isp = ""; for (int i = 0; i < temp.length; i++) { switch (i) { case 1: country = (temp[i].split(":"))[2].replaceAll("\"", ""); country = decodeUnicode(country);// 国家 break; case 3: area = (temp[i].split(":"))[1].replaceAll("\"", ""); area = decodeUnicode(area);// 地区 break; case 5: region = (temp[i].split(":"))[1].replaceAll("\"", ""); region = decodeUnicode(region);// 省份 break; case 7: city = (temp[i].split(":"))[1].replaceAll("\"", ""); city = decodeUnicode(city);// 市区 break; case 9: county = (temp[i].split(":"))[1].replaceAll("\"", ""); county = decodeUnicode(county);// 地区 break; case 11: isp = (temp[i].split(":"))[1].replaceAll("\"", ""); isp = decodeUnicode(isp); // ISP公司 break; } } return region; } return null; } /** * @param urlStr * 请求的地址 * @param content * 请求的参数 格式为:name=xxx&pwd=xxx * @param encoding * 服务器端请求编码。如GBK,UTF-8等 * @return */ private static String getResult(String urlStr, String content, String encoding) { URL url = null; HttpURLConnection connection = null; try { url = new URL(urlStr); connection = (HttpURLConnection) url.openConnection();// 新建连接实例 connection.setConnectTimeout(2000);// 设置连接超时时间,单位毫秒 connection.setReadTimeout(2000);// 设置读取数据超时时间,单位毫秒 connection.setDoOutput(true);// 是否打开输出流 true|false connection.setDoInput(true);// 是否打开输入流true|false connection.setRequestMethod("POST");// 提交方法POST|GET connection.setUseCaches(false);// 是否缓存true|false connection.connect();// 打开连接端口 DataOutputStream out = new DataOutputStream(connection.getOutputStream());// 打开输出流往对端服务器写数据 out.writeBytes(content);// 写数据,也就是提交你的表单 name=xxx&pwd=xxx out.flush();// 刷新 out.close();// 关闭输出流 BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), encoding));// 往对端写完数据对端服务器返回数据 // ,以BufferedReader流来读取 StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = reader.readLine()) != null) { buffer.append(line); } reader.close(); return buffer.toString(); } catch (IOException e) { e.printStackTrace(); } finally { if (connection != null) { connection.disconnect();// 关闭连接 } } return null; } /** * unicode 转换成 中文 * * @author fanhui 2007-3-15 * @param theString * @return */ public static String decodeUnicode(String theString) {char aChar;int len = theString.length();StringBuffer outBuffer = new StringBuffer(len);for (int x = 0; x < len;) {aChar = theString.charAt(x++);if (aChar == '\\') {aChar = theString.charAt(x++);if (aChar == 'u') {int value = 0;for (int i = 0; i < 4; i++) {aChar = theString.charAt(x++);switch (aChar) {case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':value = (value << 4) + aChar - '0';break;case 'a':case 'b':case 'c':case 'd':case 'e':case 'f':value = (value << 4) + 10 + aChar - 'a';break;case 'A':case 'B':case 'C':case 'D':case 'E':case 'F':value = (value << 4) + 10 + aChar - 'A';break;default:throw new IllegalArgumentException("Malformed encoding.");}}outBuffer.append((char) value);} else {if (aChar == 't') {aChar = '\t';} else if (aChar == 'r') {aChar = '\r';} else if (aChar == 'n') {aChar = '\n';} else if (aChar == 'f') {aChar = '\f';}outBuffer.append(aChar);}} else {outBuffer.append(aChar);}}return outBuffer.toString();}// 测试public static void main(String[] args) {AddressUtil addressUtils = new AddressUtil();String ip = "0:0:0:0:0:0:0:1";String address = "";try {address = addressUtils.getAddresses("ip=" + ip, "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}System.out.println(address);} }
【管理员】
管理员页面依然采用的layui,实现了对新闻的发布,编辑,详情,删除。
- 点击箭头分页和首页采用的同一个js方法,传的参数不同。
- 类型转义可做成数据字典,通过自定义jstl标签进行转义显示。
- 上传图片,点击上传图片按钮和文章中插入图片采用同一个接口。采用的servlet3.0。好处就是写servlet不用配置web.xml,可以像springMVC一样使用注解。
- @WebServlet(name="imageUpload", urlPatterns="/imageUpload") 替代web.xml配置方式。
- @MultipartConfig 提供HttpServletRequest对文件上传的支持。通过Part p = req.getPart("name");name是input标签的name,如果name是不确定的,那么久用下面这种获取集合的方式获取到Part集合,再遍历之。通过下列一系列操作就可以把本地文件、图片上传到服务器。然后就可以被页面引用啦。
- 图片压缩是必要的,如果上传的图片过大,不仅占网速,占空间,在显示的时候也会出现问题,img会撑破div跑到外面去。后端处理方式通过Thumbnails这个jar包提供一些方法进行压缩,可以判断文件大小,也可以判断宽高,我采用的是宽高。同款jar包下载就在我的资源。
前端处理方式(发布新闻的时候,我是通过复制别的地方的新闻,图片自然就是引用的网上的地址,没有经过后台上传。没 有被压缩,显示会出问题。解决方法:img {max-width:762px;overflow:hidden;})
package cn.nicecoder.servlet;import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;import net.coobird.thumbnailator.Thumbnails;
import net.sf.json.JSONObject;/*** 上传文件servlet*-------------------------------* @author longtian* @date 2018年4月23日下午11:09:00* @description nicecoder.cn*-------------------------------*/
@WebServlet(name="imageUpload", urlPatterns="/imageUpload")
@MultipartConfig
public class UploadImageServlet extends HttpServlet {private static final long serialVersionUID = 1L; @Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8"); Collection<Part> parts = req.getParts(); JSONObject result = new JSONObject();//Part p = req.getPart("name");for (Part part : parts) {String disposition = part.getHeader("content-disposition"); System.out.println("文件描述:" + disposition); //文件名,文件类型,文件大小String fileName = disposition.substring(disposition.lastIndexOf("=")+2, disposition.length()-1); String fileType = part.getContentType(); long fileSize = part.getSize(); System.out.println("fileName: " + fileName); System.out.println("fileType: " + fileType); System.out.println("fileSize: " + fileSize); //1.服务器保存文件路径String uploadPath = this.getServletConfig().getServletContext().getRealPath("/");//2.文件夹按日期分类String folder = new SimpleDateFormat("yyyyMMdd").format(new Date());//3.拼接文件名if(!new File(uploadPath + File.separator + folder).exists()) {new File(uploadPath + File.separator + folder).mkdirs();}//重命名并写入文件fileName = new SimpleDateFormat("yyyyMMdd_HHmmSS").format(new Date()) + fileName.subSequence(fileName.indexOf("."), fileName.length());part.write(uploadPath + folder + File.separator + fileName);//返回存储地址String src = uploadPath + folder + File.separator + fileName;BufferedImage bufferedImage = ImageIO.read(new File(src)); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight(); //图片过大的压缩一下if(width > 762){double scale = new BigDecimal((float)762/width).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); Thumbnails.of(src).size(762,(int) (height * scale)).keepAspectRatio(false).toFile(src); }result.put("code", 0);result.put("msg", "ok");JSONObject subObject = new JSONObject();subObject.put("src", folder + File.separator + fileName );subObject.put("title", fileName);result.put("data", subObject);/*适应layui,所以返回如下格式{"code": 0 //0表示成功,其它失败,"msg": "" //提示信息 //一般上传失败后返回,"data": {"src": "图片路径","title": "图片名称" //可选}}*/}PrintWriter wp = resp.getWriter();wp.write(result.toString());wp.close();}}
【其他页面】
管理员登录页面和权限页面,后期可能会加404页面,这里就一笔带过。
- 管理员登录,管理员界面通关口令通过微信公众号【在相思树下】,回复“1”获取。这样做是防止乱搞,非诚勿扰。公众号也可能会突然分享一波源码的链接,平时不会胡乱推送,可以放心关注啦~。
- 禁止访问页面,登录密码错误或者session过期都会跳到此页面。
【数据库设计】
系统共用了五张表,news<新闻表>,newsclass<新闻类别>,discuss<评论表>,agree<点赞表>,user<用户表>
news表 | |||
名 | 类型 | 长度 | 备注 |
id | int | 10 | 序号 |
img | varchar | 100 | 封面 |
title | varchar | 50 | 标题 |
content | blob | 0 | 内容 |
type | varchar | 10 | 类型 |
author | varchar | 50 | 作者 |
pudate | varchar | 50 | 修改时间 |
click | varchar | 20 | 点击量 |
discuss表 | |||
名 | 类型 | 长度 | 备注 |
id | int | 10 | 序号 |
type | varchar | 10 | 类型 |
discussid | varchar | 10 | 评论内容编号 |
content | blob | 0 | 内容 |
userid | varchar | 50 | 作者 |
pudate | varchar | 50 | 修改时间 |
agree | varchar | 20 | 点赞量 |
agree表 | |||
名 | 类型 | 长度 | 备注 |
id | int | 10 | 序号 |
type | varchar | 10 | 类型 |
agreeid | varchar | 10 | 点赞内容编号 |
userid | varchar | 50 | 作者 |
pudate | varchar | 50 | 修改时间 |
newsclass表 | |||
名 | 类型 | 长度 | 备注 |
id | int | 11 | 序号 |
clsname | varchar | 20 | 类型名 |
user表 | |||
名 | 类型 | 长度 | 备注 |
id | int | 11 | 序号 |
image | varchar | 255 | 头像 |
name | varchar | 255 | 昵称 |
ip | varchar | 20 | 评论人ip |
胡乱写了一堆,可能有的朋友对该项目的源码已经产生了一丢丢的兴趣。那么下面将放出源码的获取方式。虽然是个小项目,但是也投入了一定的精力,所以肯定不能无偿获取哈,希望能够理解。同时项目中仍有许多不足之处,也请多多批评指正。
方式一:CSDN资源下载链接,此乃土豪获取方式,仅需挥洒区区5个积分,便能立马将文中所述同款源码一波带走,简单而又粗暴。
方式二:通过公众号【在相思树下】,回复“签到”二字连续签到3天,亦可获得同款源码下载链接。而且后期有一些小项目的源码也能第一时间获取得到。敬请关注。有的朋友在公众号上私信我,说很着急,想立即获得源码的,请用方式一。说什么也没用,不听~不听~
公众号的回复是机器人回复,我不一定能够实时看见。BUG肯定是有的,有什么问题先自行研究,如果实在不行就在下面留言,或者私信,有时候回复较慢,请见谅。
2018-8-21 公众号故障中。。。
附:链接: https://pan.baidu.com/s/149VZ2ORNLk9eE4WP2ZxGHA 提取码: 39dt 包含表结构和数据。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 巨人是这样成长起来的(转)用户中心==》(抄袭+改良=创新)
任何科技行业的领导企业,最大的竞争力必然是创新能力,一旦失去这种能力,失败就将不可避免,腾讯亦然。又有童鞋表示了对腾讯创新能力的不屑——腾讯不是只会抄袭吗?当看完此文后便知抄袭一论只属小儿之言。如果你只看到这些,那问一句:一家生于草莽,没有爹,没有党的关怀…...
2024/4/17 23:26:25 - 如何避免提交页面,信息未填写完善 就出现注册成功提示 基于js
基于bootstrip做好一个页面后,出现如下效果图这个页面是未经过任何后端处理的页面,如果直接填写一个用户名 或者不填写任何东西都可以注册成功的,先来演示只输入一个用户名 就要可以注册成功的。点击注册之后的页面,再来演示 不输入的界面点击注册的界面;\就会出现如下的结…...
2024/5/7 17:45:29 - 序列比对(二)——Needleman-Wunsch算法之仿射罚分
原创: hxj7 关于全局比对Needleman-Wunsch算法的介绍及线性罚分的实现代码请参考序列比对(一)全局比对Needleman-Wunsch算法。概念引用如下: 线性罚分,即penalty=g*d,其中g为空位长度,d为一个空位的罚分。 仿射型罚分,即penalty=d+(g-1)*e, 其中g为连续空位的长度,d…...
2024/5/7 12:51:02 - wrf模式数据变量说明
以下是WRF输出变量的一个翻译,由于不是所有的变量都接触过,也仅仅是就字面意思翻译,所以有的变量的意义难免是不对的(拿不准的,我会用红色标出),因此请用过其中变量的朋友和我一起来完善它:float LU_INDEX(Time, south_north, west_east) ; LU_INDEX:description = &qu…...
2024/3/31 22:24:45 - 王垠:Kotlin 和 Checked Exception
文章目录1.冷静一下2.Checked Exception(CE)的重要性3.结论? 最近 JetBrains 的 Kotlin 语言忽然成了热门话题。国内小编们传言说,Kotlin 取代了 Java,成为了 Android 的“钦定语言”,很多人听了之后热血沸腾。初学者们也开始注意到 Kotlin,问出各种“傻问题”,很“功利…...
2024/4/16 22:56:16 - Preferences入门
概述在应用中经常会包含"设置"界面,该界面允许用户进行一些选择,从而更改应用的外观等。用户在"设置"界面更改之后的值通常保存在SharedPreferences中,但是如果自己通过代码实现的话,就得自己操作SP去存储。为了简化使用,可以使用Android自带的Prefer…...
2024/4/23 15:11:14 - WRF输出变量说明
以下是WRF输出变量的一个翻译,由于不是所有的变量都接触过,也仅仅是就字面意思翻译,所以有的变量的意义难免是不对的(拿不准的,我会用红色标出),因此请用过其中变量的朋友和我一起来完善它: float LU_INDEX(Time, south_north, west_east) ;LU_INDEX:description = &qu…...
2024/5/4 3:49:08 - 新闻发布系统项目开发文档
新闻发布系统项目开发文档开发一个新闻信息发布的系统,实现门户网站的新闻信息发布与管理,提高门户网站的信息发布自适应能力。应用范围主要针对各门户网站的新闻媒体信息发布与管理。采用B/S结构开发,可通过广域网访问本系统,实现全天候全方位新闻信息发布与管理。本系统涉…...
2024/4/20 6:38:41 - Python3实现两个Excel文件内容比对
最近在工作中,需要人工比对大量的excel格式报表,刚好刚学了Pyhon入门基础知识,想着写个东西练练手,不但能提高代码编写能力,还能减轻工作量,提高工作效率。说干就干,简单的理了逻辑。首先,将目标表和源表的内容分别写入到字典中,Excel表中不确定有没有字段是唯一值,所…...
2024/4/16 22:53:59 - List添加Item时, 如何去判断某个字段, 并且保证字段数据不重复性
marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"> 来自与微软专家Liang Ming的讨论SharePoint中…...
2024/4/16 22:52:52 - 人生苦短 须用Kotlin
原址就在昨天谷歌2017 IO大会宣布将Kotlin列为Android开发的一级语言,Android Studio 3.0也将在不使用插件的情况下自动兼容Kotlin语言。这也就意味着谷歌在专利流氓“甲骨文”公司的逼迫下有慢慢放弃使用Java的想法,当然,短期内想谷歌完全摒弃Java那是不可能,因为当前Andr…...
2024/4/25 15:42:13 - getSharedPreferences和getDefaultSharedPreferences用法差别
自定义的一些偏好设置用getSharedPreferences来获取,例如定义一个loginpref.xml的偏好文件使用SharedPreferences sharedPreferences = getSharedPreferences("loginpref", Context.MODE_PRIVATE);System.out.println("set_location = "+sharedPreference…...
2024/4/16 22:54:04 - 生信入门:序列比对之blast在线和本地使用
主要内容 1 背景 2 在线blast 3 本地blast 3.1 老版本blast 3.2 新版本blast 背景 序列比对(Sequence Alignment)的基本问题是比较两个或两个以上序列的相似性。 blast作为一种序列相似性比对工具,是生物信息分析最常用的一款软件,必须掌握。不管是做两序列相似性的简…...
2024/5/4 8:46:30 - Java Web模拟项目 购物平台 基于ssm框架 mysql数据库 前后端开发
源码链接http://download.csdn.net/detail/qq_21419839/9707922 一、总体效果(ipad端截图)网站前台页面 网站后台管理台页面 二、前台访问链接(用pc访问效果最佳):http://www.liangzhilin.cn:9100/kangyuanquan/(为保证数据安全,后台管理链接不对外公开,如有需要请联系…...
2024/4/16 22:54:59 - 对 Kotlin 的初步了解
引言自从Google I/O 大会上宣布 Kotlin 成为 Android 开发的官方语言,Kotlin 就吸引了很多人的目光,笔者也收集了一些资料,整理成这篇博客来简单介绍下Kotlin。Kotlin的起源:Kotlin是一个基于JVM的新的编程语言,由JetBrains开发。JetBrains,作为目前广受欢迎的Java IDE I…...
2024/4/18 22:31:41 - Android高手进阶教程(七)之----Android 中Preferences的使用!
大家好,我们这一节讲的是Android Preferences 的学习,Preferences 在Android当中被用来记录应用,以及用户喜好等等,它可以用来保存 简单的数据类型,如Int,Double,Boolean等。Preferences中保存的数据可以理解为Map型。我们通过PreferenceManager以及getDefaultSharedPrefe…...
2024/5/3 23:34:05 - 给Extjs的GridPanel增加“合计”行
奇怪,也算玩了2年Ext,怎么还没有一篇关于Ext的博文?这一篇算是第一篇了。要给Extjs的GridPanel增加“合计”行,有这个想法的童鞋想必不在少数。我首先看了官网的例子,没有“合计”。再Google,找到一个看似写的比较好的 [url]http://www.cnblogs.com/over140/archive/2009…...
2024/4/18 9:50:01 - 百度人脸比对Demo
- 百度AI开放平台http://ai.baidu.com/tech/face/compare工程如下所示(需要导入LitJson):- 步骤按照开发文档来,注意需要用API Key和Secret Key来申请一个权限码。代码如下:①-获取权限:using System.Collections; using UnityEngine; using LitJson;namespace XJH {publ…...
2024/4/16 22:55:10 - ECMS网站管理系统
以下资料来自网上 曾经做MBB系统就用了ECMS; 欢迎加入qq群:1543150073 ECMS http://www.phome.net/download/ 学习网 《帝国网站管理系统》英文译为"Empire CMS",简称"Ecms",她是基于B/S结构,且功能强大而易用的网站管理系统。本系统由帝国开发工作组独立开发,是一个…...
2024/5/4 3:35:53 - 心有Java,细嗅Kotlin —— 细数 Kotlin 优雅的语法糖
Kotlin的来历Kotlin的作者是大名鼎鼎的Jetbrains公司。它有一系列耳熟能详的产品,诸如Android兄弟天天用的Android Studio, IntelliJ IDEA, 还有前端的WebStorm, PhpStorm。2011年7月,JetBrains推出Kotlin项目。2012年2月,JetBrains以Apache 2许可证开源此项目。2016年2月15…...
2024/4/16 22:55:05
最新文章
- 经典面试题之滑动窗口专题
class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len INT32_MAX;// 总和int sum 0;int start 0; // 起点for(int i 0; i< nums.size(); i) {sum nums[i];while(sum > targe…...
2024/5/7 19:57:51 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - 数据结构--KMP算法
数据结构–KMP算法 首先我在这里提出以下问题,一会一起进行探讨 1.什么是最长公共前后缀 2. KMP算法怎么实现对匹配原理 3. 最长公共前后缀怎么求解 KMP算法可以用来解决什么问题? 答:在字符串中匹配子串,也称为模式匹配 分析…...
2024/5/5 0:48:22 - Docker实战教程 第1章 Linux快速入门
2-1 Linux介绍 为什么要学Linux 三个不得不学习 课程需要:Docker开发最好在Linux环境下。 开发需要:作为一个后端程序员,是必须要掌握Linux的,这是找工作的基础门槛。 运维需要:在服务器端,主流的大型服…...
2024/5/7 4:40:32 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/7 5:50:09 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57