《学习内容》:

    //========学习内容=========
    实现了万国码代码

    《知识点—笔记》
    //=========================
    String header = request.getHeader(“协议头的key”)可以获取协议头的信息
    Accept-Language 浏览器语言的信息头
    Thread.currentThread().getContextClassLoader().getResourceAsStream(“文件地址”)可以获取到类加载的文件流
    返回值是InputStream

    《代码内容》:

    主要思路—->通过协议头的key—Accept-Language来获取当当前浏览器的语言配置,然后我们在src下创建两个文件,一个是中文的文件,一个是英文的,并在括号内写好是zh-CN还是en,然后在jsp中解析协议头的信息,拿到第一个语言,然后拼接去找这两个其中一个文件,读取文件后,将读取到对应的value拼接到要万国码的地方,响应回浏览器

    I18n

    1. <%@ page import="java.util.Properties" %>
    2. <%@ page import="java.lang.ref.PhantomReference" %>
    3. <%@ page import="java.io.InputStreamReader" %>
    4. <%@ page import="java.io.InputStream" %>
    5. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    6. <html>
    7. <%
    8. request.setCharacterEncoding("UTF-8");
    9. String header = request.getHeader("Accept-Language");
    10. String language = header.split(",")[0].split(";")[0];
    11. Properties properties = new Properties();
    12. InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("font(" + language + ").properties");
    13. properties.load(new InputStreamReader(inputStream));
    14. String username = properties.getProperty("username");
    15. System.out.println(username);
    16. String passsword = properties.getProperty("password");
    17. System.out.println(passsword);
    18. String login = properties.getProperty("login");
    19. System.out.println(login);
    20. %>
    21. <body>
    22. <form action="regist" method="post">
    23. <%=username%> <input type="text" name="username" value="">
    24. <%=passsword%><input type="password" name="password" value="">
    25. <input type="submit" value="<%=login%>">
    26. </form>
    27. </body>
    28. </html>

    en文件

    1. username=username
    2. password=password
    3. login=login

    zh-CN文件

    1. username=账号
    2. password=密码
    3. login=登录

    学习总结:
    学懂的:
    可以通过获取协议头来去处理他的显示信息,学到了这其中的思想,尤其是中间拼接字符串的时候把语言拼进去,之前是想不到这种
    拼接方式的。
    有问题的地方:
    在获取线程然后获取输入流那一块有点搞不清楚。
    **