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
随机推荐
- C++根据传入的函数指针来解析需要的参数
C++可以根据传入的函数指针,获取自己需要的参数类型,然后根据参数源中获取需要的参数,这里我用tuple作为演示,不过,只要可以根据序号,或者顺序方式等获取实参,都可以使用类似的方式实现: 先给出一个 ...
- 高可用hadoop的hdfs启动的时候namenode启动不了
启动的时候,一直要求输入namenode密码: 查看namenode的日志如下: 2019-03-28 18:38:08,961 INFO org.apache.hadoop.ipc.Client: ...
- 2012 - AD 验证域控是否成功部署
1,验证AD DS域服务:AD DS & AD WS 2,验证“默认容器”及“Domain Controller” 3,验证“Default-First-Site-Name" 4,验 ...
- echart-X轴标签文字方向
1. rotate斜体: axisLabel:{interval:0,rotate:45, margin:2, textStyle:{ color:"#222" }2. forma ...
- 2018/11/5 每日分析-test
郑醇1901,M30向上一笔中,只是看起来不太值得做,主要因为现在30分钟向上一笔空间无法判定,未必能上去(M5中枢如果向上突破并且不背驰才可能有机会:如果直接下去或者向上后背驰,那么这里就只是一个M ...
- php创建临时表
$sql= "create temporary table yc_linshi ( img varchar(100) not null, openid varchar(50) not nul ...
- python脚本参数传递
环境:python 库:optparse 效果:python xxx.py -parameter1 参数1 -parameter2 参数2 .... 废话少说,直接上代码ok? xxx.py ...
- Echarts动态加载饼状图的实例
一.引入echarts.js文件(下载页:http://echarts.baidu.com/download.html) 二.HTML代码: <div style="width: 10 ...
- python连接数据库——create_engine和conn.cursor
python操作数据库的方法: 一种是导入sqlalchemy包,另一种是导入psycopg2包. 具体用法如下(此处以postgre数据库举例) 第一种: # 导入包 from sqlalchemy ...
- vue从入门到女装??:从零开始搭建后台管理系统(二)用vue-docute生成线上文档
教程 vue从入门到女装??:从零开始搭建后台管理系统(一)安装框架 一个系统开发完成了总要有操作说明手册,接口文档之类的东西吧?这种要全部纯手写就很麻烦了,可以借助一些插件,比如: vue-docu ...