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
随机推荐
- 用IntelliJ的IDEA来创建SpringBoot框架
要安装ULTIMATE版本,并导入key http://idea.iteblog.com/key.php 安装完成后 1:首先打开New Project 2:选择Spring Initializr 这 ...
- github_地址
网络请求: hongyangAndroid/okhttputils(包含cookie的管理): 图片之压缩: Sunzxyong/Tiny:(http://www.tuicool.com/articl ...
- [UE4]控制台命令,生成机器人
在关卡蓝图中: 运行游戏的手,按“·”键(键盘第二行第一个键,数字1前面的一个键)呼出控制台输入界面,输入“ce 事件名称 参数值”,然后回车. 可以添加一个Trigger Box作为机器人的出生点
- [UE4]在AIController中使用行为树
行为树会在Root根下面的每个子节点中从左右到右来回往复循环执行.
- Python首次安装后运行报错(0xc000007b)的解决方法
最近在安装完Python后运行发现居然报错了,错误代码是0xc000007b,于是通过往上查找发现是因为首次安装Python缺乏VC++库的原因,下面通过这篇文章看看如何解决这个问题吧. 错误提示 ...
- crm SDK 设置用户的上级
/// <summary> /// 设置用户的上级 /// </summary> /// <param name="service">服务< ...
- crm 2016 tabstatechange event
1 tabstatechange事件在窗体中定义 2 问题是如果选项卡默认为折叠的.且选项卡中包含了iFrame网页. 3 在网页内容加载完成之后,点击选项卡 折叠/展开 按钮, iFrame网页没有 ...
- WebBrowser常用属性方法介绍
WebBrowser 常用属性方法 ■■方法 ============================== ▲GoBack 相当于IE的"后退"按钮,使你在当前历史列表中后 ...
- lua开发
1:安装luaBridge git地址 https://github.com/vinniefalco/LuaBridge.git 2:编写程序 #include <lua.hpp> #in ...
- Android Studio快捷键Ctrl+Shift+F不能用,全局搜索不能用;
AS全局搜索Ctrl+Shift+F突然就不能用了,在AS找半天没有找到问题,原因竟然是和搜狗输入法的简繁切换冲突了:下面有图把简繁切换关闭或更换快捷键后,as的全局搜索就能用了: