欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      struts2核心工作流程與原理(推薦閱讀)

      時(shí)間:2019-05-12 02:51:43下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《struts2核心工作流程與原理》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《struts2核心工作流程與原理》。

      第一篇:struts2核心工作流程與原理

      struts2核心工作流程與原理 收藏

      這是Struts2官方站點(diǎn)提供的Struts 2 的整體結(jié)構(gòu)。

      一個(gè)請求在Struts2框架中的處理大概分為以下幾個(gè)步驟: 1.客戶端提起一個(gè)(HttpServletRequest)請求,如上文在瀏覽器中輸入”http://localhost:8080/TestMvc/add.action”就是提起一個(gè)(HttpServletRequest)請求。

      2.請求被提交到一系列(主要是三層)的過濾器(Filter),如(ActionContextCleanUp、其他過濾器(SiteMesh等)、FilterDispatcher)。注意這里是有順序的,先ActionContextCleanUp,再其他過濾器(SiteMesh等)、最后到FilterDispatcher。

      3.FilterDispatcher是控制器的核心,就是mvc中c控制層的核心。下面粗略的分析下我理解的FilterDispatcher工作流程和原理:FilterDispatcher進(jìn)行初始化并啟用核心doFilter

      其代碼如下:

      1.public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)throws IOException, ServletException...{

      2.HttpServletRequest request =(HttpServletRequest)req;

      3.HttpServletResponse response =(HttpServletResponse)res;

      4.ServletContext servletContext = filterConfig.getServletContext();

      5.// 在這里處理了HttpServletRequest和HttpServletResponse。

      6.DispatcherUtils du = DispatcherUtils.getInstance();7.du.prepare(request, response);//正如這個(gè)方法名字一樣進(jìn)行l(wèi)ocale、encoding以及特殊request parameters設(shè)置

      8.try...{

      9.request = du.wrapRequest(request, servletContext);//對request進(jìn)行包裝 10.} catch(IOException e)...{

      11.String message = “Could not wrap servlet request with MultipartRequestWrapper!”;12.LOG.error(message, e);

      13.throw new ServletException(message, e);14.}

      15.ActionMapperIF mapper = ActionMapperFactory.getMapper();//得到action的mapper

      16.ActionMapping mapping = mapper.getMapping(request);// 得到action 的 mapping 17.if(mapping == null)...{

      18.// there is no action in this request, should we look for a static resource?

      19.String resourcePath = RequestUtils.getServletPath(request);

      20.if(“".equals(resourcePath)&& null!= request.getPathInfo())...{

      21.resourcePath = request.getPathInfo();22.}

      23.if(”true“.equals(Configuration.get(WebWorkConstants.WEBWORK_SERVE_STATIC_CONTENT))

      24.&& resourcePath.startsWith(”/webwork“))...{

      25.String name = resourcePath.substring(”/webwork“.length());

      26.findStaticResource(name, response);27.} else...{

      28.// this is a normal request, let it pass through 29.chain.doFilter(request, response);30.} 31.// WW did its job here 32.return;33.}

      34.Object o = null;35.try...{

      36.//setupContainer(request);

      37.o = beforeActionInvocation(request, servletContext);

      38.//整個(gè)框架最最核心的方法,下面分析

      39.du.serviceAction(request, response, servletContext, mapping);40.} finally...{

      41.afterActionInvocation(request, servletContext, o);

      42.ActionContext.setContext(null);43.} 44.}

      45.du.serviceAction(request, response, servletContext, mapping);

      46.//這個(gè)方法詢問ActionMapper是否需要調(diào)用某個(gè)Action來處理這個(gè)(request)請求,如果ActionMapper決定需要調(diào)用某個(gè)Action,F(xiàn)ilterDispatcher把請求的處理交給ActionProxy 47.48.public void serviceAction(HttpServletRequest request, HttpServletResponse response, String namespace, String actionName, Map requestMap, Map parameterMap, Map sessionMap, Map applicationMap)...{

      49.HashMap extraContext = createContextMap(requestMap, parameterMap, sessionMap, applicationMap, request, response, getServletConfig());//實(shí)例化Map請求,詢問ActionMapper是否需要調(diào)用某個(gè)Action來處理這個(gè)(request)請求

      50.extraContext.put(SERVLET_DISPATCHER, this);51.OgnlValueStack stack =(OgnlValueStack)request.getAttribute(ServletActionContext.WEBWORK_VALUESTACK_KEY);

      52.if(stack!= null)...{

      53.extraContext.put(ActionContext.VALUE_STACK,new OgnlValueStack(stack));54.} 55.try...{

      56.ActionProxy proxy = ActionProxyFactory.getFactory().createActionProxy(namespace, actionName, extraContext);

      57.//這里actionName是通過兩道getActionName解析出來的, FilterDispatcher把請求的處理交給ActionProxy,下面是ServletDispatcher的 TODO:

      58.request.setAttribute(ServletActionContext.WEBWORK_VALUESTACK_KEY, proxy.getInvocation().getStack());59.proxy.execute();

      60.//通過代理模式執(zhí)行ActionProxy 61.if(stack!= null)...{

      62.request.setAttribute(ServletActionContext.WEBWORK_VALUESTACK_KEY,stack);63.}

      64.} catch(ConfigurationException e)...{ 65.log.error(”Could not find action“, e);

      66.sendError(request, response, HttpServletResponse.SC_NOT_FOUND, e);

      67.} catch(Exception e)...{ 68.log.error(”Could not execute action“, e);

      69.sendError(request, response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);70.} 71.} 72.FilterDispatcher詢問ActionMapper是否需要調(diào)用某個(gè)Action來處理這個(gè)(request)請求,如果ActionMapper決定需要調(diào)用某個(gè)Action,F(xiàn)ilterDispatcher把請求的處理交給ActionProxy。

      4.ActionProxy通過Configuration Manager(struts.xml)詢問框架的配置文件,找到需要調(diào)用的Action類.如上文的struts.xml配置

      1.

      2. 3.

      4.

      5.

      6.

      7.class=”edisundong.AddAction“ > 8.add.jsp 9. 10. 11. 12.如果提交請求的是add.action,那么找到的Action類就是edisundong.AddAction。

      5.ActionProxy創(chuàng)建一個(gè)ActionInvocation的實(shí)例,同時(shí)ActionInvocation通過代理模式調(diào)用Action。但在調(diào)用之前ActionInvocation會根據(jù)配置加載Action相關(guān)的所有Interceptor。(Interceptor是struts2另一個(gè)核心級的概念)

      下面我們來看看ActionInvocation是如何工作的:

      ActionInvocation 是Xworks 中Action 調(diào)度的核心。而對Interceptor 的調(diào)度,也正是由ActionInvocation負(fù)責(zé)。ActionInvocation 是一個(gè)接口,而DefaultActionInvocation 則是Webwork 對ActionInvocation的默認(rèn)實(shí)現(xiàn)。

      Interceptor 的調(diào)度流程大致如下:

      1.ActionInvocation初始化時(shí),根據(jù)配置,加載Action相關(guān)的所有Interceptor。

      2.通過ActionInvocation.invoke方法調(diào)用Action實(shí)現(xiàn)時(shí),執(zhí)行Interceptor。

      Interceptor將很多功能從我們的Action中獨(dú)立出來,大量減少了我們Action的代碼,獨(dú)立出來的行為具有很好的重用性。XWork、WebWork的許多功能都是有Interceptor實(shí)現(xiàn),可以在配置文件中組裝Action用到的Interceptor,它會按照你指定的順序,在Action執(zhí)行前后運(yùn)行。那么什么是攔截器。

      攔截器就是AOP(Aspect-Oriented Programming)的一種實(shí)現(xiàn)。(AOP是指用于在某個(gè)方法或字段被訪問之前,進(jìn)行攔截然后在之前或之后加入某些操作。)

      攔截器的例子這里就不展開了。struts-default.xml文件摘取的內(nèi)容:

      1.< interceptor name =”alias“ class =”com.opensymphony.xwork2.interceptor.AliasInterceptor“ /> 2.< interceptor name =”autowiring“ class =”com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor“ />

      3.< interceptor name =”chain“ class =”com.opensymphony.xwork2.interceptor.ChainingInterceptor“ />

      4.< interceptor name =”conversionError“ class =”org.apache.struts2.interceptor.StrutsConversionErrorInterceptor“ /> 5.< interceptor name =”createSession“ class =”org.apache.struts2.interceptor.CreateSessionInterceptor“ />

      6.< interceptor name =”debugging“ class =”org.apache.struts2.interceptor.debugging.DebuggingInterceptor“ /> 7.< interceptor name =”external-ref“ class =”com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor“ />

      8.< interceptor name =”execAndWait“ class =”org.apache.struts2.interceptor.ExecuteAndWaitInterceptor“ />

      9.< interceptor name =”exception“ class =”com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor“ /> 10.< interceptor name =”fileUpload“ class =”org.apache.struts2.interceptor.FileUploadInterceptor“ />

      11.< interceptor name =”i18n“ class =”com.opensymphony.xwork2.interceptor.I18nInterceptor“ />

      12.< interceptor name =”logger“ class =”com.opensymphony.xwork2.interceptor.LoggingInterceptor“ />

      13.< interceptor name =”model-driven“ class =”com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor“ /> 14.< interceptor name =”scoped-model-driven“ class =”com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor“ /> 15.< interceptor name =”params“ class =”com.opensymphony.xwork2.interceptor.ParametersInterceptor“ />

      16.< interceptor name =”prepare“ class =”com.opensymphony.xwork2.interceptor.PrepareInterceptor“ />

      17.< interceptor name =”static-params“ class =”com.opensymphony.xwork2.interceptor.StaticParametersInterceptor“ />

      18.< interceptor name =”scope“ class =”org.apache.struts2.interceptor.ScopeInterceptor“ />

      19.< interceptor name =”servlet-config“ class =”org.apache.struts2.interceptor.ServletConfigInterceptor“ />

      20.< interceptor name =”sessionAutowiring“ class =”org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor“ />

      21.< interceptor name =”timer“ class =”com.opensymphony.xwork2.interceptor.TimerInterceptor“ />

      22.< interceptor name =”token“ class =”org.apache.struts2.interceptor.TokenInterceptor“ />

      23.< interceptor name =”token-session“ class =”org.apache.struts2.interceptor.TokenSessionStoreInterceptor“ /> 24.< interceptor name =”validation“ class =”com.opensymphony.xwork2.validator.ValidationInterceptor“ />

      25.< interceptor name =”workflow“ class =”com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor“ /> 26.< interceptor name =”store“ class =”org.apache.struts2.interceptor.MessageStoreInterceptor“ />

      27.< interceptor name =”checkbox“ class =”org.apache.struts2.interceptor.CheckboxInterceptor“ />

      28.< interceptor name =”profiling“ class =”org.apache.struts2.interceptor.ProfilingActivationInterceptor" /> 29.一旦Action執(zhí)行完畢,ActionInvocation負(fù)責(zé)根據(jù)struts.xml中的配置找到對應(yīng)的返回結(jié)果。如上文中將結(jié)構(gòu)返回“add.jsp”,但大部分時(shí)候都是返回另外一個(gè)action,那么流程又得走一遍………

      第二篇:MVC以及Struts2工作流程

      MVC是一種軟件架構(gòu)的思想,將一個(gè)軟件系統(tǒng)劃分成三種不同類型的模塊,分別是模型(model),用于封裝業(yè)務(wù)邏輯。視圖(view),提供用戶操作的接口(提供業(yè)務(wù)數(shù)據(jù)的展現(xiàn),并且,用戶也可以通過視圖來提交請求)。控制器(controller),將視圖與模型解耦,也就是說視圖要向控制器發(fā)送請求,由控制器來決定調(diào)用哪一個(gè)模型來處理,反過來,模型處理之后的結(jié)果也交給控制器,由控制器來選擇合適的視圖來展現(xiàn)。

      Model:使用java類來實(shí)現(xiàn)(也可以使用spring容器管理的javabean,ejb等)View:使用jsp Controller:使用servlet或者filter 優(yōu)點(diǎn):

      1.model可以被多個(gè)view共享,model處理之后的結(jié)果可以使用不同的界面來展現(xiàn),多種不同類型的界面,可以調(diào)用相同的model 來處理。

      2.model可以當(dāng)便測試(如,將業(yè)務(wù)邏輯寫在了servlet力需要部署servlet然后才能測試)如果也業(yè)務(wù)邏輯寫在一個(gè)java類當(dāng)中,測可以立即測試 3.方便分工合作 4.方便代碼的維護(hù) 缺點(diǎn):

      增加代碼量(相應(yīng)的開發(fā)周期要延長,并且,要相應(yīng)增大了設(shè)計(jì)的難度)。所以,一般來說,對于需要良好的可維護(hù)性且項(xiàng)目規(guī)模比較大的項(xiàng)目可以用MVC。

      Struts2框架的工作流程圖

      Struts2框架的工作流程

      1)服務(wù)器啟動(dòng),創(chuàng)建StrustsPrepareAndExecuteFilter對象,并解析struts.xml配置文件

      2)客戶端發(fā)出action請求后,控制器會調(diào)用ActionMapper(Action映射器)完成請求與Action組件之間的映射,便于調(diào)用Action處理

      3)通過ActionMapper處理后,接著調(diào)用ActionProxy(Action代理)提取請求對應(yīng)的配置文件信息,創(chuàng)建ActionInvocation(Action執(zhí)行者)對象,ActionProxy通過ConfigurationManager(配置管理器)解析和獲取struts的配置信息 4)通過ActionInvocation完成攔截器、Action和Result組件的調(diào)用 5)生成響應(yīng)信息后,為客戶端響應(yīng)

      第三篇:Struts2核心攔截器---學(xué)習(xí)筆記

      Struts2的核心——攔截器

      在struts2中,攔截器(Interceptor)是其核心的組件,當(dāng)我們訪問一個(gè)action時(shí),我們可以通過攔截器的配置,做一些需要的操作。

      我們可以寫我們自己的攔截器,但是要實(shí)現(xiàn)或繼承struts2給我們提供的接口或類。

      ①.我們實(shí)現(xiàn)Interceptor接口,該接口是struts2提供的攔截器接口,位于com.opensymphony.xwork2.interceptor包下,其提供了類似與filter的一些方法,我們必須實(shí)現(xiàn)它的方法:destroy()、init()、intercept(ActionInvocation)。

      public class MyInterceptor implements Interceptor {

      public void destroy(){

      System.out.println(“destroy”);} public void init(){ } public String intercept(ActionInvocation invocation)throws System.out.println(“init”);Exception {

      System.out.println(“intercept”);

      String resultString= invocation.invoke();System.out.println(“finish”);return resultString;}

      ②.我們可以繼承AbstractInterceptor類,該類是一個(gè)抽象類,它位于com.opensymphony.xwork2.interceptor包下,它實(shí)現(xiàn)了Interceptor接口,并完成了對destroy()方法和init()方法的實(shí)現(xiàn),但保留了抽象方法interceptor(),以供自定義的攔截器來重寫其方法,完成特定的需求。

      public class MyInterceptor1 extends AbstractInterceptor {

      } @Override

      public String intercept(ActionInvocation invocation)throws

      System.out.println(“intercept1”);

      String result=invocation.invoke();

      System.out.println(“finish1”);Exception { return result;}

      ③.上面兩個(gè)是對action進(jìn)行的攔截,粒度比較粗,當(dāng)然struts2也給我們提供了對action中方法的攔截。這時(shí),我們自己寫的類就要繼承struts

      2給我們提供的方法過濾類,該

      于MethodFilterInterceptor com.opensymphony.xwork2.interceptor包下,但該類已經(jīng)完成了對interceptor()方法的簡單實(shí)現(xiàn),而提供了一個(gè)doIntercept()方法。

      public class MyInterceptor2 extends MethodFilterInterceptor { @Override

      protected String doIntercept(ActionInvocation invocation)throws Exception {

      System.out.println(“methodFilterInterceptor2”);String result=invocation.invoke();System.out.println(“finish2”);

      return result;} }

      寫好了我們自己的攔截器類,還需要在struts.xml文件進(jìn)行配置來告訴struts2框架,我們的攔截器要攔截的action、方法。

      首先,我們要在package包下增加一個(gè)新的元素標(biāo)簽 ,在該標(biāo)簽下,我們就可以定義我們自己寫的攔截器,如:

      class=“com.test.interceptor.MyInterceptor”>

      定義了一個(gè)name是myInterceptor的攔截器(即實(shí)現(xiàn)了Interceptor接口的那個(gè)攔截器),類似的,我們定義了上面我們已寫的3個(gè)攔截器。

      name=“myInterceptor”

      class=“com.test.interceptor.MyInterceptor”>

      請注意下面代碼,我們定義了(攔截器棧),在struts2中還有攔截器棧,一個(gè)攔截器棧中可以包含多個(gè)攔截器,當(dāng)我們要在某一個(gè)action上進(jìn)行多個(gè)攔截時(shí),我們可以將其放入一個(gè)攔截器棧中,這樣在action中配置的時(shí)候,只需配置攔截器棧就可以了。

      name=“myInterceptor”>

      name=“myInterceptor1”>

      defaultStack這個(gè)攔截器棧是struts2,提供的一個(gè)默認(rèn)攔截器棧,其中實(shí)現(xiàn)了一些常用功能,如:struts2的檢驗(yàn)框架,當(dāng)我們在聲明package時(shí)候會有extends屬性,其值為struts-default,而defaultStack就定義在struts-default包類,進(jìn)而就被我們的package所繼承。

      name=“defaultStack”>

      在攔截器的配置中,我們可以為package配置一個(gè)默認(rèn)的攔截器或攔截器棧,如果我們不指定,其值就為父包繼承下來的defaultStack。

      name=“myStack”>

      /result.jsp

      /login2.jsp /login2.jsp

      /output.jsp

      /success.jsp

      /register4.jsp

      /success.jsp /register2.jsp 我們在action中,對我們寫的攔截器進(jìn)行配置,這里要注意,我們在配置自己寫的攔截器后,默認(rèn)的攔截器,就不起作用了,如果還需要struts2默認(rèn)的攔截器提供的功能,我們就要手動(dòng)配置下了。另外,在攔截器中有

      標(biāo)簽,可以對攔截器類中定義的屬性賦值,這里是告訴攔截器,只攔截abc()方法。

      abc

      第四篇:全自動(dòng)吹塑機(jī)的工作流程和原理

      全自動(dòng)吹塑機(jī)的工作流程和原理

      第一,吹塑機(jī)英語全稱BLOW MOULDING MACHINE.簡稱BMM.其基本工作原理為:向軟化的熱塑性的型坯中充氣,使其緊貼到封閉模具的冷卻表面,被吹脹的型坯凝固,形成中空塑料制品.第二,我們就從螺桿開始吧.<其他我們不說>吹塑機(jī)的螺桿.有單螺桿 雙螺桿和多螺桿因其制造的產(chǎn)品不同而不同<本人在德國KAUTEX學(xué)習(xí)時(shí)看到過十二根螺桿的吹塑機(jī)>就說說單螺桿.現(xiàn)在的螺桿大都是用電機(jī)帶動(dòng)<以前有過液壓傳動(dòng)>用變頻器控制螺桿轉(zhuǎn)速.螺桿的機(jī)筒外面有加熱線圈用來溶化塑料.有于每種塑料的溶點(diǎn)不同所以你在設(shè)計(jì)加熱線圈應(yīng)有三種溫度功能顯示.<而在電氣柜里每個(gè)加熱線圈的固態(tài)繼電器都有電流互感器以電流表的形式表示出來清楚可看>一為設(shè)定溫度如200度.二為最高允許溫度如250度,<溫度過高塑料的流動(dòng)性會加快影響產(chǎn)品質(zhì)量>到達(dá)最高溫度螺桿會自停.并報(bào)警顯示.三為最低允許溫度如160<溫度過低塑料的流動(dòng)性會很低不但會影響產(chǎn)品質(zhì)量而螺桿的剪切力會很大.對螺桿的傷害很大>到過最低溫度螺桿會自停.并報(bào)警顯示.而螺桿的溫度在最高溫度或最低溫度時(shí)電機(jī)無法起動(dòng)!

      第三,模頭.模頭分為連續(xù)式和儲料式我們就說連續(xù)式吧.模頭的主要做為一把溶化的塑料均勻的以中空的型狀擠出來以利于吹塑.二為最主要的控制型坯的壁厚以液壓的方法來控制主要是用伺服比例閥上下的移動(dòng)工作來控制??陂_口大小從而控制型坯的壁厚.所以你在設(shè)計(jì)模頭控制時(shí)我有以下幾點(diǎn)意見.一在模頭液壓沒起動(dòng)時(shí).螺桿電機(jī)不可能起動(dòng).二在模頭口模完全封閉時(shí)螺桿電機(jī)也不能起動(dòng).第四,模具一般吹塑的模具大多是二半的.在工作時(shí)把從模頭擠出來的型坯合在一起然后吹塑.它的標(biāo)準(zhǔn)程序一般是這樣的:移模-合模-鎖模-加壓-吹針進(jìn)入-吹氣-排氣-泄壓-開模-移模-進(jìn)入下一個(gè)循環(huán).所以見意你在設(shè)計(jì)控制時(shí).要求你做到.移模不到位不合模,合模不到位不鎖模.鎖模不到位不加壓.加壓不到位吹針不進(jìn)入.吹針進(jìn)入不到位不吹氣.排氣時(shí)壓力不到設(shè)定泄壓值時(shí).模具不開模.開模不到位不移模.移模不到位下一個(gè)循環(huán)停止工作并報(bào)警.每一個(gè)動(dòng)作不到位都能報(bào)警并在PLC或操作面板能清楚的顯示.還有是冷卻水溫度正常.過高或過低都能顯示過高或過低時(shí)能報(bào)警并能顯示不一定要求停機(jī)?

      現(xiàn)在的吹塑機(jī)一般二臺液壓泵一為伺服液壓專用用于控制模頭主要為控制型坯的壁厚.二為吹塑機(jī)液壓系統(tǒng)用.如移模.合模等等.因?yàn)槟阒酪簤哼@東東是有各種電磁閥.液壓油缸和各種連接機(jī)構(gòu)組成一個(gè)系統(tǒng).極其繁瑣.在有于每個(gè)產(chǎn)品的生產(chǎn)和要求不同而它的生產(chǎn)工藝也會不同所以它的工作程序和要求也會不同.所以真的不好說啊!我怕誤人子弟啊.我就簡單的說一點(diǎn)吧.第一安全要放在第一位的也就是說在一個(gè)封閉的吹塑機(jī)任意打開一個(gè)門液壓泵都要停止<伺服油泵例外>只有在人工確認(rèn)復(fù)位后才能重新啟動(dòng).液壓油位都要求有傳感器低于液位時(shí)能報(bào)警并顯示.液壓油溫度傳感器常溫和過高都能顯示過高時(shí)能停機(jī).液壓在過載時(shí)以報(bào)警并停機(jī)和顯示.氣壓要求能顯示常態(tài)和過高和過低.在過高和過低能報(bào)警并顯示.并要求能用按鈕控制總進(jìn)氣.并在任意一個(gè)門打開時(shí)都能切斷總進(jìn)氣也只有在人工確認(rèn)復(fù)位后才能重新啟動(dòng).

      第五篇:簡單的struts2中英文切換的國際化開發(fā)流程

      實(shí)現(xiàn)Struts2國際化流程

      實(shí)現(xiàn)的功能效果圖:

      當(dāng)你選擇 美式英語:

      加載全局資源文件

      首先 在struts.xml 配置文件 中 配置 struts.custom.i18n.resources常量

      需要實(shí)現(xiàn)中英文切換的兩個(gè)資源文件:

      如下是把漢字 轉(zhuǎn)換 成 Unicode 編碼的 資源文件

      然后在login.jsp頁面加上如下代碼:

      以及js:

      跳轉(zhuǎn)到的action JAVA 程序國際化的關(guān)鍵類是 ResourceBundle,它有如下一個(gè)靜態(tài)方法: getBundle(String baseName,Locale locale);根據(jù)Locale 加載資源文件,而Locale就是代表一個(gè)國家/語言。不同的國家/語言環(huán)境由不用的Locale代表,baseName 為messageResource的資源文件代表不同的國家語言環(huán)境

      下載struts2核心工作流程與原理(推薦閱讀)word格式文檔
      下載struts2核心工作流程與原理(推薦閱讀).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        市場部工作職責(zé)和核心工作流程(5篇)

        中興通軌道技術(shù)公司 市場部工作職責(zé)及核心業(yè)務(wù)流程 市場部工作職責(zé)及核心業(yè)務(wù)流程 ---中興通軌道技術(shù)公司 一、市場部主要工作 1、信息搜集及分析(情報(bào)機(jī)構(gòu)) 了解行業(yè)發(fā)展......

        公司產(chǎn)品補(bǔ)貨核心工作流程

        公司產(chǎn)品補(bǔ)貨核心工作流程流程:產(chǎn)品補(bǔ)貨版本:1子流程:采購訂單的生成編號:2.1.1.3要素:應(yīng)用訂單限制地點(diǎn):總部輸入—可供貨品—建議訂貨數(shù)量—裝載規(guī)定(如最低訂貨量)輸出:最終的采購......

        Struts2中的攔截器與過濾器學(xué)習(xí)

        攔截器是在面向切面編程的就是在你的service或者一個(gè)方法,前調(diào)用一個(gè)方法,或者在方法后調(diào)用一個(gè)方法 ,比如動(dòng)態(tài)代理就是攔截器的簡單實(shí)現(xiàn),過濾器是在java web中,你傳入的request,......

        工作流程與制度

        工作流程與制度 工作流程與制度1 一、在科主任領(lǐng)導(dǎo)下,負(fù)責(zé)本科的醫(yī)療、培訓(xùn)、宣傳、講座工作。二、對病員進(jìn)行檢查、診斷、治療,開寫醫(yī)囑并檢查執(zhí)行情況,同時(shí)還要做一些必要的......

        公司分銷商訂貨管理核心工作流程

        公司分銷商訂貨管理核心工作流程流程:訂單管理版本:1子流程:送貨和開票編號:2.2.4.1要素:退貨管理地點(diǎn):總部/分部公司分銷售客戶運(yùn)作經(jīng)理會計(jì)/財(cái)務(wù)部銷售部客戶服務(wù)部管理系統(tǒng)部人......

        安全閥與溢流閥工作原理一致

        安全閥與溢流閥工作原理一致,作用均是起調(diào)壓、定壓及穩(wěn)壓,絕大多數(shù)情況下是一個(gè)東西,名稱的不同只是使用上的區(qū)別,在定量泵系統(tǒng)中作用是溢流,而在變量泵系統(tǒng)中起安全保護(hù)作用,同時(shí)......

        小學(xué)班隊(duì)工作原理與實(shí)踐

        1、小學(xué)教育的全面性體現(xiàn)在兩個(gè)方面: 教育對象的普及性、教育實(shí)施的全面性 2、小學(xué)教育的特點(diǎn):活動(dòng)性、趣味性、藝術(shù)性 。 3、現(xiàn)代小學(xué)生的時(shí)代特征:主體意識趨向,開放精神趨向......

        書記員工作原理與實(shí)務(wù)試卷

        《書記官工作原理與實(shí)務(wù)》期末試卷(2010.06) 題號一二三四五總分 得分判卷人得分一、填空題(本大題20個(gè)空,每空1分,共20分) 1.書記員是審判工作的人員,在法官指導(dǎo)下工作,書記員實(shí)行......