第三十九天學習java
總結
json
-
json是一種基於JavaScript 語法開放的輕量級資料交換格式
-
導包
- jackson-annotations-2.5.0.jar
- jackson-core-2.5.0.jar
- jackson-databind-2.5.0.jar
-
後臺使用
@RequestMapping("/add") @ResponseBody public Emp add(Emp emp){ return emp; }
-
對日期格式的處理
-
後臺向前臺傳輸格式時
-
在日期的get屬性上新增
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-
-
前臺向後臺傳輸格式時
-
在日期的set屬性上新增
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-
-
-
避免IE返回json時下載檔案的情況
<!-- 開啟spring對MVC的支援 --> <mvc:annotation-driven> <!-- 避免在IE瀏覽器中返回JSON時出現下載檔案的情況 --> <mvc:message-converters> <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
檔案的上傳(重點)
-
在上傳的時候在form表單的屬性中配置
<form action="/loadon" method="post" enctype="multipart/form-data">
-
在spring-mvc.xml中配置檔案的最大尺寸
<!-- 設定檔案最大的尺寸 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 設定上傳檔案的最大尺寸為10MB --> <property name="maxUploadSize"> <!-- spring el寫法:10MB --> <value>#{1024*1024*10}</value> </property> <!-- 效果同上 <property name="maxUploadSize" value="1048576" /> --> </bean>
-
將上傳的檔案拷貝下來
@Controller public class LoadOnController { @RequestMapping("/loadon") @ResponseBody public void loadon(HttpServletRequest req,String username,MultipartFile photo) throws Exception{ if(!photo.isEmpty()){ //獲取輸入流 InputStream in = photo.getInputStream(); //通過UUID獲取新的名字 String namePath = UUID.randomUUID().toString().replace("-", "")+photo.getOriginalFilename(); //得到前面的路徑 String realPath = req.getServletContext().getRealPath("/myFile"); File dir = new File(realPath); //判斷是否有改路徑 if(!dir.exists()){ dir.mkdirs(); } //拼接路徑 File file = new File(dir,namePath); //獲取輸入流 OutputStream out = new FileOutputStream(file); //通過工具拷貝資料 IOUtils.copy(in, out); //釋放資源 out.close(); in.close(); } } }
檔案的下載(有時還是會用)
@Controller
public class LoadDownController {
@RequestMapping("/loaddown")
public void loadDown(HttpServletRequest req,HttpServletResponse resp,String name) throws Exception{
//獲取前面的路徑
String realPath = req.getServletContext().getRealPath("/download");
File file = new File(realPath,name);
//獲取輸入流
InputStream in = new FileInputStream(file);
//設定編碼
//ie瀏覽器
if(req.getHeader("User-Agent").toUpperCase().indexOf("TRIDENT")!=-1){
name = URLEncoder.encode(name, "utf-8");
//電腦自帶edge【edʒ】瀏覽器
}else if(req.getHeader("User-Agent").toUpperCase().indexOf("EDGE")!=-1){
name = URLEncoder.encode(name, "utf-8");
}else{//其他瀏覽器
name = new String(name.getBytes("UTF-8"),"ISO-8859-1");//轉碼的方式
};
//設定彈窗
//設定相應頭為 檔案下載
resp.setContentType("multipart/form-data");
resp.setHeader("Content-Disposition", "attachment;fileName="+name);
//獲取輸出流
ServletOutputStream out = resp.getOutputStream();
//拷貝
IOUtils.copy(in, out);
//釋放資源
out.close();
in.close();
}
}
過濾器
-
寫一個類實現HandlerInterceptor,其中preHandle方法用於請求之前攔截,返回值boolean決定是否攔截
-
spring-mvc.xml配置
<mvc:interceptors> <mvc:interceptor> <!-- 攔截的路徑 /*只能攔截一層 /a /b --> <mvc:mapping path="/**"/> <!-- 不攔截的路徑 --> <mvc:exclude-mapping path="/fileloadup.jsp"/> <!-- 自己定義的攔截器位置 --> <bean class="cn.itsource.hello.MyInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
相關文章
- Java登陸第三十九天——Router路由入門Java路由
- java第三週學習Java
- 學習Java的第三週Java
- java學習記錄第三週Java
- java學習第三天2020/7/8Java
- java學習之道 --- 如何學習java?Java
- 學習css第三天CSS
- golang學習第三天Golang
- 第三週學習總結
- 第三週學習日曆
- android基礎學習-java篇day7-step3-第三節:java字串AndroidJava字串
- java 8新特性學習之三:Java 8 lambda表示式初步第三回Java
- 學Java的第三週(迴圈)Java
- Java 學習Java
- Java學習Java
- Spring學習第三天Spring
- 新手如何學習Java——Java學習路線圖Java
- [前端學習]js特效部分學習筆記,第三天前端JS特效筆記
- Java學習之路 -- Java怎麼學?Java
- 《JAVA學習指南》學習筆記Java筆記
- Vue2 第三天學習Vue
- Java學習—java-RedisJavaRedis
- 複習Java的第三天3.20Java
- java學習之路Java
- Java學習自學Java
- Java學習方法Java
- Java學習:反射Java反射
- Java學習_反射Java反射
- 學習Java系列Java
- java學習6Java
- 如何學習JavaJava
- 學習java之路Java
- Java學習概要Java
- Java NIO 學習Java
- Java的學習Java
- Java反射學習Java反射
- java如何學習Java
- 學習Java: QueueJava