《学习内容》:
//========学习内容=========
实现了万国码代码
《知识点—笔记》
//=========================
String header = request.getHeader(“协议头的key”)可以获取协议头的信息
Accept-Language 浏览器语言的信息头
Thread.currentThread().getContextClassLoader().getResourceAsStream(“文件地址”)可以获取到类加载的文件流
返回值是InputStream
《代码内容》:
主要思路—->通过协议头的key—Accept-Language来获取当当前浏览器的语言配置,然后我们在src下创建两个文件,一个是中文的文件,一个是英文的,并在括号内写好是zh-CN还是en,然后在jsp中解析协议头的信息,拿到第一个语言,然后拼接去找这两个其中一个文件,读取文件后,将读取到对应的value拼接到要万国码的地方,响应回浏览器
I18n
<%@ page import="java.util.Properties" %>
<%@ page import="java.lang.ref.PhantomReference" %>
<%@ page import="java.io.InputStreamReader" %>
<%@ page import="java.io.InputStream" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%
request.setCharacterEncoding("UTF-8");
String header = request.getHeader("Accept-Language");
String language = header.split(",")[0].split(";")[0];
Properties properties = new Properties();
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("font(" + language + ").properties");
properties.load(new InputStreamReader(inputStream));
String username = properties.getProperty("username");
System.out.println(username);
String passsword = properties.getProperty("password");
System.out.println(passsword);
String login = properties.getProperty("login");
System.out.println(login);
%>
<body>
<form action="regist" method="post">
<%=username%> <input type="text" name="username" value="">
<%=passsword%><input type="password" name="password" value="">
<input type="submit" value="<%=login%>">
</form>
</body>
</html>
en文件
username=username
password=password
login=login
zh-CN文件
username=账号
password=密码
login=登录
学习总结:
学懂的:
可以通过获取协议头来去处理他的显示信息,学到了这其中的思想,尤其是中间拼接字符串的时候把语言拼进去,之前是想不到这种
拼接方式的。
有问题的地方:
在获取线程然后获取输入流那一块有点搞不清楚。
**