VIVO-1008 Don't override the mime type if the servlet container can provide it.
In CharsetEncodingFilter, check to see whether the servlet container knows the mime type, before forcing it to "text/html;charset=UTF-8"
This commit is contained in:
parent
a71f05d2f0
commit
8e429ca878
2 changed files with 88 additions and 12 deletions
|
@ -7,6 +7,7 @@ import java.io.IOException;
|
|||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
|
@ -15,17 +16,37 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import org.apache.commons.fileupload.servlet.ServletFileUpload;
|
||||
|
||||
public class CharsetEncodingFilter implements Filter {
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
}
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
// Nothing to set up
|
||||
}
|
||||
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||
if( !ServletFileUpload.isMultipartContent((HttpServletRequest) servletRequest) )
|
||||
servletRequest.setCharacterEncoding("UTF-8");
|
||||
servletResponse.setContentType("text/html;charset=UTF-8");
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
}
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest,
|
||||
ServletResponse servletResponse, FilterChain filterChain)
|
||||
throws IOException, ServletException {
|
||||
HttpServletRequest req = (HttpServletRequest) servletRequest;
|
||||
ServletContext ctx = req.getSession().getServletContext();
|
||||
String url = req.getRequestURL().toString();
|
||||
|
||||
public void destroy() {
|
||||
}
|
||||
if (!ServletFileUpload.isMultipartContent(req)) {
|
||||
servletRequest.setCharacterEncoding("UTF-8");
|
||||
}
|
||||
|
||||
if (req.getContentType() == null) {
|
||||
String typeFromContext = ctx.getMimeType(url);
|
||||
if (typeFromContext == null) {
|
||||
servletResponse.setContentType("text/html;charset=UTF-8");
|
||||
} else {
|
||||
servletResponse.setContentType(typeFromContext);
|
||||
}
|
||||
}
|
||||
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
// Nothing to tear down
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1238,8 +1238,63 @@
|
|||
<url-pattern>/selectLocale</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
|
||||
<!-- ==================== mime types ============================== -->
|
||||
|
||||
<mime-mapping>
|
||||
<extension>css</extension>
|
||||
<mime-type>text/css</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>gif</extension>
|
||||
<mime-type>image/gif</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>GIF</extension>
|
||||
<mime-type>image/gif</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>htm</extension>
|
||||
<mime-type>text/html</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>html</extension>
|
||||
<mime-type>text/html</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>ico</extension>
|
||||
<mime-type>image/x-icon</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>jpeg</extension>
|
||||
<mime-type>image/jpeg</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>jpg</extension>
|
||||
<mime-type>image/jpeg</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>js</extension>
|
||||
<mime-type>application/javascript</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>png</extension>
|
||||
<mime-type>image/png</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>svg</extension>
|
||||
<mime-type>image/svg+xml</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>txt</extension>
|
||||
<mime-type>text/plain</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>xml</extension>
|
||||
<mime-type>application/xml</mime-type>
|
||||
</mime-mapping>
|
||||
|
||||
<!-- ==================== tag libraries ============================== -->
|
||||
|
||||
<jsp-config>
|
||||
<taglib>
|
||||
<taglib-uri>/WEB-INF/tlds/database.tld</taglib-uri>
|
||||
|
|
Loading…
Add table
Reference in a new issue