为什么有些地方乱码了

来源:4-1 Freemarker与Servlet整合

慕村1463237

2020-02-07 23:31:27

package com.freemarker;


public class Employee {

    private Integer eno;

    private String  ename;

    private String department;

    private String job;

    private Float salary;

    

public Employee(Integer eno, String ename, String department,String job, Float salary) {

this.setDepartment(department);

this.setEname(ename);

this.setEno(eno);

this.setSalary(salary);

this.setJob(job);

}

public Integer getEno() {

return eno;

}

public void setEno(Integer eno) {

this.eno = eno;

}

public String getEname() {

return ename;

}

public void setEname(String ename) {

this.ename = ename;

}

public String getDepartment() {

return department;

}

public void setDepartment(String department) {

this.department = department;

}

public Float getSalary() {

return salary;

}

public void setSalary(Float salary) {

this.salary = salary;

}

public String getJob() {

return job;

}

public void setJob(String job) {

this.job = job;

}

    

}

package com.freemarker;


import java.io.IOException;

import java.util.ArrayList;

import java.util.List;


import javax.servlet.ServletContext;

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 FreemarkerServlet

 */

@WebServlet("/free")

public class FreemarkerServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public FreemarkerServlet() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

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

*/

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

request.setCharacterEncoding("utf-8");

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

ServletContext context=request.getServletContext();

if(context.getAttribute("employees")==null) {

List<Employee> list=new ArrayList<Employee>();

       list.add(new Employee(1001,"李小龙","事业部","建筑师",2000f));

       list.add(new Employee(1002,"阿拉","技术部","经理",2500f));

       context.setAttribute("employees", list);

}

request.getRequestDispatcher("/employee.ftl").forward(request, response);

}


}

<?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>freemarkers-employee</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>freemarker</servlet-name>

    <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>

    <init-param>

      <param-name>TemplatePath</param-name>

      <param-value>/WEB-INF/ftl</param-value>

    </init-param>

  </servlet>

  <servlet-mapping>

    <servlet-name>freemarker</servlet-name>

    <url-pattern>*.ftl</url-pattern>

  </servlet-mapping>

</web-app>


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width,initial-scale=1">

    <title>员工列表</title>

    <link href="css/bootstrap.css" type="text/css" rel="stylesheet"></link>

    

    <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>

    <script type="text/javascript" src="js/bootstrap.js"></script>


    <style type="text/css">

        .pagination {

            margin: 0px

        }


        .pagination > li > a, .pagination > li > span {

            margin: 0 5px;

            border: 1px solid #dddddd;

        }


        .glyphicon {

            margin-right: 3px;

        }


        .form-control[readonly] {

            cursor: pointer;

            background-color: white;

        }

        #dlgPhoto .modal-body{

            text-align: center;

        }

        .preview{


            max-width: 500px;

        }

    </style>

</head>

<body>


<div class="container">

    <div class="row">

        <h1 style="text-align: center">IMOOC员工信息表</h1>

        <div class="panel panel-default">

            <div class="clearfix panel-heading ">

                <div class="input-group" style="width: 500px;">

                    

                </div>

            </div>


            <table class="table table-bordered table-hover">

                <thead>

                <tr>

                    <th>序号</th>

                    <th>员工编号</th>

                    <th>姓名</th>

                    <th>部门</th>

                    <th>职务</th>

                    <th>工资</th>

                    <th>&nbsp;</th>

                </tr>

                </thead>

                <tbody>

                <#list employees as e>

                <tr>

                    <td>${e_index+1}</td>

                    <td>${e.eno?string("0")}</td>

                    <td>${e.ename}</td>

                    <td>${e.department}</td>

                    <td>${e.job}</td>

                    <td style="color: red;font-weight: bold">¥${e.salary?string("0.00")}</td>

                    

                </tr>

                </#list>

                </tbody>

            </table>

        </div>

    </div>

</div>


</body>

</html>

http://img.mukewang.com/climg/5e3d82ca09732d3318850740.jpg

写回答

1回答

好帮手慕柯南

2020-02-08

同学你好!

同学可以在web.xml中采用如下代码将其设置为UTF-8,重启Tomcat,再请求一下试试

<servlet>
 <servlet-name>freemarker</servlet-name>
 <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
 <init-param>
   <param-name>TemplatePath</param-name>
   <param-value>/WEB-INF/ftl</param-value>
 </init-param>
 <init-param>
   <param-name>DefaultEncoding</param-name>
   <param-value>UTF-8</param-value>
 </init-param>
</servlet>

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


0

0 学习 · 9666 问题

查看课程