JavaWeb的国际化(17/4/8)
国际化的缺点:
因为文字不同,所以带来的排版问题一样严重,通常都是重新在写一个网站反而更加清晰,快捷
1:需要从浏览器中获取到浏览器语言(Accept—Language)
2:利用locale获取
3:加载配置文件(配置文件写在src目录下,且命名需要规范化——res_zh_CN.properties)
4:Java类源码

1 import java.util.Locale;
2 import java.util.ResourceBundle;
3
4
5 import org.junit.Test;
6
7
8 /**
9 * 我们现在写两个配置文件,一个文件中存放中文信息,另一个存放英文信息
10 * 我们使用一个类,来通过语言环境,最终识别加载哪一个文件的信息:ResourceBundle
11 * 什么语言环境:Locale
12 * > zh_CN
13 * > en_US
14 * new Locale("zh", "CN");
15 * Locale.getDefault();
16 * Locale.US
17 *
18 * 资源文件名称的格式:基本名称+Locale部份+.properties
19 * 例如:res_zh_CN.properties,其中基本名称为res,而zh_CN是Locale部份
20 * 必须所有的资源文件基石名称要相同!不同之处就是Locale部件
21 */
22 public class Demo1 {
23 @Test
24 public void fun1() {
25 Locale locale = Locale.US;
26 // 得到ResourceBundle
27 // 第一个参数是:基本名称
28 // 第二个参数是:Locale
29 ResourceBundle rb = ResourceBundle.getBundle("res", locale);
30 // 使用ResourceBundle来获取资源信息
31 System.out.println(rb.getString("username"));
32 System.out.println(rb.getString("password"));
33 System.out.println(rb.getString("login"));
34 }
35 }
36 5:jsp源码
37 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
38 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
39 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
40 <html>
41 <head>
42 <title>My JSP 'login.jsp' starting page</title>
43 <meta http-equiv="pragma" content="no-cache">
44 <meta http-equiv="cache-control" content="no-cache">
45 <meta http-equiv="expires" content="0">
46 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
47 <meta http-equiv="description" content="This is my page">
48 <!--
49 <link rel="stylesheet" type="text/css" href="styles.css">
50 -->
51 </head>
52 <body>
53 <%--
54 把与语言相关的所有字符串都写成变量!!!
55 --%>
56 <%
57 /*
58 1. 获取Locale,这是由客户端的浏览器提供的Locale
59 2. 创建ResourceBundle
60 3. 把所有的语言信息使用rb.getString("xxx")来替换!
61 */
62 Locale locale = request.getLocale();
63 ResourceBundle rb = ResourceBundle.getBundle("res", locale);
64 %>
65 <h1><%=rb.getString("login") %></h1>
66 <form action="" method="post">
67 <%=rb.getString("username") %>:<input type="text" name="username"/><br/>
68 <%=rb.getString("password") %>:<input type="password" name="password"/><br/>
69 <input type="submit" value="<%=rb.getString("login") %>"/>
70 </form>
71 </body>
72 </html>
JavaWeb的国际化(17/4/8)的更多相关文章
- Javaweb之国际化
Javaweb之国际化 一.前言 软件的本地化:一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯. 软件的国际化:软件开发时,让它能支持多个国家和地区的本地化应用.使得应 ...
- 深入分析JavaWeb Item22 -- 国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同一时候应对世界不同地区和国家的訪问,并针对不同地区和国家的訪问.提供对应的.符合来訪者阅读习惯的页面或数据. 国际化(international ...
- JavaWeb的国际化
国际化 1.国际化开发概述 1.1.软件的国际化 软件开发时,要使它能同时应对世界不同地区和国家的方法,并针对不同地区和国家的方法,提供相应的,符合来访者阅读习惯的页面或数据 国际化简称:i18n : ...
- JavaWEB开发国际化
1.国际化开发概述 )软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. )国际化又称为 i18n:inter ...
- JavaSE之概述
作此篇是鉴于个人Java学习之需要,也便于日后进一步归纳与复习. 规定: 1 Java全面概述[囊括 Java工作原理,JVM方面知识,关键字(final,static,public,pr ...
- Javaweb学习笔记——(二十)——————Javaweb监听器、国际化
Javaweb监听器 三大组件 *Servlet *Listener *Filter Listener:监听器 1.初次相见:A ...
- javaweb(三十一)——国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- javaweb基础(31)_国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- javaweb学习总结(三十一)——国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
随机推荐
- 1342: [Baltic2007]Sound静音问题
1342: [Baltic2007]Sound静音问题 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 710 Solved: 307[Submit][ ...
- JavaScript零基础入门
为什么学习JavaScript 1. 所有主流浏览器都支持JavaScript. 2. 目前,全世界大部分网页都使用JavaScript. 3. 它可以让网页呈现各种动态效果. 易学性 1.学习环境无 ...
- Spring 容器可以在自动装配相互协作的 bean 之间的关系,使用autowire属性定义指定自动装配模式。
使用setter方法java public class TextEditor { private SpellChecker spellChecker; public void setSpellChec ...
- mac下常用软件整理
1.非常好用的压缩管理软件(免费版):RAR Extrator Free 解压的中文不会产生乱码: 2.记笔记用的:有道笔记.Evernote 3.SVN管理软件:ConerStone 4.非常给力 ...
- 读书笔记 effective c++ Item 34 区分接口继承和实现继承
看上去最为简单的(public)继承的概念由两个单独部分组成:函数接口的继承和函数模板继承.这两种继承之间的区别同本书介绍部分讨论的函数声明和函数定义之间的区别完全对应. 1. 类函数的三种实现 作为 ...
- 搭建高可用mongo集群3.4版本
搭建高可用mongo集群3.4版本 说在开始之前:在搭建这个环境之前,已经有了一个师兄搭好的环境,虽然一样很棒,但是没有经过自己的手出来的东西,还是不属于自己,所以摸索着自己搭建一个吧,好巧不巧的是, ...
- 关于Trie KMP AC自动机
个人认为trie,KMP,AC自动机是思想非常明确的,AC自动机的性质是与KMP算法的思想类似的(失配后跳转) 而KMP是线性的,AC自动机是在tire树上跑KMP,为方便那些不会用指针的小朋友(我也 ...
- 一次SocketException:Connection reset 异常排查
问题描述 上一期的需求上线之后,线上多了一个异常:Connection reset.如下: [2017-03-22 00:45:00 ERROR] [creativeAuditTaskSchedule ...
- Android Weekly Notes Issue #250
Android Weekly Issue #250 March 26th, 2017 Android Weekly Issue #250. 本期内容: 好几篇关于Android O预览版的文章; JU ...
- mybatis generator 插件安装及使用
现在Mybatis特别火,但是在开发中却要经常写实体类和配置文件,会不会特别烦人,所以可以利用Mybatis的代码生成插件来生成这部分代码: 1,打开eclipse,点击Help>Softwar ...