guyanqing 1 年之前
父節點
當前提交
4301135c34
共有 34 個文件被更改,包括 443 次插入0 次删除
  1. 19 0
      JavaWeb27/pom.xml
  2. 45 0
      JavaWeb27/src/main/java/com/sf/entity/TestGson.java
  3. 80 0
      JavaWeb27/src/main/java/com/sf/entity/TestJson.java
  4. 69 0
      JavaWeb27/src/main/java/com/sf/entity/User.java
  5. 52 0
      JavaWeb27/src/main/java/com/sf/fileupload/FileDownLoadServlet.java
  6. 38 0
      JavaWeb27/src/main/java/com/sf/servlet/JsonGetServlet.java
  7. 2 0
      JavaWeb27/src/main/java/com/sf/servlet/ZfServlet.java
  8. 二進制
      JavaWeb27/src/main/webapp/files/123.jpg
  9. 69 0
      JavaWeb27/src/main/webapp/index.jsp
  10. 二進制
      JavaWeb27/target/JavaWeb27.war
  11. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/entity/TestGson.class
  12. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/entity/TestJson.class
  13. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/entity/User.class
  14. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/fileupload/FileDownLoadServlet.class
  15. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/servlet/JsonGetServlet.class
  16. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/servlet/ZfServlet.class
  17. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/apiguardian-api-1.1.2.jar
  18. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/fastjson-1.2.53.jar
  19. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/gson-2.8.6.jar
  20. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-5.10.1.jar
  21. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-api-5.10.1.jar
  22. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-engine-5.10.1.jar
  23. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-params-5.10.1.jar
  24. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-platform-commons-1.10.1.jar
  25. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-platform-engine-1.10.1.jar
  26. 二進制
      JavaWeb27/target/JavaWeb27/WEB-INF/lib/opentest4j-1.3.0.jar
  27. 二進制
      JavaWeb27/target/JavaWeb27/files/123.jpg
  28. 69 0
      JavaWeb27/target/JavaWeb27/index.jsp
  29. 二進制
      JavaWeb27/target/classes/com/sf/entity/TestGson.class
  30. 二進制
      JavaWeb27/target/classes/com/sf/entity/TestJson.class
  31. 二進制
      JavaWeb27/target/classes/com/sf/entity/User.class
  32. 二進制
      JavaWeb27/target/classes/com/sf/fileupload/FileDownLoadServlet.class
  33. 二進制
      JavaWeb27/target/classes/com/sf/servlet/JsonGetServlet.class
  34. 二進制
      JavaWeb27/target/classes/com/sf/servlet/ZfServlet.class

+ 19 - 0
JavaWeb27/pom.xml

@@ -66,6 +66,25 @@
       <version>1.4</version>
     </dependency>
 
+<!--    fastjson 依赖-->
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.53</version>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter</artifactId>
+      <version>RELEASE</version>
+      <scope>compile</scope>
+    </dependency>
+
+<!--    gson依赖-->
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>2.8.6</version>
+    </dependency>
   </dependencies>
 
   <build>

+ 45 - 0
JavaWeb27/src/main/java/com/sf/entity/TestGson.java

@@ -0,0 +1,45 @@
+package com.sf.entity;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * gson
+ */
+public class TestGson {
+
+    /**
+     * 序列化
+     */
+    @Test
+    public void t1(){
+        User user = new User(1001, "zs", 20.0, new Date());
+//        将对象gson化
+        Gson gson = new Gson();
+        String GsonString = gson.toJson(user);
+        System.out.println(GsonString);
+//        反序列化  将gson串转换成java对象
+        User userPojo = gson.fromJson(GsonString, User.class);
+        System.out.println(userPojo);
+
+//        对集合进行序列化
+        List<User> users = new ArrayList<>();
+        User user1 = new User(1001, "zs", 20.0, new Date());
+        User user2 = new User(1001, "zs", 20.0, new Date());
+        User user3 = new User(1001, "zs", 20.0, new Date());
+        users.add(user1);
+        users.add(user2);
+        users.add(user3);
+        String GsonStringList = gson.toJson(users);
+        System.out.println("lsit=====>"+GsonStringList);
+        //gson对日期进行格式化
+        Gson gson1 = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
+        String s = gson1.toJson(users);
+        System.out.println(s);
+    }
+}

+ 80 - 0
JavaWeb27/src/main/java/com/sf/entity/TestJson.java

@@ -0,0 +1,80 @@
+package com.sf.entity;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import org.junit.jupiter.api.Test;
+import sun.java2d.pipe.SpanIterator;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 测试json-api
+ */
+public class TestJson {
+
+    @Test
+    public void t1(){
+//      先将user对象序列化成json
+        User user = new User(1001, "lucy", 18.0, new Date());
+        String jsonString = JSON.toJSONString(user);
+        System.out.println("这是user的json化====>"+jsonString);
+//       json.toJSONStringWithDateFormat    可以格式化时间
+        String jsonStringWithDateFormat = JSON.toJSONStringWithDateFormat(user, "yyyy-MM-dd  HH:mm:ss", SerializerFeature.WriteDateUseDateFormat);
+        System.out.println("格式化时间后的json串--->"+jsonStringWithDateFormat);
+
+//        将集合进行序列化
+//        先构建一个user集合
+        List<User> users = new ArrayList<>();
+        User user1 = new User(1001, "lucy1", 18.0, new Date());
+        User user2 = new User(1002, "lucy2", 18.0, new Date());
+        User user3 = new User(1003, "lucy3", 18.0, new Date());
+        User user4 = new User(1004, "lucy4", 18.0, new Date());
+        User user5 = new User(1005, "lucy5", 18.0, new Date());
+        users.add(user1);
+        users.add(user2);
+        users.add(user3);
+        users.add(user4);
+        users.add(user5);
+        System.out.println(users);
+//        将users进行json序列化
+        String jsonStringList = JSON.toJSONString(users);
+        System.out.println("toJSONString ==>"+jsonStringList);
+        String jsonStringListWithDateFormat = JSON.toJSONStringWithDateFormat(users, "yyyy-MM-dd HH:mm : ss", SerializerFeature.WriteDateUseDateFormat);
+        System.out.println("时间格式化后的users===>"+jsonStringListWithDateFormat);
+    }
+
+
+//    反序列化   将对象的json串转换成java对象
+    @Test
+    public void t2(){
+//        String jsonString = JSON.toJSONString(new User(1001, "Tom", 19.0, new Date()));
+//        System.out.println("user对象序列化的json串====>"+jsonString);
+//        User user = JSON.parseObject(jsonString, User.class);
+//        System.out.println("反序列化的user对象====>"+user);
+        String jsonStringWithDateFormat = JSON.toJSONStringWithDateFormat(new User(1001, "Tom", 19.0, new Date()),"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteDateUseDateFormat);
+        System.out.println(jsonStringWithDateFormat);
+        User userWithDateFormat = JSON.parseObject(jsonStringWithDateFormat, User.class);
+        System.out.println("反序列化的user对象(时间格式化后)====>"+userWithDateFormat);
+
+//        集合的反列化
+        List<User> users = new ArrayList<>();
+        User user1 = new User(1001, "lucy1", 18.0, new Date());
+        User user2 = new User(1002, "lucy2", 18.0, new Date());
+        User user3 = new User(1003, "lucy3", 18.0, new Date());
+        User user4 = new User(1004, "lucy4", 18.0, new Date());
+        User user5 = new User(1005, "lucy5", 18.0, new Date());
+        users.add(user1);
+        users.add(user2);
+        users.add(user3);
+        users.add(user4);
+        users.add(user5);
+//        对集合进行序列化
+        String jsonString = JSON.toJSONString(users);
+        List list = JSON.parseObject(jsonString, List.class);
+        System.out.println(list);
+
+    }
+
+}

+ 69 - 0
JavaWeb27/src/main/java/com/sf/entity/User.java

@@ -0,0 +1,69 @@
+package com.sf.entity;
+
+import java.util.Date;
+
+/**
+ * 测试json格式化的类
+ */
+public class User {
+
+    private  Integer userId;
+
+    private String userName;
+
+    private Double age;
+
+    private Date hireDate;
+
+    public User() {
+    }
+
+    public User(Integer userId, String userName, Double age, Date hireDate) {
+        this.userId = userId;
+        this.userName = userName;
+        this.age = age;
+        this.hireDate = hireDate;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Double getAge() {
+        return age;
+    }
+
+    public void setAge(Double age) {
+        this.age = age;
+    }
+
+    public Date getHireDate() {
+        return hireDate;
+    }
+
+    public void setHireDate(Date hireDate) {
+        this.hireDate = hireDate;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "userId=" + userId +
+                ", userName='" + userName + '\'' +
+                ", age=" + age +
+                ", hireDate=" + hireDate +
+                '}';
+    }
+}

+ 52 - 0
JavaWeb27/src/main/java/com/sf/fileupload/FileDownLoadServlet.java

@@ -0,0 +1,52 @@
+package com.sf.fileupload;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.servlet.annotation.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+/**
+ * 文件的下载
+ */
+@WebServlet(name = "FileDownLoadServlet", value = "/FileDownLoadServlet")
+public class FileDownLoadServlet extends HttpServlet {
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        doPost(request,response);
+    }
+
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+//    编写文件下载的核心业务逻辑
+//        获取下载文件的相对路径
+        String realPath = getServletContext().getRealPath("/files/123.jpg");
+        System.out.println("文件下载的路径"+realPath);
+//        抽象成对象
+        File file = new File(realPath);
+//        获取文件的输入流
+        FileInputStream fileInputStream = new FileInputStream(file);
+//        获取当前文件的类型
+        String mimeType = getServletContext().getMimeType(realPath);
+//        设置相依内容的格式
+        response.setContentType(mimeType);
+//        设置下载文件的名称
+        String fileName = "爱扣钉.jpg";
+        //以附件的形式下载attachment , 如果直接打开inline
+        String disposition = "attachment;filename="+fileName;
+//        设置响应头信息
+        response.setHeader("Content-Disposition",disposition);
+        //设置内容大小
+        long size = file.length();
+        response.setContentLength((int)size);
+        //发送文件
+        ServletOutputStream outputStream = response.getOutputStream();
+        byte[] c = new byte[1024];
+        int len=0;
+        while((len=fileInputStream.read(c))!=-1) {
+            outputStream.write(c, 0, len);
+        }
+        fileInputStream.close();
+    }
+}

+ 38 - 0
JavaWeb27/src/main/java/com/sf/servlet/JsonGetServlet.java

@@ -0,0 +1,38 @@
+package com.sf.servlet;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.sf.entity.User;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.servlet.annotation.*;
+import java.io.IOException;
+import java.util.Date;
+
+/**
+ * 获取后台的json数据
+ */
+@WebServlet(name = "JsonGetServlet", value = "/JsonGetServlet")
+public class JsonGetServlet extends HttpServlet {
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+    doPost(request,response);
+    }
+
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        User user = new User();
+        user.setUserId(1001);
+        user.setUserName("张三");
+        user.setAge(18.0);
+        user.setHireDate(new Date());
+//        对user对象json化
+//        String jsonString = JSON.toJSONString(user);
+        String jsonStringWithDateFormat = JSON.toJSONStringWithDateFormat(user,"yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat);
+//       将user的json串响应到浏览器页面上
+        response.setCharacterEncoding("UTF-8");
+        response.setContentType("text/html; charset=utf-8");
+        response.getWriter().write(jsonStringWithDateFormat);
+    }
+}

+ 2 - 0
JavaWeb27/src/main/java/com/sf/servlet/ZfServlet.java

@@ -4,9 +4,11 @@ import javax.servlet.*;
 import javax.servlet.http.*;
 import javax.servlet.annotation.*;
 import java.io.IOException;
+import java.util.List;
 
 @WebServlet(name = "ZfServlet", value = "/ZfServlet")
 public class ZfServlet extends HttpServlet {
+
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         doPost(request,response);

二進制
JavaWeb27/src/main/webapp/files/123.jpg


+ 69 - 0
JavaWeb27/src/main/webapp/index.jsp

@@ -69,5 +69,74 @@ enctype:浏览器上传内容的属性     默认application/x-www-form-urlenc
     <input type="file" name="file">
     <input type="submit" value="文件上传">
 </form>
+
+<%--文件的下载--%>
+<a href="FileDownLoadServlet">文件的下载</a>
+
+<hr>
+<%--从后台获取json数据--%>
+<a href="JsonGetServlet">获取json数据</a>
+
+<hr>
+<button id="btn1">get请求</button>
+<br>
+<button id="btn2">post请求</button>
+<%--使用ajax发送get请求--%>
+<script type="text/javascript">
+<%--    这是通过DOM编程获取到当前按钮--%>
+    var btn1 = document.getElementById("btn1");
+    //绑定事件
+    btn1.onclick = function (){
+        //创建XMLHttpRequest对象
+        var request = new XMLHttpRequest();
+        //设置请求的基本信息
+        //① 请求方式  ② 请求地址 ③ 是否异步
+        request.open("get","JsonGetServlet?userName=admin&userId=1001",true);
+    //  将请求发送到后台的服务器
+        request.send();
+        //处理服务器相应的消息,当数据有相应时,就会触发这个回调函数
+        request.onreadystatechange = function (){
+            // alert("=========")
+            //请求已完成,响应已就绪
+            if(request.readyState==4){
+                if(request.status==200){
+                //    获取到响应的数据
+                    var responseText = request.responseText;
+                    alert(responseText)
+                }
+                }
+        }
+    }
+
+//    ajax发送post请求
+var btn2 =document.getElementById("btn2");
+    btn2.onclick = function (){
+    //    创建创建XMLHttpRequest对象
+        var xmlHttpRequest = new XMLHttpRequest();
+        //设置请求的基本信息
+        //① 请求方式  ② 请求地址 ③ 是否异步
+        xmlHttpRequest.open("post","JsonGetServlet",true);
+    //    封装post请求头的信息
+        xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+    //    将请求发送到后台的服务器
+        xmlHttpRequest.send("user=Jim&pwd=321321");
+        xmlHttpRequest.onreadystatechange = function (){
+            /*
+               0: 请求未初始化
+               1: 服务器连接已建立
+               2: 请求已接收
+               3: 请求处理中
+               4: 请求已完成,且响应已就绪
+           */
+            if(xmlHttpRequest.readyState==4){
+                if(xmlHttpRequest.status==200){
+                    //获取数据
+                    var responseText = xmlHttpRequest.responseText;
+                    alert(responseText)
+                }
+            }
+        }
+    }
+</script>
 </body>
 </html>

二進制
JavaWeb27/target/JavaWeb27.war


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/entity/TestGson.class


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/entity/TestJson.class


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/entity/User.class


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/fileupload/FileDownLoadServlet.class


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/servlet/JsonGetServlet.class


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/classes/com/sf/servlet/ZfServlet.class


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/apiguardian-api-1.1.2.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/fastjson-1.2.53.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/gson-2.8.6.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-5.10.1.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-api-5.10.1.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-engine-5.10.1.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-jupiter-params-5.10.1.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-platform-commons-1.10.1.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/junit-platform-engine-1.10.1.jar


二進制
JavaWeb27/target/JavaWeb27/WEB-INF/lib/opentest4j-1.3.0.jar


二進制
JavaWeb27/target/JavaWeb27/files/123.jpg


+ 69 - 0
JavaWeb27/target/JavaWeb27/index.jsp

@@ -69,5 +69,74 @@ enctype:浏览器上传内容的属性     默认application/x-www-form-urlenc
     <input type="file" name="file">
     <input type="submit" value="文件上传">
 </form>
+
+<%--文件的下载--%>
+<a href="FileDownLoadServlet">文件的下载</a>
+
+<hr>
+<%--从后台获取json数据--%>
+<a href="JsonGetServlet">获取json数据</a>
+
+<hr>
+<button id="btn1">get请求</button>
+<br>
+<button id="btn2">post请求</button>
+<%--使用ajax发送get请求--%>
+<script type="text/javascript">
+<%--    这是通过DOM编程获取到当前按钮--%>
+    var btn1 = document.getElementById("btn1");
+    //绑定事件
+    btn1.onclick = function (){
+        //创建XMLHttpRequest对象
+        var request = new XMLHttpRequest();
+        //设置请求的基本信息
+        //① 请求方式  ② 请求地址 ③ 是否异步
+        request.open("get","JsonGetServlet?userName=admin&userId=1001",true);
+    //  将请求发送到后台的服务器
+        request.send();
+        //处理服务器相应的消息,当数据有相应时,就会触发这个回调函数
+        request.onreadystatechange = function (){
+            // alert("=========")
+            //请求已完成,响应已就绪
+            if(request.readyState==4){
+                if(request.status==200){
+                //    获取到响应的数据
+                    var responseText = request.responseText;
+                    alert(responseText)
+                }
+                }
+        }
+    }
+
+//    ajax发送post请求
+var btn2 =document.getElementById("btn2");
+    btn2.onclick = function (){
+    //    创建创建XMLHttpRequest对象
+        var xmlHttpRequest = new XMLHttpRequest();
+        //设置请求的基本信息
+        //① 请求方式  ② 请求地址 ③ 是否异步
+        xmlHttpRequest.open("post","JsonGetServlet",true);
+    //    封装post请求头的信息
+        xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+    //    将请求发送到后台的服务器
+        xmlHttpRequest.send("user=Jim&pwd=321321");
+        xmlHttpRequest.onreadystatechange = function (){
+            /*
+               0: 请求未初始化
+               1: 服务器连接已建立
+               2: 请求已接收
+               3: 请求处理中
+               4: 请求已完成,且响应已就绪
+           */
+            if(xmlHttpRequest.readyState==4){
+                if(xmlHttpRequest.status==200){
+                    //获取数据
+                    var responseText = xmlHttpRequest.responseText;
+                    alert(responseText)
+                }
+            }
+        }
+    }
+</script>
 </body>
 </html>

二進制
JavaWeb27/target/classes/com/sf/entity/TestGson.class


二進制
JavaWeb27/target/classes/com/sf/entity/TestJson.class


二進制
JavaWeb27/target/classes/com/sf/entity/User.class


二進制
JavaWeb27/target/classes/com/sf/fileupload/FileDownLoadServlet.class


二進制
JavaWeb27/target/classes/com/sf/servlet/JsonGetServlet.class


二進制
JavaWeb27/target/classes/com/sf/servlet/ZfServlet.class