ActionServlet的初始化過程

 一:介紹在tomcat的啟動過程中,tomcat會讀取/WEB-INF/web.xml檔案中的配置資訊進行一些初始化的工作,而Struts的啟動工作就從這裡開始.在web.xml檔案中有如下的配置資訊:<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class&

Struts處理請求全過程

一次請求的流程一:接受請求    1.以.do結尾的URL被ActionServlet攔截,執行service方法    2.根據請求傳遞的方法GET/POST選擇執行doGet()或doPost()方法    3.在doGet()/doPost()方法中,調用process()方法二:process()方法1. 選擇模組   ModuleUtils.getInstance().selectModule(request, getServletContext())  

Struts2源碼閱讀(二)_ActionContext及CleanUP Filter

1. ActionContext ActionContext是被存放在當前線程中的,擷取ActionContext也是從ThreadLocal中擷取的。所以在執行攔截器、 action和result的過程中,由於他們都是在一個線程中按照順序執行的,所以可以可以在任意時候在ThreadLocal中擷取 ActionContext。ActionContext包括了很多資訊,比如Session、Application、Request、Locale、ValueStack等,其中

Ext做的Form提交驗證例子

 主要代碼:          Ext.onReady(function(){ Ext.QuickTips.init();//支援tips提示Ext.form.Field.prototype.msgTarget='under';//提示的方式,枚舉值為"qtip","title","under","side",id(元素id)//先用Ext.apply方法添加自訂的password驗證函式(也可以取其他的名字)Ext.apply(Ext.form.VTypes,{   

堆(heap)與棧(stack)的區別

一、預備知識—程式的記憶體配置一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。2、堆區(heap) — 一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鏈表,呵呵。3、全域區(靜態區)(static)—,全域變數和靜態變數的儲存是放在一塊的,初始化的全域變數和靜態變數在一塊地區,

Struts2源碼閱讀(三)_Dispatcher&ConfigurationProvider

首先強調一下struts2的線程程安全,在Struts2中大量採用ThreadLocal線程局部變數的方法來保證線程的安全,像Dispatcher等都是通過ThreadLocal來儲存變數值,使得每個線程都有自己獨立的執行個體變數,互不相干. 接下來就從Dispatcher開始看起,先看其建構函式://建立Dispatcher,此類是一個Delegate,它是真正完成根據url解析轉向,讀取對應Action的地方 public Dispatcher(ServletContext

JMS入門(一)–JMS基礎

1. JMS基本概念    JMS(Java Message Service) 即JavaMessage Service。它提供標準的產生、發送、接收訊息的介面,簡化公司專屬應用程式的開發。它支援兩種訊息通訊模型:點到點(point-to-point)(P2P)模型和發布/訂閱(Pub/Sub)模型。P2P 模型規定了一個訊息只能有一個接收者;Pub/Sub 模型允許一個訊息可以有多個接收者。   

Struts2源碼閱讀(四)_Dispatcher&ConfigurationProvider續

接下來第三步:init_LegacyStrutsProperties()調用的是調用的是LegacyPropertiesConfigurationProvider通過比較前面DefaultPropertiesProvider與調用的是LegacyPropertiesConfigurationProvider.發現DefaultPropertiesProvider繼承自後者,但重寫了register()方法,主要是產生PropertiesSetting的不同,前者是根據org/apache/str

基於struts 的FormFile實現檔案的上傳功能

 第一步:首先建個上傳檔案的簡單的介面,代碼如下:檔案名稱(FileUpload.jsp)<%@ page language="java" contentType="text/html; charset=UTF-8"%><html><head><meta http-equiv="Content-Type" content="text/html;

JMS入門(三)–Queue的使用

Queue實現的是點到點模型,一個點對點 (PTP) 的產品或者應用是基於訊息佇列、寄件者和接收者的概念來構建的。每個訊息被定為到一個特定的隊列,接收者從隊列中提取發送給它的訊息,隊列將保留所有的訊息直到訊息被取走或者到期。1)每個訊息只有唯一一個接收者(消費者)2)訊息的寄件者和接收者沒有時間上的依賴,接收者可在訊息到期前的任意時間內去擷取訊息,而不一定得寄件者是線上的3)接收者需要確認成功的處理了訊息在下面的例子中,啟動2個消費者共同監聽一個Queue,然後迴圈給這個Queue中發送多個訊息

基於struts 的實現檔案的下載和刪除功能

 第一步:先建立檔案下載和刪除的檔案,代碼如下:(FileDownLoad.jsp)<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*,java.io.*,com.form.*"%><html><head><meta http-equiv="Content-Type"

JMS入門(四)–Topic的使用

與Queue不同的是,Topic實現的是發布/訂閱模型,在一個基於發布/訂閱模型的應用或者產品中,用戶端根據主題來訂閱訊息,有點像公告牌。發行者和訂閱者一般都是匿名的,而且可以動態發布或者訂閱內容。訊息系統會謹慎處理訊息的分發到訂閱了某個主題的所有訂閱者,訊息只會發送給當前訂閱者,然後就失效,新的訂閱者無法接收到剛剛失效的訊息。發布和訂閱的訊息機制具有以下特徵:1)每個訊息可以有多個消費者2)發行者和訂閱者是有時間依賴,只有當前訂閱了某個主題的訂閱者才能收到訊息,訂閱者必須保持活躍以擷取訊息3)

myeclipse自動提示資訊設定

 一、Eclipse ,MyEclipse代碼裡面的代碼提示功能預設的一般是點“.”,一般是有了點“.”,才會有代碼提示。  原理:“Auto Activation triggers for java”這個選項就是指觸發代碼提示的的選項,把“.”

win7 無法以管理員身份運行

 win7 無法以管理員身份運行      安裝了Windows7沒幾天,忽然發現在捷徑上“以管理員身份運行”沒反應。      而在可執行檔上,卻能正常工作。Google了一把,發現網上也有這類問題,但大多現象有些差別,解決方案是修改註冊表。我試了一下,不行。      後來在一個頁面上,有人說安裝“米人”後,就不能“以管理員身份運行了”。而我也安裝了米人下載工具。卸載掉以後,再在捷徑上“以管理員身份運行”就正常了。        :》  因為安裝了很多程式,所以開始-》程式中並沒有發現米人 

JMS入門(五)–訊息頭

一個訊息對象分為三部分:訊息頭(Headers),屬性(Properties)和訊息體(Payload)。對於StreamMessage和MapMessage,訊息本身就有特定的結構,而對於TextMessage,ObjectMessage和BytesMessage是無結構的。一個訊息可以包含一些重要的資料或者僅僅是一個事件的通知。    訊息的Headers部分通常包含一些訊息的描述資訊,它們都是標準的描述資訊。包含下面一些值:  1)JMSDestination      

struts 的digester類解析xml檔案

學習struts 的digester類解析xml檔案 1、digester的簡介   

JMS入門(六)–DeliveryMode

1.在下面的例子中,分別發送一個Persistent和nonpersistent的訊息,然後關閉退出JMS。發送端代碼如下:/** * @author Administrator * @description 分別發送一個Persistent和nonpersistent的訊息,然後關閉退出JMS * 運行這個程式,當輸出“Send messages sucessfully!”時,說明兩個訊息都已經發送成功,然後我們結束它,來停止JMS Provider。 */package

Struts2源碼閱讀(五)_FilterDispatcher核心控制器

Dispatcher已經在之前講過,這就好辦了。FilterDispatcher是Struts2的核心控制器,首先看一下init()方法。public void init(FilterConfig filterConfig) throws ServletException { try { this.filterConfig = filterConfig; initLogging(); //建立dispatcher,前面都已經講過囉

JMS入門(七)—JMSReplyTo

在下面的例子中,首先建立兩個Queue,寄件者給一個Queue發送,接收者接收到訊息之後給另一個Queue回複一個Message,然後再建立一個消費者來接受所回複的訊息。/** * @author Administrator * @description:首先建立兩個Queue,寄件者給一個Queue發送,接收者接收到訊息之後給另一個Queue回複一個Message,然後再建立一個消費者來接受所回複的訊息 */package com.wl.jms;import

if (log.isDebugEnabled()) {}使用情境初析

一:問題:在使用log4j,common-log這樣的log架構時,發現很多代碼中這樣寫 if   (log.isDebugEnabled())   {           log.debug( "xxxx "); } 我很奇怪,為什麼要與log.isDebugEnabled()?既然log.debug()在沒有指定輸出層級為DEBUG時不會有輸出,為什麼還要在前面加一個isDebugEnabled()的判斷?為了效率,如果上述那個代碼那麼簡單是沒有必要的但是如果這樣if

總頁數: 61357 1 .... 20772 20773 20774 20775 20776 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.