diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..f7c64b29
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,46 @@
+*~
+.gitignore~
+### Java ###
+*.class
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+### IntelliJ ###
+*.iml
+*.ipr
+*.iws
+.idea/
+
+### Eclipse ###
+*.pydevproject
+.project
+.metadata
+bin/**
+tmp/**
+tmp/**/*
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.classpath
+.settings/
+.loadpath
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# CDT-specific
+.cproject
+
+# PDT-specific
+.buildpath
+
+### Maven ###
+target/
diff --git a/java-servlet-json/pom.xml b/java-servlet-json/pom.xml
index dd7dc447..dc43d307 100644
--- a/java-servlet-json/pom.xml
+++ b/java-servlet-json/pom.xml
@@ -5,7 +5,7 @@
com.hmkcode
java-servlet-json
1.0-SNAPSHOT
- jar
+ war
java-servlet-json
http://maven.apache.org
diff --git a/java-servlet-json/src/main/java/com/hmkcode/JSONServlet.java b/java-servlet-json/src/main/java/com/hmkcode/JSONServlet.java
index afccf9b4..dd5e8199 100644
--- a/java-servlet-json/src/main/java/com/hmkcode/JSONServlet.java
+++ b/java-servlet-json/src/main/java/com/hmkcode/JSONServlet.java
@@ -1,17 +1,16 @@
package com.hmkcode;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.LinkedList;
-import java.util.List;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.hmkcode.vo.Article;
+
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.hmkcode.vo.Article;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
public class JSONServlet extends HttpServlet {
@@ -23,25 +22,28 @@ public class JSONServlet extends HttpServlet {
/***************************************************
* URL: /jsonservlet
* doPost(): receives JSON data, parse it, map it and send back as JSON
+ * doGet(): receives all JSON data, because after reloading page all
+ * data would clear
****************************************************/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
// 1. get received JSON data from request
- BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
- String json = "";
- if(br != null){
- json = br.readLine();
- }
+ StringBuffer json = new StringBuffer();
+ String line = null;
+ BufferedReader br = new BufferedReader(request.getReader());
+ while((line = br.readLine()) != null) {
+ json.append(line);
+ }
// 2. initiate jackson mapper
ObjectMapper mapper = new ObjectMapper();
// 3. Convert received JSON to Article
- Article article = mapper.readValue(json, Article.class);
+ Article article = mapper.readValue(json.toString(), Article.class);
// 4. Set response type to JSON
- response.setContentType("application/json");
+ response.setContentType("application/json; charset=utf-8");
// 5. Add article to List
articles.add(article);
@@ -49,4 +51,11 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
// 6. Send List as JSON to client
mapper.writeValue(response.getOutputStream(), articles);
}
+
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException{
+ ObjectMapper mapper = new ObjectMapper();
+ response.setContentType("application/json; charset=utf-8");
+ mapper.writeValue(response.getOutputStream(), articles);
+ }
}
diff --git a/java-servlet-json/src/main/webapp/index.html b/java-servlet-json/src/main/webapp/index.html
index ab78943d..4a40503c 100644
--- a/java-servlet-json/src/main/webapp/index.html
+++ b/java-servlet-json/src/main/webapp/index.html
@@ -14,7 +14,7 @@
-
+
Java Servlet Send & Receive JSON
diff --git a/java-servlet-json/src/main/webapp/js/myfunctions.js b/java-servlet-json/src/main/webapp/js/myfunctions.js
index 0383f45c..1168ab63 100644
--- a/java-servlet-json/src/main/webapp/js/myfunctions.js
+++ b/java-servlet-json/src/main/webapp/js/myfunctions.js
@@ -1,50 +1,59 @@
function sendAjax() {
-
- // get inputs
- var article = new Object();
- article.title = $('#title').val();
- article.url = $('#url').val();
- article.categories = $('#categories').val().split(";");
- article.tags = $('#tags').val().split(";");
-
- $.ajax({
- url: "jsonservlet",
- type: 'POST',
- dataType: 'json',
- data: JSON.stringify(article),
- contentType: 'application/json',
- mimeType: 'application/json',
-
- success: function (data) {
- $("tr:has(td)").remove();
-
- $.each(data, function (index, article) {
-
- var td_categories = $(" | ");
- $.each(article.categories, function (i, tag) {
- var span = $("");
- span.text(tag);
- td_categories.append(span);
- });
-
- var td_tags = $(" | ");
- $.each(article.tags, function (i, tag) {
- var span = $("");
- span.text(tag);
- td_tags.append(span);
- });
-
- $("#added-articles").append($('
')
- .append($(' | ').html(""+article.title+""))
- .append(td_categories)
- .append(td_tags)
- );
-
-
- });
+
+ // get inputs
+ var article = new Object();
+ article.title = $('#title').val();
+ article.url = $('#url').val();
+ article.categories = $('#categories').val().split(";");
+ article.tags = $('#tags').val().split(";");
+
+ $.ajax({
+ url: "jsonservlet",
+ type: 'POST',
+ dataType: 'json',
+ data: JSON.stringify(article),
+ contentType: 'application/json;charset=utf-8',
+ mimeType: 'application/json;charset=utf-8',
+
+ success: function (data) {
+ drawArticles(data);
},
- error:function(data,status,er) {
- alert("error: "+data+" status: "+status+" er:"+er);
- }
- });
+ error:function(data,status,er) {
+ alert("error: "+data+" status: "+status+" er:"+er);
+ }
+ });
+}
+
+function drawArticles(data) {
+ $("tr:has(td)").remove();
+
+ $.each(data, function (index, article) {
+
+ var td_categories = $(" | ");
+ $.each(article.categories, function (i, tag) {
+ var span = $("");
+ span.text(tag);
+ td_categories.append(span);
+ });
+
+ var td_tags = $(" | ");
+ $.each(article.tags, function (i, tag) {
+ var span = $("");
+ span.text(tag);
+ td_tags.append(span);
+ });
+
+ $("#added-articles").append($('
')
+ .append($(' | ').html(""+article.title+""))
+ .append(td_categories)
+ .append(td_tags)
+ );
+ });
+}
+
+function getData() {
+ //get all articles after reload page
+ $.get("jsonservlet", function (data) {
+ drawArticles(data);
+ });
}
\ No newline at end of file