1. 程式人生 > >資源注射與Servlet配置初始化引數

資源注射與Servlet配置初始化引數

 在進行web開發時,我們有時候需要把一些常量資訊寫在某個配置檔案中,這樣這個常量改變的時候,只要改變配置檔案裡的值就可以了。這時候就要用到配置初始化引數:
我寫了一個簡單的例子:

<servlet>

<servlet-name>GetKey</servlet-name>

<servlet-class>cn.edu.bzu.GetKey</servlet-class>

<!-- 配置初始化引數 -->

<init-param>

<param-name>username</param-name>

<param-value>HelloWorld</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>GetKey</servlet-name>

<url-pattern>/GetKey</url-pattern>

</servlet-mapping>


上面是web.xml裡面的配置檔案。
然後,程式設計師就可以在servlet中通過getInitParameter("username");來獲取對應的值了。

在java5.0以後又針對同樣的問題進行了改進。這就有了資源注射:(示例)
servlet:

import java.io.IOException;

import javax.annotation.Resource;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")

public class ResourceInto extends HttpServlet{

private @Resource(name="uname") String uname;

public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

response.setContentType("text/html");

response.getWriter().print(uname);

}

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

this.doPost(request, response);

}

}

Web.xml配置:

<servlet>

<servlet-name>ResourceInto</servlet-name>

<servlet-class>cn.edu.bzu.ResourceInto</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>ResourceInto</servlet-name>

<url-pattern>/ResourceInto</url-pattern>

</servlet-mapping>

<!--配置注射的資源 -->

<env-entry>

<env-entry-name>uname</env-entry-name>

<env-entry-type>java.lang.String</env-entry-type>

<env-entry-value>TOM</env-entry-value>

</env-entry>


程式執行結果:

這樣就省去了程式設計師再呼叫getInitParameter()方法獲得值這一步了。程式設計師可以直接當做一個已經賦值的變數來使用。

相關推薦

資源注射Servlet配置初始引數

 在進行web開發時,我們有時候需要把一些常量資訊寫在某個配置檔案中,這樣這個常量改變的時候,只要改變配置檔案裡的值就可以了。這時候就要用到配置初始化引數: 我寫了一個簡單的例子: <servlet> <servlet-name>GetKey<

Servlet初始引數(ServletConfig)Servlet上下文初始引數(ServletContext)區別

首先,這兩個都叫做初始化引數,只不過servlet初始化引數才在DD配置中包含“init”一詞。 上下文初始化引數:   在<web-app>元素中,但不在具體的<servlet&g

Servlet初始引數和上下文引數配置

在Java Web開發中。常量資訊通常傾向於寫在配置檔案中。這樣需求變化時只需要修改一下配置檔案就可以了。而不用大量的改動程式碼並造成程式的重新編譯。web.xml提供了這種配置初始化引數的功能。 <servlet>     <servlet-name

Servlet:獲取初始引數

    今天我們來看一下如何獲取Servlet的初始化引數。首先在web.xml檔案中進行引數的初始化,利用標籤<init-param>,<param-name>,<par

Servlet --啟動時建立、配置url、ServlectContext、初始引數、獲取資源

servlet的版本的區別   2.5版本, Servlet的配置只支援在xml檔案中的配置   3.0版本: Servlet的配置支援在xml檔案中的配置, 也可以使用註解的方式, 預設使用註解 讓伺服器在啟動時就建立Servlet 預設情況下,伺服器會在某個Servlet第一次收

servlet 配置資訊及初始引數

Servlet取得初始化配置資訊: 通過config物件可以讀取web.xml中的配置的初始化引數,此物件實際上是ServletConfig藉口的例項。可以通過init()方法找到ServletConfig介面例項。 讀取初始化配置資訊------InitParamServlet.Java pac

在過濾器中獲取在web.xml配置初始引數

在過濾器中獲取在web.xml配置的初始化引數       例如 <filter>        <filter-name>cross-origin</filter-n

初學 Java Web(四) ServletConfig介面獲取Servlet初始引數

通過重寫public void init(ServletConfig config)函式,實現獲取Servlet初始化的引數,並從控制檯輸出。Servlet1.javaimport java.io.IOException; import javax.servlet.Servl

如何通過Servlet獲取定義在web.xml中的初始引數

先理一理大致的流程,我們的目的是客戶端通過jsp頁面請求web.xml中的資料。 首先,我們得在web.xml中定義初始化資料吧,不然使用者就要請求空資料了。 那麼,說到web.xml,究竟是個什麼玩意呢?我也不是很清楚,也沒怎麼了解。 我只知道它是一個和

獲取servlet初始引數

package cn.itcast.web.servlet; import java.io.IOException; import java.util.Enumeration; import jav

web.xml中的初始引數(init-param)上下文引數(context-param)

servlet的初始化引數:<init-param> web.xml中配置servlet的時候,標籤<servlet>中可以包含標籤<inti-param>來配置初始化引數。一個Servlet可以配置一個或多個初始化引數。        

有關Servlet初始引數的獲取方法

昨天做了一道有關servlet的面試題,題目如下: Servlet ServletContext ServletConfig(正確答案) GenericServlet 我當時選的是第二個ServletContext,後面查閱資料大致弄明白了,這裡記錄

Java for Web學習筆記(七):Servlet(5)初始引數

Context Init引數 在web.xml中可以基於整個上下文進行設定,在web app內各個Servlet都可以獲取。 <context-param> <param-name>settingOne</param-name> <param-

Servlet的ServletConfig物件獲取初始引數

Servlet: import java.io.IOException; import java.util.Enumeration; import javax.servlet.ServletConfig; import javax.servlet.ServletExcept

接口初始順序

類與接口初始化順序一.類初始化順序:(Super的靜態變量和Super的靜態塊)->(Sub的靜態塊和Sub的靜態變量)->(Super的實例變量和Super的普通塊)->Super的構造器->(Sub的實例變量和Sub的普通塊)->Sub的構造器括號中的順序是與在類中的書寫順序

Web開發中Listener、Filter、Servlet初始及調用

children tomcat啟動 什麽 lis exceptio try 部分 OS findchild 我們在使用Spring+SpringMVC開發項目中,web.xml中一般的配置如下: 1 <?xml version="1.0" encoding=

Java類對象初始的過程(一道經典的面試題)

java語法 ade 還要 body image LV 賦值 準備 new t 本文不再以ClassLoader的視角解釋這些問題。 首先,Java代碼有個特點,就是成員變量可以在前面的方法中使用,在後面定義。這一特性,很多人說Java了不起,可是為什麽呢?Java為何能夠

從以下哪一個選項中可以獲得Servlet初始參數。

fig ini 一個 con 初始 generics etc servle 生命 從以下哪一個選項中可以獲得Servlet的初始化參數。 A.Servlet B.ServletContext C.ServletConfig D.GenericServlet

初始引數(Initialization Parameter)知識合集 based on 11g

初始化引數檔案分為: 1)pfile 靜態引數檔案 2)spfile 動態伺服器引數檔案 作用:儲存建立例項、啟動後臺程序所需引數值。 呼叫:例項啟動時,按如下順序調取初始化引數檔案 linux: $ORACLE_HOME/dbs/spfile<SID>.ora $ORACLE

oracle中有關初始引數檔案的幾個檢視對比

涉及oracle中有關初始化引數檔案的幾個檢視主要有:v$paraemter,v$parameter2,v$system_parameter,v$system_parameter2,v$spparameter 主要區別如下: 一、涉及內容比較 v$paraemter,v$parameter2檢視主要是查