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

本文描述了在JSF项目中引入JSP页面时遇到的汉字乱码问题及其解决方法。通过调整web.xml中的servlet映射配置,解决了JavaScript中汉字显示乱码的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前工作中开发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中汉字就显示正常了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值