开发细节记录(一)

10 篇文章 0 订阅

目录

1.javaw

2.emmet插件

3.工具选型参考模板

4.HTML中事件传递

5.前端编写利器

6.线上前端编写

7.常用工具网站

8.json转换

9.servlet的jar包引入

10.JSP标准标签引入

11.javascript操作文件

12.sessionid

13.tomcat和servlet版本

14.springmvc获取根路径

15.html获取位置

16.easyui问题

17.静态方法

18.泛型

19.获取jar包中文件

20.spring扫描jar包中文件

21.干练的判断

22.transient关键字使用

23.工具网站

24.mysql的伪哈希码

25.xml操作

26.mybatis传值

27.关于socket

28.IT相关网址

29.日志类实例化

30.UML学习

31.各类型数据库连接

32.数据源比较

33.javaweb汇总博客

34.jsp自定义标签

35.HTML编码演进


1.javaw

使用win10,jdk8 javaw打开jar包可能修改的注册表项为HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command,

某一次win7,jdk8修改上述注册表项没有效果,修改HKEY_CLASSES_ROOT\jar_auto_file\shell\open\command后能实现。

2.emmet插件

 sublime的emmet插件的使用参考网址:sublime Text3中Emmet插件的安装和使用_H小志-CSDN博客

上面emmet插件安装过程中:

1.ctrl+shift+p打开包控制窗口,输入install package,选择安装install package control;

2.ctrl+shift+p输入install package,选择install package,sublime会自动加载可用的插件;

3.在打开的可选插件窗口中,输入emmet,选中emmet进行安装(也可以安装emmet css snippets)。

ps. 使用sublime的emmet插件,需要安装pyv8,网上教程有些繁杂,参见https://github.com/emmetio/pyv8-binaries,简洁清晰明朗,这个方法不止可以在sublime下安装pyv8,将链接中提到的PyV8文件夹复制到D:\Program Files\Python\Python36\Lib\site-packages,就可以给本机安装PyV8模块了。

3.工具选型参考模板

上图为一些工具的对比,不止对于画图软件,对于工具选型,上图中显示的一些观察角度也具有参考意义,图片来源:思维导图软件 XMind 和 MindManager 哪个更好? - 知乎

4.HTML中事件传递

Html控制dom事件的传递:event.preventDefault()与event.stopPropagation()的使用,参考:  阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别_积少成多-CSDN博客_阻止默认事件

5.前端编写利器

browser-sync工具的常用命令(这是python包):

browser-sync start --server  --files "**"

6.线上前端编写

线上实时编写前端工具:https://codepen.io/

7.常用工具网站

不止json内容,还有正则,加/解密,文档等

JSON在线 | JSON解析格式化—SO JSON在线工具

8.json转换

JSON 与 对象 、集合 之间的转换 - Free-Dom - 博客园

jackson完成json和对象/map/list互转_飞翔的鸡肉-CSDN博客

9.servlet的jar包引入

jsp页面报错,因为没有引入对应jsp的api,引入方式:

		<dependency>
		    <groupId>javax.servlet.jsp</groupId>
		    <artifactId>javax.servlet.jsp-api</artifactId>
		    <version>2.3.3</version>
		    <scope>provided</scope>
		</dependency>

10.JSP标准标签引入

jsp的标准标签,头标签为:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

引入依赖的jar包:

		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jstl</artifactId>
		    <version>1.2</version>
		</dependency>
		<dependency>
		    <groupId>taglibs</groupId>
		    <artifactId>standard</artifactId>
		    <version>1.1.2</version>
		</dependency>

11.javascript操作文件

 javaScript读取与写入客户端文件:http://www.jb51.net/article/49867.htm

12.sessionid

当浏览器请求一个servlet,servlet内如果不去操作request与response,会使得session不创建。只是简单的相应,而该请求没有sessionid。

13.tomcat和servlet版本

tomcat使用的servlet版本对应关系:

14.springmvc获取根路径

springmvc获取系统运行的路径:

在web.xml文件中配置webAppRootKey参数并添加相应的监听器:

  <listener>
	<listener-class>org.springframework.web.util.WebAppRootListener</listener-class>
  </listener>
  <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>web.root.my</param-value>
  </context-param>

在需要的地方通过

System.out.println(System.getProperty("web.root.my"));

来获取,通常结果为项目路径如D:\server\Tomcat-8.0.15\webapps\tt。

15.html获取位置

获取打开窗口的相对屏幕的绝对位置:

浏览器展示内容的像素比:

window.devicePixelRatio

屏幕的像素大小:

window.screen.width
window.screen.height

若浏览器的像素比不是1,则通过$(xxx).width()获取到的大小和实际像素的大小关系为:

var realWidth = $(xx).width()*window.devicePixelRatio

16.easyui问题

i. 使用easyui-combobox指定值的属性是valueField;

使用easyui-combogrid指定值属性是idField;

在使用easyui-combogrid时,将属性指定为valueField,导致无法选择值,调了数小时 。

总结:idField或valueField不指定,或指定错误,会使得无法选择值。

ii. 在使用datagrid时,在第一页勾选了值,跳转到第二页,在回到第一页勾选的值不存在了,若要easyui记录勾选的值,需要提供idField属性,如:idField:'id'.

17.静态方法

 静态方法导入:

package com.hurricane.learn.feign;

import static java.lang.Math.abs;


public class App {

	public static void main(String[] args) {
		System.out.println(abs(-12));
	}

}

18.泛型

泛型的使用:

    public <T> T target(Class<T> apiType, String url) {
      return target(new HardCodedTarget<T>(apiType, url));
    }

19.获取jar包中文件

获取jar包下的文件链接格式:

jar:file:/D:/Tomcat-8.0.15-app/webapps/app/WEB-INF/lib/app.jar!/META-INF/resources/app/a.txt

20.spring扫描jar包中文件

spring中扫描路径配置classpath*:可以指定扫描jar包中的文件,classpath:不扫描jar包中的文件,此外,配置jar包中指定文件的扫描路径时classpath*:+解压jar包获取到的路径如:

classpath*:META-INF/resources/**/aa.txt

21.干练的判断

经典的渐进判断(代码更简短干练):

    static Class<?> comparableClassFor(Object x) {
        if (x instanceof Comparable) {
            Class<?> c; Type[] ts, as; Type t; ParameterizedType p;
            if ((c = x.getClass()) == String.class) // bypass checks
                return c;
            if ((ts = c.getGenericInterfaces()) != null) {
                for (int i = 0; i < ts.length; ++i) {
                    if (((t = ts[i]) instanceof ParameterizedType) &&
                        ((p = (ParameterizedType)t).getRawType() ==
                         Comparable.class) &&
                        (as = p.getActualTypeArguments()) != null &&
                        as.length == 1 && as[0] == c) // type arg is c
                        return c;
                }
            }
        }
        return null;
    }

22.transient关键字使用

transient使用与对象系列化:

Java transient关键字使用小记 - Alexia(minmin) - 博客园

23.工具网站

 HTTP状态码详解:HTTP状态码 | 菜鸟教程,W3CSchool手册

各种使用工具:码工具 - 代码在线工具箱  (文件对比等)

站长工具:站长工具 - 站长之家  (正则表达式等)

各种状态码的意义:HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析_ningxinyu520的专栏-CSDN博客

24.mysql的伪哈希码

select crc32('aaaa') from dual;    -- 将字符串转换为整形(伪哈希码)

25.xml操作

java通过xpath操作xml:java中使用xPath读取xml中的数据_puyangmengxue的专栏-CSDN博客_java xml xpath

26.mybatis传值

${sql}可以直接读取属性作为查询语句;

#{sql}只能作为一个参数传入。

27.关于socket

使用writer向输出流输出数据时,一行的结尾必须为回车("\n"),否则即使手动调用了flush方法,也无法写入。

为了方便起见,可以使用printwriter,它有一个println方法,且可以在实例化时指定自动冲刷(flush),这样每执行一次println方法,就向输出流中输出了一次数据,不需要再手动添加"\n"字符与手动调用flush方法。

28.IT相关网址

[置顶] 我的私房IT学习网站_实践求真知-CSDN博客

29.日志类实例化

看spring源码时,其中的日志实例定义通常为:

private static final Log logger = LogFactory.getLog(PathMatchingResourcePatternResolver.class);

当然,spring是使用的commons-logging日志接口。

30.UML学习

UML类图语言参考:类图的语法和功能

安装:在Sublime Text 3安装PlantUML插件_总长-CSDN博客

使用:使用 Sublime + PlantUML 高效地画图 - 简书

 PlantUML_FamilyYuan的博客-CSDN博客_plantuml

31.各类型数据库连接

PostgreSQL: 
(org.postgresql.Driver)
jdbc:postgresql://localhost:5432/test

Oracle: 
(oracle.jdbc.driver.OracleDriver)
jdbc:oracle:thin:@localhost:1521:xodb

MS: 
SQLServer (2005) 
(com.microsoft.sqlserver.jdbc.SQLServerDriver)
jdbc:sqlserver://localhost:1433;databaseName=testdb

MySQL: 
(com.mysql.jdbc.Driver)
jdbc:mysql://localhost:3306/ireport

32.数据源比较

数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)_qq_31125793的博客-CSDN博客

33.javaweb汇总博客

JavaWeb学习总结 - 标签 - 孤傲苍狼 - 博客园

34.jsp自定义标签

TagSupport与BodyTagSupport的区别_NRGAGA的专栏-CSDN博客

35.HTML编码演进

网页使用的编码集问题:ASCII--->ISO-8859-1----->Unicode(UTF-8(网页编码与传输等),UTF-16(用于操作系统与环境))。
ASCII为美国信息交换标准代码,由美国国家标准学会制定;
ISO-8859-1为国际标准化组织(ISO)制定;
Unicode:由于上面列出的字符集都有容量限制,而且不兼容多语言环境,Unicode 标准由Unicode联盟开发了出来 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值