• web中显示中文名称的图片,可以这样配置filter


    com.cy.filter.UrlFilter:

    package com.cy.filter;
    
    import java.io.IOException;
    import java.net.URLDecoder;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    
    public class UrlFilter implements Filter{
        public final static String DEFAULT_URI_ENCODE = "UTF-8";
        private FilterConfig config = null;
        private String encode = null;
        
        @Override
        public void init(FilterConfig config) throws ServletException {
            this.config = config;
            this.encode = config.getInitParameter("DEFAULT_URI_ENCODE");
            if(this.encode == null){
                this.encode = DEFAULT_URI_ENCODE;
            }
        }
    
        @Override
        public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest) req;
            String uri = request.getRequestURI();
            String ch = URLDecoder.decode(uri, encode);
            if(uri.equals(ch)){                                //如果url中没有中文的话
                chain.doFilter(req, res);
                return;
            }
            
            //url中如果含有中文
            ch = ch.substring(request.getContextPath().length());
            config.getServletContext().getRequestDispatcher(ch).forward(req, res);
        }
    
        @Override
        public void destroy() {
            this.config = null;
        }
    
    }

    web.xml中的配置:

    <!-- 中文路径 -->
        <filter>
            <filter-name>urlFilter</filter-name>
            <filter-class>com.cy.filter.UrlFilter</filter-class>
            <init-param>
                <param-name>DEFAULT_URI_ENCODE</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>urlFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

    index.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="resources/js/jquery.min.js"></script>
    <title>index</title>
    <style type="text/css">
    </style>
    </head>
    <body>
        <p>hello index</p>
        <div>
            <img src="resources/images/觅心射手.png" />
        </div>
        
    </body>
    <script type="text/javascript">
    
    </script>
    </html>

    访问index首页,可以正确的看到中文的图片。

  • 相关阅读:
    servlet&jsp高级:第四部分
    servlet&jsp高级:第三部分
    servlet&jsp高级:第二部分
    servlet&jsp高级:第一部分
    Servlet&jsp基础:第四部分
    Servlet&jsp基础:第三部分
    Servlet&jsp基础:第二部分
    Servlet&jsp基础:第一部分
    关于各地区并发高的解决思路
    Intellij IDEA使用restclient测试
  • 原文地址:https://www.cnblogs.com/tenWood/p/8563037.html
Copyright © 2020-2023  润新知