老师,无论怎么改中文都乱码

老师,无论怎么改中文都乱码

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
    <p>加法计算器</p>
    <form action="http://localhost:8080/ServletProj/sum" method="post">
    	<span>加数1:</span><input type="text" name="sum1"><br /><br />
    	<span>加数2:</span><input type="text" name="sum2"><br /><br />
    	<!-- input的类型得是submit才能跳转成功!之前一直写的button死活不跳转... -->
    	<input type="submit" value="计算" name="button">
    </form> 
</body>
</html>

SumServlet.java

package com.superj.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/sum")
public class SumServlet extends HttpServlet{

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=utf-8");
		resp.setCharacterEncoding("utf-8");
		String ssum1 = req.getParameter("sum1");
		String ssum2 = req.getParameter("sum2");
		int sum1 = Integer.parseInt(ssum1);
		int sum2 = Integer.parseInt(ssum2);
		int sum = sum1 + sum2;
		PrintWriter out = resp.getWriter();
		out.println("加法计算器:");
		out.println("运算结果为:"+sum);
	}
	
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ServletProj</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<servlet-name>shop</servlet-name>
  	<servlet-class>com.superj.servlet.ServletProj</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>shop</servlet-name>
  	<url-pattern>/ShopServlet</url-pattern>
  </servlet-mapping>
    <servlet>
  	<servlet-name>computer</servlet-name>
  	<servlet-class>com.superj.servlet.ComputerServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>computer</servlet-name>
  	<url-pattern>/ComputerServlet</url-pattern>
  </servlet-mapping>
  <servlet>
<servlet-name>sum</servlet-name>
<servlet-class>com.superj.servlet.SumServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sum</servlet-name>
<url-pattern>/sum</url-pattern>
</servlet-mapping>
</web-app>

现在运行时正确的但是还有两个疑问想请教一下老师.

  1. 无论怎么设置,中文都是乱码的

  2. 如果去掉web.xml中的配置,而是用注解的方式,跳转之后就提示404
    http://img1.sycdn.imooc.com//climg/5e74ba340980fc5a08990449.jpghttp://img1.sycdn.imooc.com//climg/5e74bac2093f781a07340276.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 阿姜爱学习 2020-03-21 11:54:37

老师你好,关于第一个问题,无论我都设置成utf-8还是gbk格式的,中文都会显示成问号,像图中这样.

http://img1.sycdn.imooc.com//climg/5e758f84090d182c03620117.jpg

关于第二个问题,我在用注解的时候,把web.xml里面相关的声明删掉了,只留@WebServlet("/sum"),这种写法,但是跳转页面的时候就是404找不到,不知道是什么原因

  • 同学你好,根据上述情况来看,建议同学更换tomcat后再尝试重新运行。 祝学习愉快~
    2020-03-21 12:06:38
好帮手慕小脸 2020-03-21 11:48:23

同学你好,

1、无论怎么设置,中文都是乱码的?

老师没有出现同学乱码的情况,同学具体是哪里乱码呢?还请提供一下展示乱码的截图

2、建议同学重新编译一下,并且去tomcat中清除一下,然后重新添加一下项目

如果我的回答解决了你的疑惑,请采纳,祝学习愉快

            

            

  • 提问者 阿姜爱学习 #1
    老师,我在新的评论里回复了,您再帮我解答一下,谢谢^_^
    2020-03-21 11:58:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师