老师,代码还有什么可以改进的吗?还有servlet响应的时候为什么没有出现乱码?

老师,代码还有什么可以改进的吗?还有servlet响应的时候为什么没有出现乱码?

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body>

<form action="/servlet_advanced/word/result" method="get">

<input type="text" name="word" placeholder="请输入要查询的单词">

    <input type="submit" value="查询">

</form>

</body>

</html>



package com.imooc.servlet.word;


import java.io.IOException;

import java.util.HashMap;

import java.util.Map;


import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;


/**

 * Servlet implementation class WordResultServlet

 */

@WebServlet("/word/result")

public class WordResultServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public WordResultServlet() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Map<String,String> map=new HashMap();

map.put("apple","苹果");

map.put("banana","香蕉");

map.put("orange","橘子");

String word=request.getParameter("word");

HttpSession session=request.getSession();

if(map.containsKey(word)==true) {

request.setAttribute("word",word);

request.setAttribute("result",map.get(word));

request.getRequestDispatcher("/success.jsp").forward(request, response);

}else if(map.containsKey(word)==false){

session.setAttribute("result","没有找到对应的单词解释");

response.sendRedirect("/servlet_advanced/fail.jsp");

}

}


}



<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body>

<%

String word=(String)request.getAttribute("word");

out.println("<h1 style='color:blue'>"+word+"</h1>");

%>

</body>

</html>



<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body>

<%

String result=(String)session.getAttribute("result");

out.println("<h1 style='color:red'>"+result+"</h1>");

%>

</body>

</html>


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

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

1回答
提问者 精慕门618366 2019-09-18 21:37:21

我在响应的时候并没有进行中文处理啊

  • 同学你好,1、复制运行贴出代码,运行效果没有问题,很棒呐。2、没有乱码是最好了,不过为了防止程序出现乱码,最好还是设置一下字符编码格式。有的程序会出现乱码,而有的不会,可能是tomcat的版本不同等因素导致的,所以还是建议同学设置一下编码呐。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-09-19 10:59:21
  • 提问者 精慕门618366 回复 好帮手慕小班 #2
    给响应设置一下吗?因为是get所以请求默认为utf8,所以请求不用设置?
    2019-09-19 13:00:43
  • 好帮手慕小班 回复 提问者 精慕门618366 #3
    同学你好,建议一般情况下,我们需要请求和响应都设置一下编码格式,添加request.setCharacterEncoding("UTF-8");和response.setCharacterEncoding("UTF-8");两条语句,因为请求和响应的默认编码有时可能不是UTF-8呐。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-09-19 14:52:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

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

在线咨询

领取优惠

免费试听

领取大纲

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