Browse Source

fixing content encoding

Nick Kasvosve 9 years ago
parent
commit
1604e3ea3a

BIN
frameworks/Java/beyondj/beyondj-launcher/src/main/resources/launchers/webapp-launchers/beyondj-service.war


+ 8 - 16
frameworks/Java/beyondj/beyondj-service/src/main/java/com/techempower/beyondj/action/FortuneActionBean.java

@@ -4,9 +4,11 @@ import com.techempower.beyondj.domain.Fortune;
 import com.techempower.beyondj.repository.FortuneRepository;
 import net.sourceforge.stripes.action.*;
 import net.sourceforge.stripes.integration.spring.SpringBean;
-import org.apache.commons.lang3.StringEscapeUtils;
 
-import java.util.*;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @UrlBinding("/perf/fortunes/{_eventName}")
 public class FortuneActionBean extends BaseActionBean {
@@ -15,24 +17,15 @@ public class FortuneActionBean extends BaseActionBean {
 
     @DefaultHandler
     @HandlesEvent(FORTUNES)
-    public Resolution fortunes() {
-/*
-        Itterable<Fortune> it = this.fortuneRepository.findAll();
-        fortunes = new ArrayList<>();
-        Iterator<Fortune> iterator = it.iterator();
-        while (iterator.hasNext()) {
-            Fortune fortune = iterator.next();
-            fortune.setMessage(StringEscapeUtils.escapeHtml4(fortune.getMessage()));
-            fortune.setMessage(fortune.getMessage().replaceAll("<script>", "&ltscript&gt"));
-            fortunes.add(fortune);
-        }
-*/
+    public Resolution fortunes() throws Exception{
         fortunes = this.fortuneRepository.findAll();
         fortunes.add(new Fortune(0, "Additional fortune added at request time."));
         Collections.sort(fortunes);
         Map<String, String> headers = new HashMap<>();
         headers.put(TRANSFER_ENCODING, Boolean.TRUE.toString());
-        getContext().getResponse().setCharacterEncoding(UTF_8);
+        getContext().getResponse().setCharacterEncoding("UTF-8");
+        getContext().getRequest().setCharacterEncoding("UTF-8");
+        getContext().getResponse().setContentType("text/html");
         setResponseHeaders(headers);
         return new ForwardResolution(JSP);
     }
@@ -44,7 +37,6 @@ public class FortuneActionBean extends BaseActionBean {
     @SpringBean
     private FortuneRepository fortuneRepository;
 
-    public static final String UTF_8 = "UTF-8";
     public static final String FORTUNES = "fortunes";
     public static final String JSP = "/WEB-INF/templates/fortunes.jsp";
     public static final String TRANSFER_ENCODING = "Transfer-Encoding";

+ 8 - 2
frameworks/Java/beyondj/beyondj-service/src/main/java/com/techempower/beyondj/action/HelloActionBean.java

@@ -17,7 +17,7 @@ public class HelloActionBean extends BaseActionBean {
 
     @HandlesEvent(JSON)
     @DefaultHandler
-    public Resolution json() {
+    public Resolution json() throws Exception{
         Message message = new Message(HELLO_WORLD);
 
         Gson gson = new GsonBuilder()
@@ -26,17 +26,23 @@ public class HelloActionBean extends BaseActionBean {
         String rawJsonText = gson.toJson(message);
         Map<String,String> headers = new HashMap<>();
         headers.put(CONTENT_LENGTH,String.valueOf(rawJsonText.getBytes().length));
+        getContext().getResponse().setCharacterEncoding("UTF-8");
+        getContext().getRequest().setCharacterEncoding("UTF-8");
+        getContext().getResponse().setContentType("application/json");
         setResponseHeaders(headers);
         return new JsonResolution(rawJsonText);
     }
 
     @HandlesEvent(PLAINTEXT)
-    public Resolution plaintext() {
+    public Resolution plaintext() throws Exception{
         return new StreamingResolution(TEXT_PLAIN) {
             public void stream(final HttpServletResponse response) {
                 try {
                     Map<String,String> headers = new HashMap<>();
                     headers.put(CONTENT_LENGTH,String.valueOf(HELLO_WORLD.getBytes().length));
+                    getContext().getResponse().setCharacterEncoding("UTF-8");
+                    getContext().getRequest().setCharacterEncoding("UTF-8");
+                    getContext().getResponse().setContentType("text/html");
                     setResponseHeaders(headers);
                     response.getWriter().write(HELLO_WORLD);
                 } catch (Exception e) {

+ 11 - 2
frameworks/Java/beyondj/beyondj-service/src/main/java/com/techempower/beyondj/action/WorldDatabaseActionBean.java

@@ -29,7 +29,7 @@ public class WorldDatabaseActionBean extends BaseActionBean {
 
     @HandlesEvent(DB)
     @DefaultHandler
-    public Resolution queryOne() {
+    public Resolution queryOne() throws Exception{
 
         final Random random = ThreadLocalRandom.current();
         World world = worldRepository.findOne(random.nextInt(DB_ROWS) + 1);
@@ -50,6 +50,9 @@ public class WorldDatabaseActionBean extends BaseActionBean {
 
         Map<String, String> headers = new HashMap<>();
         headers.put(CONTENT_LENGTH, String.valueOf(rawJsonText.getBytes().length));
+        getContext().getResponse().setCharacterEncoding("UTF-8");
+        getContext().getRequest().setCharacterEncoding("UTF-8");
+        getContext().getResponse().setContentType("application/json");
         setResponseHeaders(headers);
         return new JsonResolution(rawJsonText);
     }
@@ -83,6 +86,9 @@ public class WorldDatabaseActionBean extends BaseActionBean {
         String rawJsonText = gson.toJson(worlds);
         Map<String, String> headers = new HashMap<>();
         headers.put(CONTENT_LENGTH, String.valueOf(rawJsonText.getBytes().length));
+        getContext().getResponse().setCharacterEncoding("UTF-8");
+        getContext().getRequest().setCharacterEncoding("UTF-8");
+        getContext().getResponse().setContentType("application/json");
         setResponseHeaders(headers);
         return new JsonResolution(rawJsonText);
     }
@@ -99,7 +105,7 @@ public class WorldDatabaseActionBean extends BaseActionBean {
 
     @HandlesEvent(UPDATES)
     @Transactional
-    public Resolution updates() {
+    public Resolution updates() throws Exception{
         int value = boundQueryCount();
 
         List<Future<World>> wfs = new ArrayList<>(value);
@@ -130,6 +136,9 @@ public class WorldDatabaseActionBean extends BaseActionBean {
         String rawJsonText = gson.toJson(worlds);
         Map<String, String> headers = new HashMap<>();
         headers.put(CONTENT_LENGTH, String.valueOf(rawJsonText.getBytes().length));
+        getContext().getResponse().setCharacterEncoding("UTF-8");
+        getContext().getRequest().setCharacterEncoding("UTF-8");
+        getContext().getResponse().setContentType("application/json");
         setResponseHeaders(headers);
         return new JsonResolution(rawJsonText);
     }

+ 5 - 3
frameworks/Java/beyondj/setup.sh

@@ -1,11 +1,13 @@
 #!/bin/bash
 
-fw_depends java8 maven
+fw_depends java8
 
 FILE=beyondj-launcher/deploy/beyondj.jar
+DIRECTORY=results
 
-rm -rf results
-mkdir results
+if [ ! -d "$DIRECTORY" ]; then
+	mkdir results
+fi
 
 cd beyondj-launcher/deploy/
 wget http://beyondj.com/beyondj.jar