当前位置: 首页 > 知识库问答 >
问题:

映射servlet到希伯来文(UTF-8)URL模式

曾枫
2023-03-14

我使用的是windows操作系统。使用tomcat 8。IDE-Netbeans 8。JDK1。8.0_05

我试图为某些servlet指定希伯来语url模式。(我通过设置@webservlet注释的Urlpattern属性,以及将其放入web.xml文件,尝试了这两种方法)。

希伯来语地图不起作用。我检查Tomcat运行时映射的样子(通过使用JConsole的MBeans选项卡),希伯来语url显示为乱码(特别是问号)。

我试过:

  • 添加-J-Dfile。编码=UTF-8到netbeans。conf文件

关于如何使用tomcat、netbeans、java和windows设置映射到希伯来语(UTF-8)url,有什么建议吗?

谢谢。

共有2个答案

赖绪
2023-03-14

遵循以下步骤:

>

  • 编写一个将控制所有请求和响应的字符集筛选器:
    引用:https://github.com/edendramis/freemarker-example/blob/master/src/main/java/com/edendramis/config/CharsetFilter.java

     package charsetFilter.classes;
    
     import java.io.IOException;
     import javax.servlet.Filter;
     import javax.servlet.FilterChain;
     import javax.servlet.FilterConfig;
     import javax.servlet.ServletException;
     import javax.servlet.ServletRequest;
     import javax.servlet.ServletResponse;
    
    public class CharsetFilter implements Filter{
        private String encoding;
    
        public void init(FilterConfig config) throws ServletException{
                encoding = config.getInitParameter("requestEncoding");
                if( encoding==null ) encoding="UTF-8";
        }
    
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain       next)
        throws IOException, ServletException{
            // Respect the client-specified character encoding
            // (see HTTP specification section 3.4.1)
                if(null == request.getCharacterEncoding())
                request.setCharacterEncoding(encoding);
                /**
            * Set the default response content type and encoding
            */
            response.setContentType("text/html; charset=UTF-8");
            response.setCharacterEncoding("UTF-8");
                next.doFilter(request, response);
        }
    
            public void destroy(){}
    }`
    

    将此筛选器添加到web。xml

     <filter>
            <filter-name>CharsetFilter</filter-name>
            <filter-class>charsetFilter.classes.CharsetFilter</filter-class>
                <init-param>
                    <param-name>requestEncoding</param-name>
                    <param-value>UTF-8</param-value>
                </init-param>
    </filter>
    
    <filter-mapping>
            <filter-name>CharsetFilter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    编写一些超文本标记语言代码,例如:

    在servlet中使用以下内容:

    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html; charset=UTF-8");
    response.setCharacterEncoding("UTF-8"); 
    

    获取字符串:
    字符串输入=新字符串(request.getParameter(“foo”)。getBytes(“iso-8859-1”),“utf-8”);字符串输入=URL解码器。解码(request.getParameter(“关键字”),“UTF-8”);系统出来println(输入)

    网址:

    String str = "$ome UTF-8 text £900";
    String url = "http://your-domain.com/url?p=" + URLEncoder.encode(str, "UTF-8");
    

    干杯

  • 萧鸿轩
    2023-03-14

    您需要配置您的应用服务器以在utf-8中编码请求参数。由于您使用的是Tomcat,这将是在conf/server.xml文件中设置URIEncode="UTF-8"。它应该是这样的:

    <Connector port="8080" maxHttpHeaderSize="8192"
     maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
     .......
     URIEncoding="UTF-8"
    />
    
     类似资料:
    • 你好,我想写一个带有HEBREW文本的CSV。它写了一些符号,而不是希伯来文。下面是我的PHP代码。 我在互联网上查了一下,添加了“fputs($fp,$bom=(chr(0xEF).chr(0xBB).chr(0xBF))”,但没有成功。谁能帮帮我吗。 下面是我得到的结果。

    • 我遇到了一些问题,无法理解URL映射是如何为servlet工作的。 我在网上看了很多教程和帖子,但没有运气。 所以,假设我有一个servlet(welcomeServlet.java)、一个索引页(index.html)和我的web.xml文件。 java文件在src目录中,而index.html在WebContent目录中。 我的索引页将由web.xml调用,并将显示一个按钮,一旦按下该按钮,将

    • 问题内容: 我是Java servlet的新手。 如果这个问题看起来很愚蠢,请原谅我。 我在web.xml servlet选项卡中使用netbeans添加了servlet映射,例如servlet类和url模式,但是当应用程序运行时,它不会直接进入目标URL,即http:// localhost:8080 / HelloDuke2 / greeting 但 http :// localhost:80

    • 我为Tomcat处理这个web xml文件已经有一段时间了。 我知道这个文件正在被读取,因为当我使用 } 我能够读出我放在上下文参数中的名称。我要问你们的问题是,我如何创建一个网址映射,这样我就不必通过 /servlet/来访问网址中的servlet?当我试图制作一个网址模式时,比如 /test/*,即使我说网站/测试/TestServlet,我也无法访问servlet。我从浏览器中得到404未找

    • Web 容器需要本章描述的映射技术去映射客户端请求到 Servlet(该规范2.5以前的版本,使用这些映射技术是作为一个建议而不是要求,允许servlet 容器各有其不同的策略用于映射客户端请求到 servlet)。

    • 问题内容: 如果我点击/ test / page,以上方法将起作用。但是,打/ test或/ test /将不起作用。我正在使用Spring MVC,我的请求映射如下: 编辑: 我正在通过一个独立的项目进行验证,但这似乎是Spring的UrlPathHelper的一个错误。当同时存在上下文和servlet路径时,以下方法将返回错误的路径,并且你在打servlet时不带斜杠。 举例来说,我有一个“