亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

Struts1之url截取_動力節點Java學院整理

2024-09-05 00:23:22
字體:
來源:轉載
供稿:網友

Struts1之url截取

先我們來對ActionServlet深層次進行分析。我們用斷點的調試的方式來看底層源碼。因為這個實例是post方式提交,所以將斷點設置到doPost方法上。


 url截取,Struct

      我們debug運行程序,進入doPost里面的方法: 

url截取,Struct

        這個方法非常重要是ActionServlet運行的核心方法。

        我們進入這個方法:

    url截取,Struct

       再繼續進入:


url截取,Struct

      我們赫然發現了這樣一個方法就是processPath方法,這個方法就是截取字符串的方法。這個方法的源代碼如下:

/**   * <p>Identify and return the path component(from the request URI) that   * we will use to select an <code>ActionMapping</code> with which todispatch.   * If no such path can be identified,create an error response and return   * <code>null</code>.</p>   *   * @param request The servlet request weare processing   * @param response The servlet response weare creating   *   * @exception IOException if an input/outputerror occurs   */  protectedString processPath(HttpServletRequest request,         HttpServletResponse response)   throws IOException {    String path = null;    // For prefix matching, match on the path info (if any)   path = (String) request.getAttribute(INCLUDE_PATH_INFO);   if (path == null) {    path = request.getPathInfo();   }   if ((path != null) && (path.length() > 0)) {    return (path);   }    // For extension matching, strip the module prefix and extension   path = (String) request.getAttribute(INCLUDE_SERVLET_PATH);   if (path == null) {    path = request.getServletPath();   }   String prefix = moduleConfig.getPrefix();   if (!path.startsWith(prefix)) {    String msg =getInternal().getMessage("processPath");        log.error(msg + " " + request.getRequestURI());    response.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);     return null;   }      path = path.substring(prefix.length());   int slash = path.lastIndexOf("/");   int period = path.lastIndexOf(".");   if ((period >= 0) && (period >slash)) {    path = path.substring(0, period);   }   return (path);  } 

分析一下這段代碼: 

path = (String)request.getAttribute(INCLUDE_PATH_INFO);   if (path == null) {    path = request.getPathInfo();   }   if ((path != null) && (path.length() > 0)) {    return (path);   } 

這段代碼首先判斷一下javax.servlet.include.path_info是否存在路徑信息,這里要知道當當一個頁面是以RequestDispatcher.include方式顯示的話,這個屬性值才存在。所以這里沒有值,就會進入path=request.getPathInfo()程序中,這里的getPathInfo獲取的值是相對servlet的路徑信息。

// For extension matching, stripthe module prefix and extension   path = (String) request.getAttribute(INCLUDE_SERVLET_PATH);   if (path == null) {    path = request.getServletPath();   }   String prefix = moduleConfig.getPrefix();   if (!path.startsWith(prefix)) {    String msg =getInternal().getMessage("processPath");        log.error(msg + " " + request.getRequestURI());    response.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);     return null;   } 

        這一段代碼是判斷javax.servlet.include.servlet_path是否存在值,這個也是當一個頁面是以equestDispatcher.include方式顯示的話,這個屬性值才存在,所以這里的值沒有。之后進入path = request.getServletPath();這個方法是獲得返回請求URI上下文后的子串,所以這里的返回值就是“/”和訪問頁面名稱和后綴(這里和我的mvc實例截取的是不是一樣的道理)。隨后進入下面代碼:

path = path.substring(prefix.length());   intslash = path.lastIndexOf("/");   intperiod = path.lastIndexOf(".");   if((period >= 0) && (period > slash)) {    path = path.substring(0, period);   }   return (path); 

       這里的方法主要和我的上面的那里是一樣的,主要就是去掉后綴。


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人精品xxx| 91国内揄拍国内精品对白| 中文字幕亚洲激情| 久久久久久亚洲精品中文字幕| 国产成人精品最新| 国产精品91久久久| 精品福利在线观看| 成人福利在线观看| 日韩久久免费视频| 欧美日韩亚洲激情| 欧美成人免费va影院高清| 久久综合网hezyo| 欧美日韩裸体免费视频| 久久久黄色av| 国产精品免费视频xxxx| 亚洲精品一区中文字幕乱码| 成人在线激情视频| 国产人妖伪娘一区91| 亚洲精品一区二区三区婷婷月| 最新日韩中文字幕| 成人激情av在线| 69**夜色精品国产69乱| 91最新国产视频| 国产亚洲免费的视频看| 国产精品美女视频网站| 亚洲一级片在线看| 97人人爽人人喊人人模波多| 亚洲国产毛片完整版| 亚洲国产黄色片| 久久亚洲精品网站| 亚洲欧美国产高清va在线播| 亚洲第一页在线| 国产一区二区三区直播精品电影| 精品在线欧美视频| 国产精品日日做人人爱| 亚洲精品综合久久中文字幕| 国产噜噜噜噜久久久久久久久| 亚洲欧美日韩精品久久亚洲区| 亚洲午夜av久久乱码| 久久91亚洲精品中文字幕奶水| 日韩资源在线观看| 夜夜嗨av一区二区三区免费区| 韩国v欧美v日本v亚洲| 欧美大片在线免费观看| 狠狠躁夜夜躁人人爽超碰91| 综合国产在线视频| 日韩高清电影好看的电视剧电影| 国产丝袜一区二区| 日韩精品视频三区| 日韩免费观看在线观看| 欧美一区在线直播| 精品无人区乱码1区2区3区在线| 97视频免费在线观看| 久久免费精品日本久久中文字幕| 国产精品视频自在线| 北条麻妃一区二区在线观看| 国产精品88a∨| 欧美裸体xxxxx| 国产欧美精品xxxx另类| 精品亚洲va在线va天堂资源站| 成人久久18免费网站图片| 国产亚洲精品久久久久久牛牛| 97国产精品久久| 午夜精品国产精品大乳美女| 成人免费直播live| 欧美一区二区三区免费观看| 亚洲综合中文字幕68页| 麻豆一区二区在线观看| 尤物yw午夜国产精品视频明星| 91精品国产高清久久久久久久久| 久久精品亚洲国产| 亚洲一区二区三区xxx视频| 欧美福利视频网站| 久久久亚洲精品视频| 九色成人免费视频| 国产成人亚洲综合91| 亚洲精品黄网在线观看| 日韩av日韩在线观看| 国产精品va在线播放| 77777亚洲午夜久久多人| 国产亚洲欧美日韩一区二区| 国产精品福利无圣光在线一区| 日韩高清欧美高清| 久久久免费观看视频| 国产亚洲一区二区精品| 日韩电影视频免费| 国产精品91在线| 日韩高清有码在线| 国产成人aa精品一区在线播放| 亚洲乱码一区av黑人高潮| 国产99久久精品一区二区 夜夜躁日日躁| 宅男66日本亚洲欧美视频| 成人黄色生活片| 91免费看视频.| 精品国产一区二区三区四区在线观看| 欧美性猛交xxxx免费看久久久| 海角国产乱辈乱精品视频| 91中文精品字幕在线视频| 日韩精品日韩在线观看| 日韩电视剧在线观看免费网站| 亚洲第一偷拍网| 欧美亚洲午夜视频在线观看| 一本色道久久综合亚洲精品小说| 欧美大成色www永久网站婷| 亚洲社区在线观看| 5566日本婷婷色中文字幕97| 欧美性一区二区三区| 国内精品久久影院| 欧美大胆在线视频| 久久久久久久久久国产精品| 久久久999成人| 欧美在线视频一区| 欧日韩不卡在线视频| 日本久久久久久久久久久| 欧美视频在线视频| 亚洲欧美激情另类校园| 久久激情视频免费观看| 亚洲欧洲视频在线| 欧美精品videosex性欧美| 色综合久久88| 国产精品男人的天堂| 九九九久久国产免费| 国产视频精品va久久久久久| 久久噜噜噜精品国产亚洲综合| 亚洲第一区在线| 中文字幕在线看视频国产欧美在线看完整| 久久黄色av网站| 国产精品久久久久久久久久久久| 韩国一区二区电影| 日本欧美一二三区| 69视频在线免费观看| 在线观看欧美日韩国产| 日韩av在线电影网| 精品久久久久久久大神国产| 久久久久国色av免费观看性色| 91精品久久久久久久久久| 亚洲国内高清视频| 日韩美女av在线免费观看| 久久在线视频在线| 成人激情视频小说免费下载| 欧洲亚洲妇女av| 国产精品男女猛烈高潮激情| 亚洲欧美精品一区二区| 色噜噜狠狠狠综合曰曰曰88av| 色综合天天狠天天透天天伊人| 久久激情视频久久| 日韩精品在线观看视频| 成人免费看黄网站| 日韩专区在线观看| 亚洲精品动漫久久久久| 亚洲色图第三页| 日韩中文理论片| 国产精品久久不能| 日韩在线小视频| 九九精品在线观看| 欧美在线性爱视频| 7777kkkk成人观看| 欧美中文在线字幕| 亚洲免费av片| 中文字幕少妇一区二区三区| 亚洲最大的免费| 欧美一级电影免费在线观看| 欧美日韩成人精品| 一区二区三区国产在线观看|