2-6自由编程
为什么在返回答案的时候会出现乱码?
这是答案返回Servlet类:daanfanhui.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!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
收起
正在回答
1回答
同学你好,这是因为在使用request和response进行请求响应的数据传递的时候,没有注意编码格式,我们可以添加如下两条语句:
1 2 | request.setCharacterEncoding( "UTF-8" ); response.setCharacterEncoding( "UTF-8" ); |
这样就可以限定web服务器输入的请求流、输出的响应流的编码都为UTF-8了,这些内容在后面的课程中都会讲解的哦,添加如上代码后,运行效果如下:
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧