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

首頁 > 學院 > 編程應用 > 正文

SpringMVC 返回 html 視圖頁面,SpringMVC與Servlet,Servlet重定向與轉發

2019-11-15 01:15:25
字體:
來源:轉載
供稿:網友
SPRingMVC 返回 html 視圖頁面,SpringMVC與Servlet,Servlet重定向與轉發

1. SpringMVC與Servlet的關系

SpringMVC框架是建立在Servlet之上的,提供各種功能,各種封裝,各種方便的同時,它一點兒也沒有限制Servlet,我們完全可以在SpringMVC的controller中,完全按照Servlet的方式來寫代碼,同時還享受SpringMVC提供的方便。所以我們完全沒有理由再使用Servlet了。

2. SpringMVC 返回 html 視圖頁面

SpringMVC的controller一般我們可以配置返回:jsp, json, Velocity, FreeMarker, xml, PDF, Excel等等視圖。那么如何返回到 html 視圖呢?當然一般我們沒有這種必要,但是有一些奇葩場景還是存在的。

上面我們知道SpringMVC沒有限制對Servlet有任何的限制,我們完全可以在controller中寫servlet形式的代碼,而我們知道,我們在Servlet中可以通過 轉發和重定向到 html 類型的頁面,所以我們也可以在SpringMVC的controller中利用request的轉發和response的重定向到html頁面,也可以利用PrintWriter直接輸出html字符流。這些Servlet中的用法,我們完全可以在SpringMVC中使用。

    @RequestMapping(value="/htmlView")    public void htmlView(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{        // ...//      request.getRequestDispatcher("index.html").forward(request, response);        response.sendRedirect("http://www.baidu.com");    }
    @RequestMapping(value="/getPage")    public void writeSubmitHtml(Reader reader, Writer writer, Httpsession session) throws IOException {        User user = (User) session.getAttribute(ConstantConfig.LONGIN_USER);        StringBuffer sbHtml = new StringBuffer();        sbHtml.append("<!doctype html><html><head><meta http-equiv=/"Content-Type/" content=/"text/html; charset=UTF-8/">");        sbHtml.append("<title>支付寶即時到賬交易接口</title></head><body>"+ user.getNo() +"</body></html>");        writer.write(sbHtml.toString());      }

上面分別使用 request的轉發和response的重定向,以及PrintWriter直接輸出html字符流,到達springMVC返回 html 類型視圖的目的。

3. Servlet重定向與轉發

下面的文字,轉自:http://blog.sina.com.cn/s/blog_7ffb8dd501013tbg.html

一、請求轉發與響應重定向的種類

有兩種方式獲得Servlet 轉發對象(RequestDispatcher):

一種是通過HttpServletRequest的getRequestDispatcher()方法獲得,

一種是通過ServletContext的getRequestDispatcher()方法獲得。

Servlet 重定向的方法只有一種:HttpServletResponse的sendRedirect()方法。

這三個方法的參數都是一個URL形式的字符串,但在使用相對路徑或絕對路徑上有所區別。

二、請求轉發與響應重定向中路徑參數區別假設通過http://localhost/myApp/cool/bar.do請求到達該方法所屬的Servlet。

1、響應重定向 ◆ HttpServletResponse.sendRedirect(String)

參數可以指定為相對路徑、絕對路徑或其它Web應用。

i:相對路徑response.sendRedirect("foo/stuff.do"),容器相對于原來請求URL的目錄加參數來生成完整的URL——http://localhost/myApp/cool/foo/stuff.do。

ii:絕對路徑response.sendRedirect("/foo/stuff.do"),容器相對于Web應用本身加參數建立完整的URL,這是因為重定向response.sendRedirect("")是服務器向客戶端發送一個請求頭信息,由客戶端請求一次服務器,請求是在服務器外進行的,

所以完整的url是——http://localhost/foo/stuff.do

iii:其它Web應用:response.sendRedirect("http://www.xxx.com")容器直接定向到該URL。

2、請求轉發◆HttpServletRequest.getRequestDispatcher(String)

參數可以指定為相對路徑或絕對路徑。

i:相對路徑情況下生成的完整URL與重定向方法相同。

ii:絕對路徑與Servlet重定向不同,容器將相對于Web應用的根目錄加參數生成完整的URL(即“/”根路徑就是相對于虛擬路徑)這是因為轉發是在服務器內部進行的,寫絕對路徑/開頭指的是當前的Web應用程序。即:

request.getRequestDispatcher("/foo/stuff.do")生成的URL是http://localhost/myApp/foo/stuff.do。

3、 ◆ServletContext.getRequestDispatcher(String)

參數只能指定為絕對路徑生成的完整URL與HttpServletRequest.getRequestDispatcher(String)相同。

##################################

同理:

JSP 提交表單給 Servlet 路徑問題JSP頁面提交表單給Servlet時,路徑的寫法要格外注意。

例如在web.xml中注冊如下的servlet:

<servlet><servlet-name>addStudent</servlet-name><servlet-class>org.mytest.addStudent</servlet-class></servlet>

<servlet-mapping><servlet-name>addStudent</servlet-name><url-pattern>/servlet/addStudent</url-pattern></servlet-mapping>

假如說,你工程名字為HibernateApp3,JSP頁面提交表單給servlet時有兩種寫法:

1.相對路徑: <formaction=servlet/addStudentmethod=post>...</form>

2. 絕對路徑: <formaction="/HibernateApp3/servlet/addStudent"method=post>...</form>

或者 <formaction="<%=request.getContextPath()%>/servlet/addStudent"method=post>...</form>

注意:/代表根目錄,如果路徑是使用/開頭,Tomcat就是webApp那個目錄,如果你不是/開頭代表你從當前工程的目錄開始,例如:webApp/HibernateApp3/

這一點非常重要,很多提交表單時發生的錯誤都是因為提交路徑出錯造成的。

附、<ahref>的路徑如果是"/"開頭,則表示相對于主機,如果不是則表示相對于當前請求

綜上所述:

這里最最關鍵的要能清楚發出請求目的資源的請求是在服務器內部還是服務器外部:內部時,“/”就是項目的虛擬目錄;外部時,“/”就是代表主機的根目錄

注意:response.sendRedirect 是先返回瀏覽器,再由瀏覽器重新定向到某個頁面,所以他可以重定向到任何頁面,包括其它站點的頁面,比如從我們自己的網站,重定向到http://www.baidu.com 都是可以的,這是有其原理決定的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情a∨在线视频播放| 国产精品电影在线观看| 国产精品视频99| 日韩电影免费观看在线观看| 亚洲free性xxxx护士hd| 欧洲成人在线观看| 亚洲欧美在线播放| 亚洲国产欧美一区二区丝袜黑人| 欧洲亚洲免费在线| 日韩精品免费在线观看| 国产伦精品免费视频| 最近2019中文字幕大全第二页| 91视频8mav| 亚洲一区二区中文| 国产精品久久久久久久久粉嫩av| 国产盗摄xxxx视频xxx69| 国产精品va在线播放我和闺蜜| 秋霞成人午夜鲁丝一区二区三区| 精品久久中文字幕久久av| 欧美国产一区二区三区| 亚洲欧美精品伊人久久| 亚洲美女中文字幕| 一本大道亚洲视频| 91免费看片在线| 91色视频在线导航| 国产精品免费在线免费| 亚洲精品久久在线| 国产精品99久久99久久久二8| 国产精品久久久久不卡| 亚洲色图18p| 国产午夜精品视频| 综合激情国产一区| 清纯唯美亚洲综合| 亚洲成人av中文字幕| 亚洲欧美日韩另类| 永久免费毛片在线播放不卡| 操91在线视频| 欧美激情videos| 91国产精品视频在线| 亚洲美女视频网| 日韩亚洲精品视频| 国产拍精品一二三| 国产欧美一区二区三区久久人妖| 色综合伊人色综合网站| 性欧美xxxx视频在线观看| 国产精品日韩久久久久| 国产色婷婷国产综合在线理论片a| 久久久999精品免费| 欧美成人精品不卡视频在线观看| 亚洲精品二三区| 最新的欧美黄色| 69影院欧美专区视频| 欧美午夜视频在线观看| 亚洲国产精品系列| 伊人久久久久久久久久久| 欧美性猛交xxxx黑人| 国产视频999| 亚洲91精品在线观看| 成人激情黄色网| 久久成人亚洲精品| 国产日韩在线一区| 亚洲精品美女免费| 日韩有码片在线观看| 奇米影视亚洲狠狠色| 午夜精品一区二区三区视频免费看| 国产精品第一区| 在线视频国产日韩| 亚洲国产中文字幕久久网| 成人免费视频网址| 久青草国产97香蕉在线视频| 中文字幕成人精品久久不卡| 精品无人国产偷自产在线| 欧美第一页在线| 亚洲裸体xxxx| 欧美成人亚洲成人日韩成人| 国产精品视频999| 日本19禁啪啪免费观看www| 亚洲午夜国产成人av电影男同| 色多多国产成人永久免费网站| 国产精品999| 亚洲精品在线91| xxx成人少妇69| 日本一区二区三区四区视频| 欧美亚洲在线播放| 日韩一区二区av| 国产成人精品视频| 欧美丝袜一区二区三区| 亚洲成人精品视频| 亚洲精品福利视频| 亚洲天堂男人天堂女人天堂| 性欧美办公室18xxxxhd| 亚洲最新av在线| 国产z一区二区三区| 色综合91久久精品中文字幕| 国产91精品最新在线播放| 亚洲男人av在线| 久久精视频免费在线久久完整在线看| 4438全国亚洲精品在线观看视频| 亚洲最新中文字幕| 中文字幕精品视频| 精品国产31久久久久久| 亚洲最新中文字幕| 久久中文字幕视频| 一区二区欧美日韩视频| 国产精品视频久久久久| 日韩在线视频国产| 欧美最猛性xxxxx(亚洲精品)| 高清欧美一区二区三区| 欧美高清理论片| 国产精品视频免费在线| 色系列之999| 亚洲天堂2020| 欧日韩不卡在线视频| 日韩的一区二区| 欧美日韩中文在线| 欧美福利小视频| 美女少妇精品视频| 国产综合视频在线观看| 美日韩精品免费视频| 亚洲欧美日韩国产中文| 欧美在线中文字幕| 欧美整片在线观看| 色偷偷9999www| 日韩av手机在线看| 亚洲深夜福利在线| 日韩电影免费观看在线观看| 国产午夜精品一区理论片飘花| 国产成人在线亚洲欧美| 性欧美办公室18xxxxhd| 欧美黑人视频一区| 91精品啪aⅴ在线观看国产| 国产精品人成电影在线观看| 最新国产成人av网站网址麻豆| 午夜精品一区二区三区视频免费看| 色妞在线综合亚洲欧美| 欧美色视频日本高清在线观看| 青草青草久热精品视频在线观看| 超碰日本道色综合久久综合| 久久久久久免费精品| 欧美激情图片区| 国产精品久久二区| 欧美老妇交乱视频| 亚洲人成电影网站色…| 欧美一级成年大片在线观看| 91精品视频免费观看| 777午夜精品福利在线观看| 亚洲女同性videos| 亚洲欧美日韩精品久久| 亚洲男人天堂2023| 亚洲精品一区久久久久久| 国产日韩欧美夫妻视频在线观看| 91亚洲永久免费精品| 97在线视频免费播放| 日韩视频一区在线| 亚洲高清福利视频| 国产精品亚洲视频在线观看| 日本欧美爱爱爱| 中文字幕av一区| 国产97在线观看| 久久手机精品视频| 97香蕉久久超级碰碰高清版| 成人国产精品久久久久久亚洲| 亚洲国产小视频| 久久精品福利视频|