关于java web开发中的很多小问题集锦
1、导出excel文件,文件名的中文问题
public static void setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {final String userAgent = request.getHeader("USER-AGENT");try {String finalFileName = null;if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器finalFileName = URLEncoder.encode(fileName,"UTF8");}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器finalFileName = new String(fileName.getBytes(), "ISO8859-1");}else{finalFileName = URLEncoder.encode(fileName,"UTF8");}response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");} catch (UnsupportedEncodingException e) {}}
使用方法:
HSSFWorkbook workbook = getHssfWorkbook(forms, "中文名.xls", headers);response.reset();response.setCharacterEncoding("UTF-8");response.setContentType("octets/stream");setFileDownloadHeader(httpRequest,response,"中文文件名.xls");response.setHeader("Connection", "close");response.setHeader("Content-Type", "application/vnd.ms-excel");
2、生成一个随机的字符串,可以作为主键:
UUID uuid = UUID.randomUUID();
UUID.randomUUID().toString().replace("-","")
3、json解析工具,jackson的json工具方法:
//得到对象的json串private String getJsonStr(Object obj){try {return JSONMapper.getInstance().writeValueAsString(obj);} catch (Exception e) {logger.error(e.getMessage(),e);}return null;} //解析字符串为简单java对象
JSONMapper.getInstance().readValue(json,Oper.class);//解析字符串为复杂的java对象
String str = FileUtils.readFileToString(new File("/opt/hotel.json"),"GBK");ObjectMapper objectMapper = JSONMapper.getInstance();
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
returnT = objectMapper.readValue(str, new TypeReference<ResultHandleT<RouteProductVo>>() {}); //jackson的配置属性:objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);//是否允许解析使用Java/C++ 样式的注释(包括'/'+'*' 和'//' 变量)objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);//是否将允许使用非双引号属性名字, (这种形式在Javascript中被允许,但是JSON标准说明书中没有)objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);//是否允许单引号来包住属性名称和字符串值objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);//是否允许JSON字符串包含非引号控制字符(值小于32的ASCII字符,包含制表符和换行符)。 如果该属性关闭,则如果遇到这些字符,则会抛出异常。objectMapper.configure(JsonParser.Feature.INTERN_FIELD_NAMES, true);//决定JSON对象属性名称是否可以被String#intern 规范化表示。,如果允许,则JSON所有的属性名将会 intern() ;如果不设置,则不会规范化,objectMapper.configure(JsonParser.Feature.CANONICALIZE_FIELD_NAMES, true);// 默认下,该属性是开放的。此外,必须设置CANONICALIZE_FIELD_NAMES为trueobjectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);//该特性决定了当遇到未知属性(没有映射到属性,没有任何setter或者任何可以处理它的handler),是否应该抛出一个JsonMappingException异常。这个特性一般式所有其他处理方法对未知属性处理都无效后才被尝试,属性保留未处理状态。
4、读取文本内容,转换为字符串:
import org.apache.commons.io.FileUtils;
String str = FileUtils.readFileToString(new File("d:\\酒店分组数据.txt"),"GBK");
5、freemark中,进行select的默认选择:
<#list min..max as x> <#if fangxing.roomCount==x ><option value="${x}" selected>${x}</option><#else><option value="${x}">${x}</option></#if>
</#list>
6、页面加载完毕之后执行的js,没有生效,改成添加一个时间之后定时执行就可以了。setTimeOut
7、freemark小技巧
${(fangxing.internet)!'-'} 如果字段为空就默认为后面的‘-’假设前提:user.name为null
${user.name},异常
${user.name!},显示空白
${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin
${user.name?default('vakin')},同上
${user.name???string(user.name,'vakin')},同上判断是否存在,通过exists关键字或者"??"运算符。都将返回一个布尔值
user.name?exists
user.name?? 显示日期类型字符串:
${(base.createTime?string("yyyy-MM-dd HH:mm:ss"))!'无数据 '}
8、对list里面的自定义对象进行排序:
Collections.sort(depFlightInfos,new Comparator<FlightSearchFlightInfoDto>(){@Overridepublic int compare(FlightSearchFlightInfoDto dto1, FlightSearchFlightInfoDto dto2) {if("departureTime".equals(req.getSortStr())){//比较当地起飞时间try {String departureTime1 = dto1.getDepartureTime();String departureTime2 = dto2.getDepartureTime();DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date dt1= format.parse(departureTime1);Date dt2= format.parse(departureTime2);if("ASC".equals(req.getSortType().toUpperCase())){return dt1.compareTo(dt2);}else{return dt2.compareTo(dt1);}} catch (ParseException e) {logger.error(ExceptionUtils.getStackTrace(e));}}else if("differentPrice".equals(req.getSortStr())){//比较差价if(CollectionUtils.isNotEmpty(dto1.getSeats())&& CollectionUtils.isNotEmpty(dto2.getSeats())){BigDecimal diffPrice1 = dto1.getSeats().get(0).getDifferentPrice();BigDecimal diffPrice2 = dto2.getSeats().get(0).getDifferentPrice();if("ASC".equals(req.getSortType().toUpperCase())){return diffPrice1.compareTo(diffPrice2);}else{return diffPrice2.compareTo(diffPrice1);}}return 0;}return 0;}
});
return depFlightInfos;
9、使用bigDecimal进行小数点的转化,四舍五入等:
错误原因可能是请求头不符合协议标准,一般都是由于cookie过长导致。
An http 400 bad request error means the server thinks your web browser is not obeying all the HTTP protocol rules.
直接在cmd中执行下面的命令 ----------红色替换为对应的文件夹
for /r D:\test %i in (.svn) do rd /s /q %i
$(document).ready(function() { $('input[valid]').each(function(){ var $this = $(this); var valid = $this.attr('valid'); if(valid=='email'){ $this.blur(function(){ mailValid($this); }); }else if(valid=='num'){ $this.keyup(function(){ onlyNum($this[0]); }); } else if(valid=='decimal'){ $this.keyup(function(){ onlyDecimal($this[0]); }); } }); }); function onlyNum(obj){ obj.value=obj.value.replace(/\D/gi,""); } function onlyDecimal(obj){ obj.value=obj.value.replace(/[^\.0-9_]/gi,""); }
14、关于mysql的查询小陷阱:
SELECT INTERFACE_KEY,COUNT(CASEWHEN RESULT IS NULL OR RESULT = '' OR RESULT = 'SUCCESS' THEN1END) SUCC_COUNT,COUNT(CASEWHEN RESULT = 'FAIL' THEN2END) FAIL_COUNT,COUNT(*) TOTALFROM T_FAPI_FLOWwhere SEARCH_TIME >=to_date('2017-03-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss')and INTERFACE_KEY = 'ACTUALTIME_TRAFFIC_UNION_QUERY_INFO'GROUP BY INTERFACE_KEYORDER BY TOTAL DESC
17、jquery UI中的常用代码,包括表格,以及弹出框,dialog:
列的格式化:{name : 'cityStatus',//有效性index : 'cityStatus',formatter:formatValid,align : 'center',sortable:false}function formatValid(cellvalue, options, rowObject) { return "INVALID"==cellvalue?"无效":"有效";}多选列表: multiselect : true, 得到多选的列的id集合: var ids = "";if(id==null || id==""){ids = $("#vasTransferCityList").jqGrid('getGridParam','selarrrow');if(ids.length == 0){alert("请选择接送机城市!")return false;}}else{ids = id;}弹出框: <div id="configAddLayer" class="content content1" style="display:none; width: 400px; height: 380px;">。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。。</div>显示弹出框:$('#configEditLayer').dialog({title:'修改城市',width:600,height:400,modal:'true'});关闭弹出框: $("#configAddLayer").dialog('close') ;
long查询对应日期:new Date(1493201002146) 字符串查long:new Date("2017-05-8").getTime()
$.ajax({url : payUrl,type : 'post',dataType : "json",contentType : "application/json;",data : JSON.stringify({orderId : orderIdVal,flightOrderNo : orderNoObj,orderMainId : orderMainIdVal,payerId : paymentIdVal,payerName : paymentNameVal}),success : function(data) {},error : function(data) {}});
20、tomcat的远程调试
启动tomcat之后,设置java代码里面的断点就可以了。
23、oracle数据库查看数据库版本:select * from v$version;
24、使用mybatis自动生成mapper的工具生成mapper文件命令:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml
25、java后台收到中文乱码,一种解决方法:
temp = new String(temp.getBytes("ISO-8859-1"), "UTF-8") ;还有可能是因为,页面编码,服务器编码,eclipse设置编码,jsp请求ajax编码等等原因。
26、window.open居中显示:
var openUrl = "";//弹出窗口的url var iWidth=800; //弹出窗口的宽度; var iHeight=600; //弹出窗口的高度; var iTop = (window.screen.availHeight-30-iHeight)/2; //获得窗口的垂直位置; var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; window.open('http://www.baidu.com',"","height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft);
27、得到一个java文件在服务器上面的路径:
System.out.println(ConnectionUtil.class.getResource("/resource/jchem.properties").getPath() );
28、oracle强大的导出工具expdp:
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';exp scott/tiger@orcl file=expdp.dmp Tables=emp
29、递归创建文件夹:
public static void mkDir(File file){
if(file.getParentFile().exists()){
file.mkdir();
}else{
mkDir(file.getParentFile());
file.mkdir();
}
}
public static void main(String[] args) {
File file = new File("c:/2/1/s/e");
mkDir(file);
}
30、jsp中使用struts标签,选择下拉菜单:
<select name="object.hintType" value='${object.hintType}'><option value="0" <c:if test="${object.hintType==0}">selected</c:if>>不再提醒</option><option value="1" <c:if test="${object.hintType==1}">selected</c:if>>继续提醒</option></select>
31、文本出现下划线:
style="text-decoration:underline"
32、工具包进行反射的调用:
BeanUtils.setProperty(hotelForm,propertyName, img);
33、把class文件夹下面的class生成jar包:
直接在classes文件夹里面cmd命令:::
jar -cvf aaaaaa.jar com/*
34、读取java属性文件:
static {PropertyResourceBundle config = (PropertyResourceBundle) PropertyResourceBundle.getBundle("SystemConfig");ACCOUNT = config.getString("zhongtai_account");PASSWORD = config.getString("zhongtai_password");IP = config.getString("zhongtai_ip"); }
35、查询oracle数据库中全部表名:
select * from all_tab_comments t where t.OWNER = 'HOLIDAYBAK'
36、金额大写的js函数:
$(function(){ $('input[isMoney]').each(function(){var $this = $(this);$this.next().html(numToCny($this.val()));});$('input[isMoney]').keyup(function(){var $this = $(this);$this.next().html(numToCny($this.val()));}); });function numToCny(num) {if (isNaN(num) || num > Math.pow(10, 12))return ""var cn = "零壹贰叁肆伍陆柒捌玖"var unit = new Array("拾百千", "分角")var unit1 = new Array("万亿", "")var numArray = num.toString().split(".")var start = new Array(numArray[0].length - 1, 2)function toChinese(num, index){var num = num.replace(/\d/g, function($1){return cn.charAt($1) + unit[index].charAt(start-- % 4 ? start % 4 : -1)})return num}for (var i = 0; i < numArray.length; i++){var tmp = ""for (var j = 0; j * 4 < numArray[i].length; j++){var strIndex = numArray[i].length - (j + 1) * 4var str = numArray[i].substring(strIndex, strIndex + 4)var start = i ? 2 : str.length - 1var tmp1 = toChinese(str, i)tmp1 = tmp1.replace(/(零.)+/g, "零").replace(/零+$/, "")tmp1 = tmp1.replace(/^壹拾/, "拾")tmp = (tmp1 + unit1[i].charAt(j - 1)) + tmp}numArray[i] = tmp}numArray[1] = numArray[1] ? numArray[1] : ""numArray[0] = numArray[0] ? numArray[0] + "元" : numArray[0], numArray[1] = numArray[1].replace(/^零+/, "")numArray[1] = numArray[1].match(/分/) ? numArray[1] : numArray[1] + "整"return numArray[0] + numArray[1] }
37、struts的循环list,然后再做判断标签:
<s:iterator value="list" var="stu" status=“aaa”><s:property value="#stu.hasImg" />
<s:if test="#stu.hasImg==1"> //注意这里,没有大括号</s:if><s:else>无图片</s:else>
</s:iterator> 关于status属性:
#status.odd 是否奇数行
#status.count 当前行数
#status.index 当前行的序号,从0开始『#status.count=#status.index+1』
#status.first 是否第一行
#status.last 是否最后一行
#status.modules(int) 当前行数取模
判断方法是:
<s:iterator value="list" status="st">
<s:if test="#status.last">
........
</s:if>
</s:iterator>
38、关于oracle的行列转,10g中换有一个函数: wmsys.wm_concat
38、poi中合并单元格
CellRangeAddress region = new CellRangeAddress((short)start, (short) (start+i-1), cols[ii], (cols[ii]));
sheet.addMergedRegion(region);在用poi在EXECL报表设计的时候,遇到单元格合并问题,用到一个重要的函数:
CellRangeAddress(int, int, int, int)
参数:起始行号,终止行号, 起始列号,终止列号
39、oracle中的job,以及创建一个执行job的存储过程:
variable update_order_job number;
begindbms_job.submit(:update_order_job, 'PROCE_UPDATE_ORDER;', sysdate, 'sysdate+1/1440');--每1执行PROCE_UPDATE_ORDER存储过程
end;创建JOB执行存储过程:
#1,--创建Job
variable update_order_job number;
begindbms_job.submit(:update_order_job, 'PROCE_UPDATE_ORDER;', sysdate, 'sysdate+1/1440');--每1执行PROCE_UPDATE_ORDER存储过程
end;
#2,--创建Job或:
declare update_order_job number;
begindbms_job.submit(update_order_job, 'PROCE_UPDATE_ORDER;', sysdate, 'sysdate+1/1440');--每1执行PROCE_UPDATE_ORDER存储过程
end;
#3,删除Job
begindbms_job.remove(23);--和select * from user_jobs; 中的job值对应,看what对应的过程
end;
#4,执行Job
begindbms_job.run(24);
end;
#5,查看Job
select * from user_jobs;
40、导出oracle中的全部的序列的sql语句:
select 'CREATE SEQUENCE '||t.sequence_name||' minvalue '||t.min_value||' maxvalue'||' '||t.max_value||' increment by '||t.increment_by ||' start with '||(t.last_number)||' nocache order nocycle;' from user_sequences t
41、在js里面上传一个富文本编辑器中的含有特殊转义字符,post到后台要进行字符串的转义:
function replace(str) {return str.replace(/&nbsp;/g, '').replace(/&/g, '').replace(/ /g, ''); }return replace(encodeURI(vals));
42、log4j的写法:很多很多的logger import不要写错:
import org.apache.log4j.Logger;
private static Logger logger = Logger.getLogger(ToBigOrderServiceImpl.class);
43、mybatis中执行存储过程:
<select id="copyProduct" statementType="CALLABLE"> <![CDATA[ {call PROCE_COPY_PRODUCT (#{productId,mode=IN,jdbcType=VARCHAR})} ]]> </select> 对应的Mapper接口文件: void copyProduct(String productId);
44、linux中设置java环境变量:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
45、设置tomcat使用的java内存:
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=256m -XX:PermSize=512m -XX:MaxPermSize=512m"
46、通过wsdl2java.bat生成的webservice客户端,然后调用方法示例如下:
MobileCodeWS mobileCodeWS = new MobileCodeWSLocator();MobileCodeWSSoap mobileCodeWSSoap;try {mobileCodeWSSoap = mobileCodeWS.getMobileCodeWSSoap();String mobileCodeInfo = mobileCodeWSSoap.getMobileCodeInfo("18721266529", null);System.out.println(mobileCodeInfo);} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}
47、修改oracle数据库的用户名密码:alter user muhol_psm2 identified by eholiday_psm2
48、在spring容器加载完毕之后,执行一段代码:
public class InstantiationCaches implementsApplicationListener<ContextRefreshedEvent> {@Overridepublic void onApplicationEvent(ContextRefreshedEvent event) {if (event.getApplicationContext().getParent() == null) {System.out.println("初始化缓存容器.");new Thread(new Runnable() { @Overridepublic void run() {ICacheInit tfProductCache = (ICacheInit) SpringContextUtil.getBean("tfProductDetailInfoCache");tfProductCache.initCache(); } }).start(); }}
}在spring配置文件中添加:<bean class="com.atoz.util.InstantiationCaches"></bean>
49、spring的自动加载注解:@Autowired
在spring的注解注入中,可以使用@Autowired
如果要修改对应的注解不是默认使用名称,就:
@Autowired
@Qualifier("tfProductDetailInfoCache")
private ITfProductDetailInfoService tfProductDetailInfoService;
50、异步上传图片的js:ajaxfileupload.js
51、oracle中关于用户的一些强大的sql语句:
--删除用户之后 先锁定用户
alter user muholb2c_psm3 account lock;--找到当前用户全部的会话id
SELECT * FROM V$SESSION WHERE USERNAME='MUHOLB2C_PSM3' --杀掉全部的会话
alter system kill session '211,35901'--删除用户
drop user muholb2c_psm3 cascade--在指定表空间上面创建用户
create user muholb2c_psm3identified by muholb2c_psm3default tablespace TBS_PSM_B2Cquota 10M on TBS_PSM_B2C ;--对用户授权
grant DBA to muholb2c_psm3;
52、Md5密码加盐处理:一般是密码直接md5处理,但是如果在密码前面加上一个变化的值,例如(用户名+密码)然后在进行md5加密,就安全多了。因为即使密码一样的情况,也不会被加密成为一样的数据(因为用户名不一样。。)
53、tomcat7启动报错:
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
解决方法为:在Tomacat7的context.xml文件里的<Context>中加上<Loader delegate="true" />
True,表示tomcat将遵循JVM的delegate机制,即一个WebAppClassLoader在加载类文件时,会先递交给SharedClassLoader加载,SharedClassLoader无法加载成功,会继续向自己的父类委托,一直到BootstarpClassLoader,如果都没有加载成功,则最后由WebAppClassLoader自己进行加载。
False,表示将不遵循这个delegate机制,即WebAppClassLoader在加载类文件时,会优先自己尝试加载,如果加载失败,才会沿着继承链,依次委托父类加载。
54、查看是否打开8788端口:netstat -an | grep 8788
55、mybatis插入的时候,设置主键根据序列设置值:
<insert id="insert" parameterType="com.atoz.pojo.ZoneTravelLine" ><selectKey resultType="java.lang.Integer" keyProperty="id" order="BEFORE" >select SEQ_zone_travel_line.nextval from dual</selectKey>insert into ZONE_TRAVEL_LINE (ID, ZONEID, TRAVEL_LINE)values (#{id,jdbcType=DECIMAL}, #{zoneid,jdbcType=DECIMAL}, #{travelLine,jdbcType=DECIMAL})</insert>
56、动态编译部署java工程,修改java代码不重启工程:配置jrebel插件
-Xms512m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=256M -noverify -javaagent:E:/jr-ide-idea/lib/jrebel/jrebel.jar -Drebel.log=c:\rebel.log -Drebel.dirs=D:\xiujiala\Webroot\WEB-INF\classes
public class BeanCopy {public static <T> T copyBeanFrom(Object src, Class<T> clazz) {try {T ans = clazz.newInstance();BeanUtils.copyProperties(ans, src);return ans;} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e.getMessage());}}
}测试类:SsoUserLoginToken query = new SsoUserLoginToken();query.setCustomerid("123123");query.setLoginType("123");query.setMobile("3222222222222");UserLoginTokenBean ans = BeanCopy.copyBeanFrom(query,UserLoginTokenBean.class);System.out.println(ans.getCustomerid());
58、 js计算除法,有精度控制 下面是返回123.45% 精度为2
function accDiv(arg1,arg2) {var t1 = 0,t2 = 0,r1,r2;try {t1 = arg1.toString().split(".")[1].length} catch (e) {}try {t2 = arg2.toString().split(".")[1].length} catch (e) {}with (Math) {r1 = Number(arg1.toString().replace(".",""))r2 = Number(arg2.toString().replace(".",""))var aa = (r1 / r2) * pow(10,t2 - t1)*100;return aa.toFixed(2);}}
关于java web开发中的很多小问题集锦相关推荐
- java sessionstate_在Java Web开发中自定义Session
Session在存储安全性要求较高的会话信息方面是必不可少的,对于分布式Web应用自定义Session支持独立的状态服务器或集群是必须的.本文就来教大家如何在Java Web开发中自定义Session ...
- java web开发中Filter使用Annotation配置 (转载)
为什么80%的码农都做不了架构师?>>> 为了在java中得到request和response对象,搜索到了 <如何在Java的普通类中获取Session以及reques ...
- Java Web开发中路径问题小结
Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...
- Java Web开发中,自定义过滤器被执行两次的原因分析及解决办法
本文出处:http://blog.csdn.net/chaijunkun/article/details/7646338,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...
- Java web 圈子设计_关于Java web开发中的面向对象问题?
这可能是受培训班/网络视频教程的荼毒而导致的情况,虽然很多人口口声声地说java是面向对象,但是他们平时工作过程中却是面向接口函数的面向过程的编程,自己还不自知,说起java的面向对象仍是一脸自豪,很 ...
- java web开发中会遇到的异步执行方案
http://code.google.com/p/asyn4j/wiki/user_guide
- java开发 图片显示不出来_java web开发中 显示图片的问题
记录一个java Web开发中显示图片的小问题: 我碰到的问题是:把服务器上存的图片,在客户端的浏览器中显示出来.解决方法如下: 两种显示方式 一是:在servlet 或 action中直接输入图片到 ...
- java和Mysql数据一致性_java web开发中数据一致性的问题
在java web开发中,数据存储介质有如下几种数据库(rdms,nosql) 缓存系统(redis,memcached,ehcache) java内部数据结构(map,list) 文件存储(fast ...
- java web开发工具有哪些?
工欲善其事,必先利其器,好的开发工具能让程序猿们的Java web开发学习坐上高铁快车.那么今天小编就先整理一下感觉用来feel 倍爽的开发神器吧! 一.IntelliJ IDEA idea相信很多小 ...
最新文章
- jquery 封装页面之间获取值
- bootstrap 模态窗口 多重/多个弹窗滚动条补丁
- 给Apache虚拟主机增加端口的方法
- 【杂谈】来自一个懵懂青年的表白!
- 没看完这11 条,别说你精通 Python 装饰器
- appid 参数错误_辽宁罗茨风机参数
- Android学习网站
- 算法入门篇九 暴力递归
- BugTracker.NET安装指南
- Nginx 简单命令
- Dom-Attribute对象
- 每天Leetcode 刷题 初级算法篇-位1的个数
- thinkphp 5.0 模块设计
- mmap库:Python内存映射文件操作
- 韩顺平oracle教学笔记,韩顺平oracle视频笔记一
- WEB应用组合——LAMP软件源码编译安装
- 幼儿园小程序实战开发教程
- python中列表的使用
- intellij idea实现代码实时翻译的插件开发
- Flux架构思想在度咔App中的实践