一:mybatis的轉義字符:html
二:mysql中datetime比較大小問題java
str_to_date() 例:STR_TO_DATE(Start_time,'%Y-%m-%d %H:%i:%s')
mysql
between STR_TO_DATE(Start_time,'%Y-%m-%d %H:%i:%s') and STR_TO_DATE(End_time,'%Y-%m-%d %H:%i:%s')web
now() 如今時間 spring
%W 星期名字(Sunday……Saturday)sql
%D 有英語前綴的月份的日期(1st, 2nd, 3rd, 等等。)json
%Y 年, 數字, 4 位tomcat
%y 年, 數字, 2 位mybatis
%a 縮寫的星期名字(Sun……Sat)mvc
%d 月份中的天數, 數字(00……31)
%e 月份中的天數, 數字(0……31)
%m 月, 數字(01……12)
%c 月, 數字(1……12)
%b 縮寫的月份名字(Jan……Dec)
%j 一年中的天數(001……366)
%H 小時(00……23)
%k 小時(0……23)
%h 小時(01……12)
%I 小時(01……12)
%l 小時(1……12)
%i 分鐘, 數字(00……59)
%r 時間,12 小時(hh:mm:ss [AP]M)
%T 時間,24 小時(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一個星期中的天數(0=Sunday ……6=Saturday )
%U 星期(0……52), 這裏星期天是星期的第一天
%u 星期(0……52), 這裏星期一是星期的第一天
%% 一個文字「%」。
三:java與json的轉化
list-->json JSONObject json = JSONArray.fromObject(list);
map/實體類-->json JSONObject json = JSONObject.fromObject(map/object);
若不想把某字段包涵轉化的話能夠:jsonConfig.setExcludes(new String[]{"實體類","屬性"});
JSONObject json = JSONArray.fromObject(list,jsonConfig);
若裏面含有時間字段,會以"1268201641228"形式展現,若想以"yyyy-MM-dd"的形式的話須要實現JsonValueProcessor 接口,從新定義
public class JsonDateValueProcessor implements JsonValueProcessor { private String datePattern = "yyyy-MM-dd"; public JsonDateValueProcessor() { super(); } public JsonDateValueProcessor(String format) { super(); this.datePattern = format; } public Object processArrayValue(Object value, JsonConfig jsonConfig) { return process(value); } public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { return process(value); } private Object process(Object value) { try { if (value instanceof Date) { SimpleDateFormat sdf = new SimpleDateFormat(datePattern, Locale.UK); return sdf.format((Date) value); } return value == null ? "" : value.toString(); } catch (Exception e) { return ""; } } public String getDatePattern() { return datePattern; } public void setDatePattern(String pDatePattern) { datePattern = pDatePattern; } }
下面直接調用就能夠了,例如:
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
JSONObject jo = JSONObject.fromObject(bean, jsonConfig);
JSON-》java
實體
String jsonStr = "[{\"name\": \"husband\", \"age\": \"26\", \"born\": \"1984-01-12\"},{\"name\": \"wife\", \"age\": \"20\", \"born\": \"1990-05-01\"}]"; Collection<JsonBean> list = JSONArray.toCollection(JSONArray.fromObject(jsonStr), JsonBean.class); //DateUtil.getFormatDate(date,fmtstr)日期轉字符串這裏再也不寫代碼了 for (JsonBean o : list) { System.out.println(DateUtil.getFormatDate(o.getBorn(), "yyyy-MM-dd")); }
2.map或者list
String listStr = "[\"apple\",\"orange\"]"; Collection<String> strlist = JSONArray.toCollection(JSONArray.fromObject(listStr)); for (String str : strlist) { System.out.println(str); } String mapStr = "{\"age\":30,\"name\":\"Michael\",\"baby\":[\"Lucy\",\"Lily\"]}"; Map<String, Object> map = (Map) JSONObject.toBean(JSONObject .fromObject(mapStr), Map.class); for (Entry<String, Object> entry : map.entrySet()) { System.out.println(entry.getKey() + " " + entry.getValue()); }
4、Spring MVC 下設置默認訪問頁面的3種方式
1.默認tomcat容器的默認頁面。
<welcome-file-list>
<welcome-file>/index.html</welcome-file>
</welcome-file-list>
這種方式適合訪問靜態的頁面(也包括JSP)或者說是沒有任何參數的頁面。
2.spirng mvc 默認index controller 方式
若是在tomcat容器沒有配置默認頁面,怎spring mvc 會主動去尋找/index的controller,若是有則會調用,沒有則會顯示404頁面。
@RequestMapping(value="/index")
public ModelAndView index(HttpServletRequest request, HttpServletResponse response){
return new ModelAndView("index");
}
3.spirng mvc 配置根節點訪問「/」方式
這種方法比較極端,就是配置一個名爲「/」的controller,就是輸入完網址以後就會調用。這種方法是前面兩種方法都沒有配置的時候。
@RequestMapping(value="/") public ModelAndView index(HttpServletRequest request, HttpServletResponse response){ return new ModelAndView("index"); }
三種方法的級別高低:1>>3>>2;由於tomcat的容器級別比spring要高,以上3鍾配置都存在的狀況,優先使用tomcat。由於配置了"/"的controller,因此會先匹配到相關的controller,而不會先尋找/index controller.
注意,即便web.xml沒有添加,tomcat也會自動默認去尋找在webroot目錄下面的index文件,若是要使用後面兩種方法,則要保證webroot下面沒有index相關的文件。
5、解決亂碼問題(post、get)
1.post 能夠直接在web.xml裏面配置過濾器就能夠屏蔽post方式提交的亂碼
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
至關於在控制層方法裏面配置了
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
2.get提交 上面對get方式提交中文無效,怎麼處理呢?
1、String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
2、在tomcat的server.xml找到下面的話 Connector 添加 URIEncoding="utf-8"
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8441"/> <!-- 在上面添加 URIEncoding="utf-8" -->
3、在傳參數以前先把參數進行轉碼:java.net.URLEncoder.encode(param);
取值時用語句java.net.URLDecoder.decode(param);再轉回中文