Browse Source

Include charset in text/html responses (#8777) (#9123)

Addresses #8775 for version 8.1+
tags/8.1.0.alpha7
Ilia Motornyi 7 years ago
parent
commit
973278ac49

+ 4
- 3
server/src/main/java/com/vaadin/server/BootstrapHandler.java View File



private void writeBootstrapPage(VaadinResponse response, String html) private void writeBootstrapPage(VaadinResponse response, String html)
throws IOException { throws IOException {
response.setContentType("text/html");
response.setContentType(
ApplicationConstants.CONTENT_TYPE_TEXT_HTML_UTF_8);
try (BufferedWriter writer = new BufferedWriter( try (BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(response.getOutputStream(), "UTF-8"))) { new OutputStreamWriter(response.getOutputStream(), "UTF-8"))) {
writer.append(html); writer.append(html);
document.child(0).before(doctype); document.child(0).before(doctype);


Element head = document.head(); Element head = document.head();
head.appendElement("meta").attr("http-equiv", "Content-Type")
.attr("content", "text/html; charset=utf-8");
head.appendElement("meta").attr("http-equiv", "Content-Type").attr(
"content", ApplicationConstants.CONTENT_TYPE_TEXT_HTML_UTF_8);


/* /*
* Enable Chrome Frame in all versions of IE if installed. * Enable Chrome Frame in all versions of IE if installed.

+ 2
- 1
server/src/main/java/com/vaadin/server/VaadinServlet.java View File

import com.vaadin.annotations.VaadinServletConfiguration.InitParameterName; import com.vaadin.annotations.VaadinServletConfiguration.InitParameterName;
import com.vaadin.sass.internal.ScssStylesheet; import com.vaadin.sass.internal.ScssStylesheet;
import com.vaadin.server.communication.ServletUIInitHandler; import com.vaadin.server.communication.ServletUIInitHandler;
import com.vaadin.shared.ApplicationConstants;
import com.vaadin.shared.JsonConstants; import com.vaadin.shared.JsonConstants;
import com.vaadin.shared.Version; import com.vaadin.shared.Version;
import com.vaadin.ui.UI; import com.vaadin.ui.UI;
output += "</a>"; output += "</a>";
} }
getService().writeStringResponse(response, getService().writeStringResponse(response,
"text/html; charset=UTF-8", output);
ApplicationConstants.CONTENT_TYPE_TEXT_HTML_UTF_8, output);
} }
} }



+ 3
- 1
server/src/main/java/com/vaadin/server/communication/FileUploadHandler.java View File

import com.vaadin.server.VaadinRequest; import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinResponse; import com.vaadin.server.VaadinResponse;
import com.vaadin.server.VaadinSession; import com.vaadin.server.VaadinSession;
import com.vaadin.shared.ApplicationConstants;
import com.vaadin.ui.UI; import com.vaadin.ui.UI;
import com.vaadin.ui.Upload.FailedEvent; import com.vaadin.ui.Upload.FailedEvent;


*/ */
protected void sendUploadResponse(VaadinRequest request, protected void sendUploadResponse(VaadinRequest request,
VaadinResponse response) throws IOException { VaadinResponse response) throws IOException {
response.setContentType("text/html");
response.setContentType(
ApplicationConstants.CONTENT_TYPE_TEXT_HTML_UTF_8);
try (OutputStream out = response.getOutputStream()) { try (OutputStream out = response.getOutputStream()) {
final PrintWriter outWriter = new PrintWriter( final PrintWriter outWriter = new PrintWriter(
new BufferedWriter(new OutputStreamWriter(out, "UTF-8"))); new BufferedWriter(new OutputStreamWriter(out, "UTF-8")));

+ 2
- 1
server/src/main/java/com/vaadin/ui/LoginForm.java View File

import java.util.Map; import java.util.Map;


import com.vaadin.server.StreamResource; import com.vaadin.server.StreamResource;
import com.vaadin.shared.ApplicationConstants;
import com.vaadin.shared.Registration; import com.vaadin.shared.Registration;
import com.vaadin.shared.ui.loginform.LoginFormConstants; import com.vaadin.shared.ui.loginform.LoginFormConstants;
import com.vaadin.shared.ui.loginform.LoginFormRpc; import com.vaadin.shared.ui.loginform.LoginFormRpc;


StreamResource resource = new StreamResource(new LoginStreamSource(), StreamResource resource = new StreamResource(new LoginStreamSource(),
LoginFormConstants.LOGIN_RESOURCE_NAME); LoginFormConstants.LOGIN_RESOURCE_NAME);
resource.setMIMEType("text/html; charset=utf-8");
resource.setMIMEType(ApplicationConstants.CONTENT_TYPE_TEXT_HTML_UTF_8);
resource.setCacheTime(-1); resource.setCacheTime(-1);
setResource(LoginFormConstants.LOGIN_RESOURCE_NAME, resource); setResource(LoginFormConstants.LOGIN_RESOURCE_NAME, resource);



+ 5
- 0
shared/src/main/java/com/vaadin/shared/ApplicationConstants.java View File

*/ */
public static final String WIDGETSET_VERSION_ID = "wsver"; public static final String WIDGETSET_VERSION_ID = "wsver";


/**
* Content type to use for text/html responses (should always be UTF-8).
*/
public static final String CONTENT_TYPE_TEXT_HTML_UTF_8 = "text/html; charset=utf-8";

} }

Loading…
Cancel
Save