2-6自由编程

2-6自由编程

为什么在返回答案的时候会出现乱码?

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

这是答案返回Servlet类:daanfanhui.java

package com.winking.ServletProj.change;

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

/**
 * Servlet implementation class daanfanhui
 */
@WebServlet("/mun")
public class daanfanhui extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public daanfanhui() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		int mun=(int)request.getAttribute("reqn");
		
		response.getWriter().println("这是累加的和:"+mun);
		response.setContentType("text/html;charset=utf-8");
	}

}

这是请求获取Servlet:getnum.java

package com.winking.ServletProj.change;

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

/**
 * Servlet implementation class getnum
 */
@WebServlet("/get")
public class getnum extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public getnum() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String n =request.getParameter("n");
		int a=Integer.parseInt(n);
		int i=0;
		int umn=0;
		while(i<=a) {
			umn=umn+i;
			i++;
		}
		request.setAttribute("reqn", umn);
		request.getRequestDispatcher("/mun").forward(request, response);
		
	}

}

这是html的代码:computer.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://localhost:8080/FirstServlet/get">
<input type="text" name="n" "/>
<input type="submit" value="求累加和"/>
</form>
</body>
</html>


正在回答

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

1回答

同学你好,这是因为在使用request和response进行请求响应的数据传递的时候,没有注意编码格式,我们可以添加如下两条语句:

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

这样就可以限定web服务器输入的请求流、输出的响应流的编码都为UTF-8了,这些内容在后面的课程中都会讲解的哦,添加如上代码后,运行效果如下:

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

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

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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