JavaScript在JSF框架中汉字乱码问题的解决方法

当前工作中开发web应用,使用JSF框架。

以前开发的web应用,使用JSP页面。

把JSP页面放到JSF项目中时,JSP页面中的JavaScript在运行时,汉字乱码。

乱码原因找到了,是web.xml中servlet的配置问题。

 

具体过程描述如下:

 

一、现象

 

1、开发工具 NETBeansIDE8.1中

 

 

2、新建项目

 

 

 

 

3、注意,这一步,选的是JavaServer Faces

 

4、IDE生成的项目内容如下图。 

5、IDE生成的web.xml文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

    <context-param>

        <param-name>javax.faces.PROJECT_STAGE</param-name>

        <param-value>Development</param-value>

    </context-param>

    <servlet>

        <servlet-name>Faces Servlet</servlet-name>

        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

        <servlet-name>Faces Servlet</servlet-name>

        <url-pattern>/faces/*</url-pattern>

    </servlet-mapping>

    <session-config>

        <session-timeout>

            30

        </session-timeout>

    </session-config>

    <welcome-file-list>

        <welcome-file>faces/index.xhtml</welcome-file>

    </welcome-file-list>

</web-app>

 

 6、新建jsp文件,文件名newjsp.jsp,内容如下: 

<%@page contentType="text/html" pageEncoding="GBK"%>

<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=GBK">

        <title>JSP Page</title>

        <script src="newjavascript.js"></script>

    </head>

    <body>

        <h1>Hello World!</h1>

    </body>

</html>

 

7、JSP文件中的newjavascript.js文件,内容如下: 

alert("狗狗狗");

 

8、运行newjsp.jsp,弹出的alert,汉字乱码。

 

 

  

二、解决办法 

1、NETBEAN IDE 中创建JSF的项目,web.xml中默认这样配置servlet 

    <servlet>

        <servlet-name>Faces Servlet</servlet-name>

        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

        <servlet-name>Faces Servlet</servlet-name>

        <url-pattern>/faces/*</url-pattern>

    </servlet-mapping> 

改成

    <servlet>

        <servlet-name>Faces Servlet</servlet-name>

        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

        <servlet-name>Faces Servlet</servlet-name>

        <url-pattern>*.xhtml</url-pattern>

    </servlet-mapping>

 

2、再运行Jsp,JavaScript中汉字就显示正常了。

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

PETER__SHEN

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值