Servlet基本_初期化パラメータ、外部ファイル
1、サーブレットの初期化パラメータ
サーブレットの初期化パラメータを利用するには、必ずweb.xmlにおいてサーブレットマッピングを指定する必要がある。
(Tomactのinvokerサーブレットは利用できない)
設定方法は、web.xmlに<servlet>要素の子要素として<init-param>要素を記述する。
初期化パラメータの読込は、javax.servlet.ServletConfigインタフェースを使用する。
上記ServletConfigオブジェクトの取得はHttpServlet.getServletConfigを使用する。
2、アプリの初期化パラメータ
設定方法は、web.xmlに<web-app>要素の子要素として<context-param>要素を記述する。
初期化パラメータの読込は、javax.servlet.ServletContextインタフェースを使用する。
上記ServletContextオブジェクトの取得はHttpServlet.getServletContextを使用する。
3、初期化パラメータのその他
パラメータを利用して一度だけ何か処理を行いたいという場合は、サーブレットのinit()が利用できる。
・public void init()
・public void init(ServletConfig config) (本メソッドは必ずsuper.init(config)を呼ぶことが必要)
最初のリクエストより先に初期化処理を行いたい場合は、web.xmlの<servlet>要素の子要素として<load-on-startup>を指定する。
これで、Webアプリ起動時に、サーブレットもロードされる(初期化される)。
指定する値は、0以上の数字で、数字が小さい方が先にロードされる。
また、一度だけの初期化処理はサーブレットのinit()の他に、ServletContextListenerを利用する方法もある。
4、物理パスの取得
Webアプリ上のファイルのパスをOS上の物理パスに変換するために、getRealPath()メソッドが用意される。
ただ、getRealPath()はうまく動作しない場合がある。
・Tomcatの場合は、通常WARは展開して動作するので問題がない
・Tomcat以外のアプリサーバにはWARを展開せずに動作するものもあり、この場合は、getRealPath()は失敗する。
5、クラスパスからファイルの読込
クラスパス上のテキストファイルの読込は、class.getResource()メソッドでURLを取得して、
URL.openStream()メソッドでファイルのストリームを開く。
或は、直接class.getResourceAsStream()でストリームを取得する。
6、プロパティファイル
Javaでは情報を「プロパティファイル」と呼ばれる、プログラムとは別のファイルにまとめておくことが推奨されている。
プロパティファイルは「.properties」という拡張子を持つファイルで、キーと値のペアを「=」または「:」で区切った形式で記述。(行頭が「#」または「!」で始まる行は、コメント行として扱われます。)
プロパティファイルの操作は、JavaのコアAPIのjava.util.Propertiesクラスを利用する。このクラスはスレッドセーフです。
7、XMLDecoderとXMLEncoder
XMLDecoder: XMLの読み取り機能である。ObjectInputStream と同様の働きも備える。
XMLEncoder: XMLファイルの書き出し機能である。ObjectOutputStream の補足的な代替クラスである
Servlet基本_初期化パラメータ、外部ファイル的更多相关文章
- Servlet基本_サーブレットのライフサイクル、スレッドセーフ
1.サーブレットのライフサイクル初期化時 ⇒ init() [初回リクエスト時] ↓リクエスト時 ⇒service() ⇒doGet() [Httpリクエストメソッドにより振り分け] 或は⇒doPos ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
- poj 1088 滑雪_记忆化搜索
题意:略 直接用记忆化搜索就行了 #include<cstdio> #include<iostream> using namespace std; int n,m; int m ...
- Servlet基本_クッキー、URLリライティング
1.クッキーの基礎クッキーは.クライアント側に保存されるテキストデータです. セキュリティ上の制約.・自分で発行したクッキーにしかアクセスできない.クッキーには発行元のホストの情報が記録されている.・ ...
- Servlet基本_セッション属性
1.概念セッション: ユーザーごとの状態を保存する仕組みです.セッションID: アプリケーションサーバから一意の識別子が割り当てられ.これをセッションIDと言う. 2.サーブレットAPIサーブレットA ...
- Servlet基本_オブジェクトのスコープ
1.スコープ種類Servletには以下のスコープがあります.Request.Session.Applicationの順にスコープは広くなっていきます.・Applicationスコープ:アプリケーション ...
- Servlet基本_画面遷移
画面遷移方法は.下記ようがある.・リクエストのディスパッチ・リダイレクト(画面から) 1.ディスパッチ1)概念サーブレットから他のリソース(サーブレット.JSP.Htmlなど)にリクエストを転送するこ ...
- [bzoj4562][Haoi2016]食物链_记忆化搜索_动态规划
食物链 bzoj-4562 Haoi-2016 题目大意:给你n个点,m条边的DAG,求所有的满足条件的链,使得每条链的起点是一个入度为0的点,中点是一条出度为0的点. 注释:$1\le n\le 1 ...
- zmud中文版_汉化补丁_汉化文件ZMUD破解
ZMUD721中文版 http://pan.baidu.com/s/1mixwIoC
随机推荐
- 初识MapReduce
MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来说,自己完完全全实现一个并行计算程序难 ...
- win7 没有权限使用网络资源
局域网下同一工作组电脑无法访问 提示"....没有权限使用网络资源...." 一.组策略 win + R 输入gpedit.msc并回车,打开本地组策略编辑器 按如下展开 计算机配 ...
- [UE4]在AIController中使用行为树
行为树会在Root根下面的每个子节点中从左右到右来回往复循环执行.
- xgboost的sklearn接口和原生接口参数详细说明及调参指点
from xgboost import XGBClassifier XGBClassifier(max_depth=3,learning_rate=0.1,n_estimators=100,silen ...
- nonlocal和global
获取变量时遵循LEGB原则,修改变量时需要global/nonlocal进行修改 global # global的使用 函数外定义了全局变量: global关键字在函数内会修改全局变量 函数外没定义全 ...
- 第15课 右值引用(2)_std::move和移动语义
1. std::move (1)std::move的原型 template<typename T> typename remove_reference<T>::type& ...
- Django之Models进阶操作(字段属性)
字段属性详细介绍 一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列, ...
- python return 返回多个值
python return 返回多个值,实际返回的是一个tuple: #!/usr/bin/env python # -*- coding: utf-8 -*- def rt(): return 1, ...
- JVM总结-字节码
在运行过程中,每当调用进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数.这个栈帧的大小是提前计算好的,而且 Java 虚拟机 ...
- 0. 前言【从零开始学Spring Boot】
[视频&交流平台] àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm ...