1.<context:property-placeholder location="classpath*:*.properties"/>
classpath*指的是src以及其子包(至于是直接子包,还是包括所有的子包,目前不清楚)
classpath指的是src包
2.@service 注解
如果@service后面接了从controller那边传过来的实现类对象名称
即 @service("bs") 那么在applicationContext-service.xml
里就不用配置<bean id="bs" class="ssm_ch01.demo.service.impl.BizServiceImpl"></bean>
反之,只是@service,就需要配置bean
3.@autowired [自动连接] 注解,
在不使用注解时候(即所有的注解都不使用的时候),我们需要配置相应的bean
比如说applicationContext-service.xml中的
并且在服务层,也就是实现类中,要给私有化的接口
[如:private BizDao bizDao]提供set和get的方法,
即
【
public BizDao getBizDao() {
return bizDao;
}
public void setBizDao(BizDao bizDao) {
this.bizDao = bizDao;
}
】
但是使用@autowired即:
@Autowired
private BizDao bizDao;
之后,我们就可以不用配置
<bean id="bs" class="ssm_ch01.demo.service.impl.BizServiceImpl"></bean>
同时也不用写set和get方法了,因为spring已经帮我们做了
4.model.addAttribute和request.setAttribute同理
5.copy项目的时候,除了变量、链接地址、xml文件、别名、还有注解需要更改添加
6.注解代替response.getWriter时候,
【
解决方法一:
@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8")
/**输入手机号码后判断手机号是否存在*/
@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8")
@ResponseBody
public String getphone(String phone,HttpSession session){
Users u=service.selectPhoneService(phone);
if(u==null){//如果为空,则需要注册
String str="请您先注册,再登录。";
session.setAttribute("str", str);
return "请您先注册,再登录。";
}
return "true";
方法二,在spring-mvc.xml中添加:
<!-- 处理请求返回json字符串的中文乱码问题 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
】
7.Integer int一些关系
Integer a1=new Integer(x)
Integer a2=new Integer(x)
a==a2
两个都是 new Integer 的时候,其他的不用看,结果为false(比的是堆内存的地址,都是new出来的,所以地址不同,由程序员控制)
Integer a1=new Integer(x)
Integer a2=x
a1==a2
一个是 a1的new Integer 引用的堆内存的地址(或者说引用指向堆),而a2指向专门存放它们的内存(方法区的常量池)
所以也是false
Integer a1=127
Integer a2=127
栈内存缓存区会对值是-128到127的Integer对象进行缓存,所以在这个取值范围内的Integer对象值相同时,
指向专门存放它们的内存(方法区的常量池)的地址相同,而非这个范围,就会被重新new也就重新实例化,那么就是false
int a1=222
Integer a2 =222
int和integer之间会有自动拆装箱的过程,所以是true
8.http://www.mvnrepository.com
mavenrepository下载地址
9.response.getCookie()
(JSP中获取cookie)
10.把JSON字符串转pojo的时候,JSON对象中的键要和pojo中的私有属性名一致
Product Pro = (Product) JsonUtil.getObject4JsonString(pro,
Product.class);
【
@RequestMapping(value = "/ajax.action", produces = "text/plain;charset=UTF-8")
@ResponseBody
public String executionQuery(@RequestParam("pro") String pro,
HttpServletRequest request, HttpServletResponse response,
Model model) {
System.out.println("接收到的-----------------------------------"+pro);
Product Pro = (Product) JsonUtil.getObject4JsonString(pro,
Product.class);
if(Pro==null){
System.out.println("pro居然是空的");
}
System.out.println("proname:**********************************"+Pro.getProname());
// 把JSON字符串变成pojo对象
List<SmbmsBill> ListPro = bs.getQueryBillByKeyWords(Pro);
JSONArray jarr = JSONArray.fromObject(ListPro);
return jarr.toString();
}
】
11.单例和SqlSessionFactory
需要导入jar包
【
package com.accp.util;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class BuildSqlSessionUtil {
private BuildSqlSessionUtil() {
}
public SqlSessionFactory ssf = null;
public static BuildSqlSessionUtil bscu = null;
public static BuildSqlSessionUtil getInstance() {
if (bscu == null) {
bscu = new BuildSqlSessionUtil();
}
return bscu;
}
public SqlSessionFactory getSqlSessionf() {
String resource = "mybatis-config.xml";
try {
if (ssf == null) {
InputStream inputStream = Resources.getResourceAsStream(resource);
ssf = new SqlSessionFactoryBuilder().build(inputStream);
}
return ssf;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
}
public class Test_01 {
public static void main(String[] args) {
SqlSessionFactory ssf = BuildSqlSessionUtil.getInstance()
.getSqlSessionf();
SqlSession sqlsession = ssf.openSession();
try {
List<province>pinfo = sqlsession.getMapper(BizMapper.class).getProvinceInfo();
sqlsession.commit();
for (province pv : pinfo) {
System.out.println("qq"+pv.getPid()+"qq"+pv.getPname()+"qq"+pv.getPcity());
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
sqlsession.close();
}
}
}
】
12.Hibernet的实体类中,谁是主键,谁的xml中就可以配置set集合,并且类中也要私有化set集合。
a表
b表
ab表
多对多
ab表可以被配置在a表或者b任意一方中的xml中
我私有的set集合(你的泛型) 共用表 级联
我被引用的主键
你的路径 你的主键名
13.
add import 是快捷键 ctrl+shift+m
organize imports应该是ctrl+shift+o的操作
add import 导入指定的类
organize imports导入所有需要导入的类,并且如果有些
import是没用的,那么eclipse会自动删除
14./**回车 可以完成快速注释,方法被调用时鼠标hover带说明
15.泛型T与占位符
泛型T的理解是这样的,T代表某一个具体的引用数据类型!
List或者Set、Map还有Tree这些集合,是可以存放任何引用数据类型的,但是在我们实际使用的过程中,你会发现,我们在集合中保存的数据,一般来说其类型是一致的!
比如你有一个Student类,一个Teacher有一个存放学生的集合List<Student> studentes = ArrayList<Student>();
泛型的使用,是在编译过程中进行约束性检查!
比如studentes.add(new Student())是正确的添加元素!studentes.add(new Teacher())则是错误的!
你的两个方法是有区别的:
第一个方法:返回的是<T>,泛型!有返回值!
第二个方法返回的是空!没有返回值!
16.ctrl+T 打开方法的实现继承层次结构图
17.全外连接full 表数据连接
18.当<welcome-file>后直接是请求时,需要在<servlet-mapping>中
添加该请求的具体请求映射名称:
<url-pattern>/init.action</url-pattern>
具体如下:
<welcome-file-list>
<welcome-file>init.action</welcome-file>
</welcome-file-list>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
<url-pattern>/init.action</url-pattern>
</servlet-mapping>
19.
ctrl+o 当前类中查询相关属性
ctrl+shift+r 开启查询功能(当前项目中查询)
20.
A接口的类名后加了泛型,并且泛型继承C类,
此时B类实现A类,被实现的A类的泛型中不需要写C类,
但是B类的类名后要加泛型,并且泛型要继承C类
如: public interface A<T,E extends Serialiazable>
public class B<T,E extends Serialiazable> implements A<T,E>
21.
JSP页面通用头,支持jstl(el表达式)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
22.对日期转化成普通格式到页面上时
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<td>
<fmt:formatDate value="${xl.rq }" type="date" dateStyle="default"/>
</td>
23.传输二进制文件流
<form action="springUpload.action" method="post" enctype="multipart/form-data" style="border:1px solid green; height:100px;">
24.
JSON.stringify("字符串")
JSON.stringify(json对象)
25.
使用ssm框架注解的时候进行ajax的requestMapping时
jsp页面的ajax中必须配置
【
dataType:"JSON",
】
26.
【
数组有四种定义的方式
使用构造函数:
var a = new Array();
var b = new Array(10);
var c = new Array("first", "second", "third");
或者数组直接量:
var d = ["first", "second", "third"];
扩展:
function ObjStory(id,biaoti,author,type) //声明对象
{
this.ID = id;
this.Biaoti= biaoti;
this.Author= author;
this.Type = type;
}
var arr = new Array();//声明数组,用来存储标题信息
var writer= new ObjStory(11,‘大家去看海’,‘李大胆’,‘文艺类’);//声明对象
arr[0]=writer;//向集合中添加对象
另一种方法:
var Array=[];
Array.push(new ObjStory(12,‘大家去看海’,‘李大胆’,‘文艺类’));
Array.push(new ObjStory(14,‘大家去看天’,‘李小胆’,‘文艺类’));
】
27.
js把超长毫秒时间戳转年月日格式
【
得到后台从数据库中拿到的数据我们希望格式是
2016年10月25日 17时37分30秒 或者 2016/10/25 17:37:30
然而我们前台得到的却是一段数字(时间戳,毫秒数)
1477386005
我们要将时间戳转化为我们想要的格式。
核心方法 :
1477386005是我从后台得到时间戳 (注意:有的时候得到的时间戳是已经乘以1000的)
var unixTimestamp = new Date( 1477386005*1000 ) ;
commonTime = unixTimestamp.toLocaleString();
alert(commonTime);
但是我希望转换为我自己想要的格式,就在本页面重写一下 toLocaleString()方法即可。
Date.prototype.toLocaleString = function() {
return this.getFullYear() + "年" + (this.getMonth() + 1) + "月" + this.getDate() + "日 " + this.getHours() + "点" + this.getMinutes() + "分" + this.getSeconds() + "秒";
};
】
【
// 简单的一句代码
var date = new Date(时间戳); //获取一个时间对象
/**
1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了
2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_obj_date.asp
*/
date.getFullYear(); // 获取完整的年份(4位,1970)
date.getMonth(); // 获取月份(0-11,0代表1月,用的时候记得加上1)
date.getDate(); // 获取日(1-31)
date.getTime(); // 获取时间(从1970.1.1开始的毫秒数)
date.getHours(); // 获取小时数(0-23)
date.getMinutes(); // 获取分钟数(0-59)
date.getSeconds(); // 获取秒数(0-59)
】
28.
使用ajax时进行append操作,如果用jquery直接绑定到具体元素,会导致翻页后的jquery代码失效
使用live方法可以解决,具体格式
【
$('.clickme').live('click', function() {
alert("Live handler called.");
});
】
详件jqueryApi中讲解
29.
//Map集合用 JSONObject jarr = JSONObject.fromObject(sth);
//List集合用 JSONArray jarr = JSONArray.fromObject(sth);
30.mybatis模糊查询
1. sql中字符串拼接
SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%');
2. 使用 ${...} 代替 #{...}
SELECT * FROM tableName WHERE name LIKE '%${text}%';
3. 程序中拼接
Java
// String searchText = "%" + text + "%";
String searchText = new StringBuilder("%").append(text).append("%").toString();
parameterMap.put("text", searchText);
SqlMap.xml
SELECT * FROM tableName WHERE name LIKE #{text};
4. 大小写匹配查询
SELECT * FROM TABLENAME WHERE UPPER(SUBSYSTEM) LIKE '%' || UPPER('jz') || '%'
或者
SELECT * FROM TABLENAME WHERE LOWER(SUBSYSTEM) LIKE '%' || LOWER('jz') || '%'
31.
遍历Map集合的方法
转]Java中HashMap遍历的两种方式
原文地址: http://www.javaweb.cc/language/java/032291.shtml
第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以后一定要使用此种方式!
第二种:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
效率低,以后尽量少使用!
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
public class HashMapTest {
public static void main(String[] args) ...{
HashMap hashmap = new HashMap();
for (int i = 0; i < 1000; i ) ...{
hashmap.put("" i, "thanks");
}
long bs = Calendar.getInstance().getTimeInMillis();
Iterator iterator = hashmap.keySet().iterator();
while (iterator.hasNext()) ...{
System.out.print(hashmap.get(iterator.next()));
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
listHashMap();
}
public static void listHashMap() ...{
java.util.HashMap hashmap = new java.util.HashMap();
for (int i = 0; i < 1000; i ) ...{
hashmap.put("" i, "thanks");
}
long bs = Calendar.getInstance().getTimeInMillis();
java.util.Iterator it = hashmap.entrySet().iterator();
while (it.hasNext()) ...{
java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
// entry.getKey() 返回与此项对应的键
// entry.getValue() 返回与此项对应的值
System.out.print(entry.getValue());
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
}
}
对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对应的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。
Java中HashMap遍历的两种方式(本教程仅供研究和学习,不代表JAVA中文网观点)
本篇文章链接地址:http://www.javaweb.cc/language/java/032291.shtml
如需转载请注明出自JAVA中文网:http://www.javaweb.cc/
还是第一种好,简单。。。
32.
JSP中的请求如果没有反应的时候,尝试在JSP文件头的title后添加如下代码
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>"/>
<!-- 该行可要可不要 -->
<link href="<%=basePath%>/css/style.css" rel="stylesheet" type="text/css"/>
<%-- 原本<script type="text/javascript" src="../../js/jquery-1.4.2.js"></script> --%>
classpath*指的是src以及其子包(至于是直接子包,还是包括所有的子包,目前不清楚)
classpath指的是src包
2.@service 注解
如果@service后面接了从controller那边传过来的实现类对象名称
即 @service("bs") 那么在applicationContext-service.xml
里就不用配置<bean id="bs" class="ssm_ch01.demo.service.impl.BizServiceImpl"></bean>
反之,只是@service,就需要配置bean
3.@autowired [自动连接] 注解,
在不使用注解时候(即所有的注解都不使用的时候),我们需要配置相应的bean
比如说applicationContext-service.xml中的
并且在服务层,也就是实现类中,要给私有化的接口
[如:private BizDao bizDao]提供set和get的方法,
即
【
public BizDao getBizDao() {
return bizDao;
}
public void setBizDao(BizDao bizDao) {
this.bizDao = bizDao;
}
】
但是使用@autowired即:
@Autowired
private BizDao bizDao;
之后,我们就可以不用配置
<bean id="bs" class="ssm_ch01.demo.service.impl.BizServiceImpl"></bean>
同时也不用写set和get方法了,因为spring已经帮我们做了
4.model.addAttribute和request.setAttribute同理
5.copy项目的时候,除了变量、链接地址、xml文件、别名、还有注解需要更改添加
6.注解代替response.getWriter时候,
【
解决方法一:
@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8")
/**输入手机号码后判断手机号是否存在*/
@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8")
@ResponseBody
public String getphone(String phone,HttpSession session){
Users u=service.selectPhoneService(phone);
if(u==null){//如果为空,则需要注册
String str="请您先注册,再登录。";
session.setAttribute("str", str);
return "请您先注册,再登录。";
}
return "true";
方法二,在spring-mvc.xml中添加:
<!-- 处理请求返回json字符串的中文乱码问题 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
】
7.Integer int一些关系
Integer a1=new Integer(x)
Integer a2=new Integer(x)
a==a2
两个都是 new Integer 的时候,其他的不用看,结果为false(比的是堆内存的地址,都是new出来的,所以地址不同,由程序员控制)
Integer a1=new Integer(x)
Integer a2=x
a1==a2
一个是 a1的new Integer 引用的堆内存的地址(或者说引用指向堆),而a2指向专门存放它们的内存(方法区的常量池)
所以也是false
Integer a1=127
Integer a2=127
栈内存缓存区会对值是-128到127的Integer对象进行缓存,所以在这个取值范围内的Integer对象值相同时,
指向专门存放它们的内存(方法区的常量池)的地址相同,而非这个范围,就会被重新new也就重新实例化,那么就是false
int a1=222
Integer a2 =222
int和integer之间会有自动拆装箱的过程,所以是true
8.http://www.mvnrepository.com
mavenrepository下载地址
9.response.getCookie()
(JSP中获取cookie)
10.把JSON字符串转pojo的时候,JSON对象中的键要和pojo中的私有属性名一致
Product Pro = (Product) JsonUtil.getObject4JsonString(pro,
Product.class);
【
@RequestMapping(value = "/ajax.action", produces = "text/plain;charset=UTF-8")
@ResponseBody
public String executionQuery(@RequestParam("pro") String pro,
HttpServletRequest request, HttpServletResponse response,
Model model) {
System.out.println("接收到的-----------------------------------"+pro);
Product Pro = (Product) JsonUtil.getObject4JsonString(pro,
Product.class);
if(Pro==null){
System.out.println("pro居然是空的");
}
System.out.println("proname:**********************************"+Pro.getProname());
// 把JSON字符串变成pojo对象
List<SmbmsBill> ListPro = bs.getQueryBillByKeyWords(Pro);
JSONArray jarr = JSONArray.fromObject(ListPro);
return jarr.toString();
}
】
11.单例和SqlSessionFactory
需要导入jar包
【
package com.accp.util;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class BuildSqlSessionUtil {
private BuildSqlSessionUtil() {
}
public SqlSessionFactory ssf = null;
public static BuildSqlSessionUtil bscu = null;
public static BuildSqlSessionUtil getInstance() {
if (bscu == null) {
bscu = new BuildSqlSessionUtil();
}
return bscu;
}
public SqlSessionFactory getSqlSessionf() {
String resource = "mybatis-config.xml";
try {
if (ssf == null) {
InputStream inputStream = Resources.getResourceAsStream(resource);
ssf = new SqlSessionFactoryBuilder().build(inputStream);
}
return ssf;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
}
public class Test_01 {
public static void main(String[] args) {
SqlSessionFactory ssf = BuildSqlSessionUtil.getInstance()
.getSqlSessionf();
SqlSession sqlsession = ssf.openSession();
try {
List<province>pinfo = sqlsession.getMapper(BizMapper.class).getProvinceInfo();
sqlsession.commit();
for (province pv : pinfo) {
System.out.println("qq"+pv.getPid()+"qq"+pv.getPname()+"qq"+pv.getPcity());
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
sqlsession.close();
}
}
}
】
12.Hibernet的实体类中,谁是主键,谁的xml中就可以配置set集合,并且类中也要私有化set集合。
a表
b表
ab表
多对多
ab表可以被配置在a表或者b任意一方中的xml中
我私有的set集合(你的泛型) 共用表 级联
我被引用的主键
你的路径 你的主键名
13.
add import 是快捷键 ctrl+shift+m
organize imports应该是ctrl+shift+o的操作
add import 导入指定的类
organize imports导入所有需要导入的类,并且如果有些
import是没用的,那么eclipse会自动删除
14./**回车 可以完成快速注释,方法被调用时鼠标hover带说明
15.泛型T与占位符
泛型T的理解是这样的,T代表某一个具体的引用数据类型!
List或者Set、Map还有Tree这些集合,是可以存放任何引用数据类型的,但是在我们实际使用的过程中,你会发现,我们在集合中保存的数据,一般来说其类型是一致的!
比如你有一个Student类,一个Teacher有一个存放学生的集合List<Student> studentes = ArrayList<Student>();
泛型的使用,是在编译过程中进行约束性检查!
比如studentes.add(new Student())是正确的添加元素!studentes.add(new Teacher())则是错误的!
你的两个方法是有区别的:
第一个方法:返回的是<T>,泛型!有返回值!
第二个方法返回的是空!没有返回值!
16.ctrl+T 打开方法的实现继承层次结构图
17.全外连接full 表数据连接
18.当<welcome-file>后直接是请求时,需要在<servlet-mapping>中
添加该请求的具体请求映射名称:
<url-pattern>/init.action</url-pattern>
具体如下:
<welcome-file-list>
<welcome-file>init.action</welcome-file>
</welcome-file-list>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
<url-pattern>/init.action</url-pattern>
</servlet-mapping>
19.
ctrl+o 当前类中查询相关属性
ctrl+shift+r 开启查询功能(当前项目中查询)
20.
A接口的类名后加了泛型,并且泛型继承C类,
此时B类实现A类,被实现的A类的泛型中不需要写C类,
但是B类的类名后要加泛型,并且泛型要继承C类
如: public interface A<T,E extends Serialiazable>
public class B<T,E extends Serialiazable> implements A<T,E>
21.
JSP页面通用头,支持jstl(el表达式)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
22.对日期转化成普通格式到页面上时
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<td>
<fmt:formatDate value="${xl.rq }" type="date" dateStyle="default"/>
</td>
23.传输二进制文件流
<form action="springUpload.action" method="post" enctype="multipart/form-data" style="border:1px solid green; height:100px;">
24.
JSON.stringify("字符串")
JSON.stringify(json对象)
25.
使用ssm框架注解的时候进行ajax的requestMapping时
jsp页面的ajax中必须配置
【
dataType:"JSON",
】
26.
【
数组有四种定义的方式
使用构造函数:
var a = new Array();
var b = new Array(10);
var c = new Array("first", "second", "third");
或者数组直接量:
var d = ["first", "second", "third"];
扩展:
function ObjStory(id,biaoti,author,type) //声明对象
{
this.ID = id;
this.Biaoti= biaoti;
this.Author= author;
this.Type = type;
}
var arr = new Array();//声明数组,用来存储标题信息
var writer= new ObjStory(11,‘大家去看海’,‘李大胆’,‘文艺类’);//声明对象
arr[0]=writer;//向集合中添加对象
另一种方法:
var Array=[];
Array.push(new ObjStory(12,‘大家去看海’,‘李大胆’,‘文艺类’));
Array.push(new ObjStory(14,‘大家去看天’,‘李小胆’,‘文艺类’));
】
27.
js把超长毫秒时间戳转年月日格式
【
得到后台从数据库中拿到的数据我们希望格式是
2016年10月25日 17时37分30秒 或者 2016/10/25 17:37:30
然而我们前台得到的却是一段数字(时间戳,毫秒数)
1477386005
我们要将时间戳转化为我们想要的格式。
核心方法 :
1477386005是我从后台得到时间戳 (注意:有的时候得到的时间戳是已经乘以1000的)
var unixTimestamp = new Date( 1477386005*1000 ) ;
commonTime = unixTimestamp.toLocaleString();
alert(commonTime);
但是我希望转换为我自己想要的格式,就在本页面重写一下 toLocaleString()方法即可。
Date.prototype.toLocaleString = function() {
return this.getFullYear() + "年" + (this.getMonth() + 1) + "月" + this.getDate() + "日 " + this.getHours() + "点" + this.getMinutes() + "分" + this.getSeconds() + "秒";
};
】
【
// 简单的一句代码
var date = new Date(时间戳); //获取一个时间对象
/**
1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了
2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_obj_date.asp
*/
date.getFullYear(); // 获取完整的年份(4位,1970)
date.getMonth(); // 获取月份(0-11,0代表1月,用的时候记得加上1)
date.getDate(); // 获取日(1-31)
date.getTime(); // 获取时间(从1970.1.1开始的毫秒数)
date.getHours(); // 获取小时数(0-23)
date.getMinutes(); // 获取分钟数(0-59)
date.getSeconds(); // 获取秒数(0-59)
】
28.
使用ajax时进行append操作,如果用jquery直接绑定到具体元素,会导致翻页后的jquery代码失效
使用live方法可以解决,具体格式
【
$('.clickme').live('click', function() {
alert("Live handler called.");
});
】
详件jqueryApi中讲解
29.
//Map集合用 JSONObject jarr = JSONObject.fromObject(sth);
//List集合用 JSONArray jarr = JSONArray.fromObject(sth);
30.mybatis模糊查询
1. sql中字符串拼接
SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%');
2. 使用 ${...} 代替 #{...}
SELECT * FROM tableName WHERE name LIKE '%${text}%';
3. 程序中拼接
Java
// String searchText = "%" + text + "%";
String searchText = new StringBuilder("%").append(text).append("%").toString();
parameterMap.put("text", searchText);
SqlMap.xml
SELECT * FROM tableName WHERE name LIKE #{text};
4. 大小写匹配查询
SELECT * FROM TABLENAME WHERE UPPER(SUBSYSTEM) LIKE '%' || UPPER('jz') || '%'
或者
SELECT * FROM TABLENAME WHERE LOWER(SUBSYSTEM) LIKE '%' || LOWER('jz') || '%'
31.
遍历Map集合的方法
转]Java中HashMap遍历的两种方式
原文地址: http://www.javaweb.cc/language/java/032291.shtml
第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以后一定要使用此种方式!
第二种:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
效率低,以后尽量少使用!
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
public class HashMapTest {
public static void main(String[] args) ...{
HashMap hashmap = new HashMap();
for (int i = 0; i < 1000; i ) ...{
hashmap.put("" i, "thanks");
}
long bs = Calendar.getInstance().getTimeInMillis();
Iterator iterator = hashmap.keySet().iterator();
while (iterator.hasNext()) ...{
System.out.print(hashmap.get(iterator.next()));
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
listHashMap();
}
public static void listHashMap() ...{
java.util.HashMap hashmap = new java.util.HashMap();
for (int i = 0; i < 1000; i ) ...{
hashmap.put("" i, "thanks");
}
long bs = Calendar.getInstance().getTimeInMillis();
java.util.Iterator it = hashmap.entrySet().iterator();
while (it.hasNext()) ...{
java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
// entry.getKey() 返回与此项对应的键
// entry.getValue() 返回与此项对应的值
System.out.print(entry.getValue());
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
}
}
对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对应的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。
Java中HashMap遍历的两种方式(本教程仅供研究和学习,不代表JAVA中文网观点)
本篇文章链接地址:http://www.javaweb.cc/language/java/032291.shtml
如需转载请注明出自JAVA中文网:http://www.javaweb.cc/
还是第一种好,简单。。。
32.
JSP中的请求如果没有反应的时候,尝试在JSP文件头的title后添加如下代码
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>"/>
<!-- 该行可要可不要 -->
<link href="<%=basePath%>/css/style.css" rel="stylesheet" type="text/css"/>
<%-- 原本<script type="text/javascript" src="../../js/jquery-1.4.2.js"></script> --%>