getRequestDispatcher调用html文件后产生中文乱码

刚刚开始java web的入门,其中产生不少令我困惑的地方。如标题,调用getRequestDispatcher()函数,参数为html文件后会产生中文乱码。
在这里插入图片描述

尝试过程中,参数文件后缀为.java却不会有乱码,唯独html的出现乱码,为此找了很多网上的教程,

第一类是补充以下这行代码:

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

亲测后发现没有解决我的问题。

第二类是调出你的代码工具IDE(我用的是neatbeans IDE),把编码方式改成GBK或者GB2312。

但是这种方法使得我所有写有中文的代码全部变成乱码,打开就出错,幸好之前备份了,所以这个方案一样不建议使用。

第三类就是我自己的土办法了。
打开getRequestDispatcher函数中调用的参数html文件,在里面< head > < /head>的中间增添一行:

<meta charset="GBK">

注意:如果之前写的是“UTF-8”的就不要添加了,直接改成“GBK”就行了。

下面是部分截图:

在这里插入图片描述
没改之前:

在这里插入图片描述
在这里插入图片描述

改成GBK之后:
在这里插入图片描述
在这里插入图片描述

下面是index.html的全部代码:

<!DOCTYPE html>
<!--这是登陆的页面-->
<html>
    <head>
        <meta charset="GBK">
        <title>注册页面</title>
    </head>
    <body bgcolor="#98FB98">
    <center><h1>欢迎来到登陆页面</h1></center>
    <center>
        <form action="Main" method="post">
            <table border="2">
                <tr>
                    <td><label for="username">用户名</label></td>
                    <td><input type="text" name="username" id="username" placeholder="请输入账号"></td>
                </tr>
                <tr>
                    <td><label for="password">密码</label></td>
                    <td><input type="password" name="password" id="password" placeholder="请输入密码"></td>
                </tr>
                <td  align="right"><input type="submit" value="注册" name="Register"></td>
                <td  align="right"><input type="submit" value="登陆" name="Login"></td>
                <h6>护眼模式</h6>
            </table>
        </form>
    </center>
</body>
<body align="center" >
    <h6 style="color: red">如果尚未注册,请点击注册按钮!</h6>
</body>
</html>

最后:

虽然我自己没能深入的弄明白其中的原理,各位若有同样的问题的话,不妨试试,如果这个方法行不通,欢迎共同探讨。

原创文章 55 获赞 6 访问量 2893

猜你喜欢

转载自blog.csdn.net/enjoy_code_/article/details/105458682