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

首頁 > 編程 > JSP > 正文

JSP使用Servlet作為控制器實現MVC模式實例詳解

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

這篇文章主要介紹了JSP使用Servlet作為控制器實現MVC模式的方法,以完整實例形式較為詳細的分析了MVC模式的原理及Servlet實現MVC模式的原理與相關注意事項,需要的朋友可以參考下

本文實例講述了JSP使用Servlet作為控制器實現MVC模式的方法。分享給大家供大家參考。具體如下:

一、目標:

① 初步理解MVC模式;

② 掌握Servlet的編寫;

③ 使用MVC模式完成登錄功能。

二、主要內容:

① 分析JSP+JavaBean模式存在的問題,并介紹JSP+JavaBean+Servlet模式,以及和MVC模式的關系;

② 通過簡單實例介紹Servlet的編寫、配置和運行;

③ 采用Servlet完成登錄功能的控制。

1、 JSP+JavaBean這種模式存在的問題?

JSP的強大之處在與人交互,也就是完成輸入輸出的功能。但是在JSP+JavaBean這種模式中,JSP不僅僅完成輸入輸出的功能,還完成系統的控制功能(接收用戶請求,調用JavaBean,然后根據調用的結果,選擇界面對用戶進行響應)。所以在JSP發展的第三個階段中,把控制功能從JSP中分離出來,使用Servlet來實現,形成JSP+JavaBean+Servlet這種模式,JSP僅僅完成輸入和輸出,JavaBean完成處理,而Servlet完成控制。

2、 JSP+JavaBean+Servlet

JSP負責輸入輸出,JavaBean負責實現業務邏輯(功能),Servlet完成控制。這種模式通常也被認為是MVC模式的一種實現。MVC模式把系統的業務邏輯、控制和輸入輸出進行分離,在開發應用的時候,可以單獨考慮某一部分,簡化開發。

V,表示視圖,與人交戶的部分,M,表示模型,完成功能,C,表示控制器。JSP通常充當視圖,JavaBean是模型,Servlet作為控制器。

3、 什么是Servlet

Servlet也是一種Web組件,從完成的功能上來說,與JSP是相同的。Servlet是純Java文件,是特殊的Java類。

Servlet與JavaBean有什么區別呢?都是Java類,但是Serlvet可以接收用戶的請求,客戶端可以直接訪問。但是JavaBean不能被客戶端直接訪問,必須由JSP或者其他的Java文件(包括Servlet)來調用。

4、 實例:HelloServlet

下面是一個Servlet,完成的功能是輸出一句話"Servlet測試!"。

1)文件編寫

 

  1. package servlet; 
  2. // Servlet開發所需要的包 
  3. import java.io.*; 
  4. import javax.servlet.*; 
  5. import javax.servlet.http.*; 
  6. public class HelloServlet extends HttpServlet 
  7. public void doGet(HttpServletRequest request,HttpServletResponse response) 
  8. throw IOException,ServletException 
  9. response.setContentType("text/html;charset=gb2312"); 
  10. PrintWriter out = response.getWriter(); 
  11. out.print("Servlet測試!"); 

2)編譯

需要把C:/Program Files/Apache Software Foundation/Tomcat 6.0/lib/servlet-api.jar配置到classpath中,然后編譯。

3)配置

在配置文件web.xml中寫。包括兩部分:聲明和訪問方式設置。

聲明:

 

 
  1. <servlet> 
  2. <servlet-name>hello</servlet-name> 
  3. <servlet-class>servlet.HelloServlet</servlet-class
  4. </serlvet> 

訪問方式設置:

 

 
  1. <servlet-mapping> 
  2. <servlet-name>hello</servlet-name> 
  3. <url-pattern>/hello</url-pattern> 
  4. </servlet-mapping> 

5、 測試

訪問:http://127.0.0.1:8080/ch6/hello

6、 如何采用這種模式實現登錄功能?

界面界面和響應界面都不需要修改,JavaBean完成處理,也不需要改變,只是使用Servlet來替換原來的login-process.jsp,完成控制功能。

1)參考代碼如下:

 

 
  1. package servlet; 
  2. import java.io.*; 
  3. import javax.servlet.*; 
  4. import javax.servlet.http.*; 
  5. import javabean.*; 
  6. public class LoginProcess extends HttpServlet 
  7. public void doGet(HttpServletRequest request,HttpServletResponse response) 
  8. throws IOException,ServletException 
  9. // 第一步:獲取用戶的輸入信息 
  10. String username = request.getParameter("username"); 
  11. String userpass = request.getParameter("userpass"); 
  12. // 第二步:調用JavaBean 
  13. User user = new User(); 
  14. user.setUsername(username); 
  15. user.setUserpass(userpass); 
  16. boolean b = user.check(); 
  17. // 第三步:選擇一個界面對用戶進行響應 
  18. String forward; 
  19. if(b) 
  20. forward = "success.jsp"
  21. else 
  22. forward = "failure.jsp"
  23. RequestDispatcher rd = request.getRequestDispatcher(forward); 
  24. rd.forward(request,response); 

上面的代碼基本上展示了Servlet作為控制器的基本功能。

2)配置

 

 
  1. <servlet> 
  2. <servlet-name>process</servlet-name> 
  3. <servlet-class>servlet.LoginProcess</servlet-class
  4. </servlet> 
  5. <servlet-mapping> 
  6. <servlet-name>process</servlet-name> 
  7. <url-pattern>/process</url-pattern> 
  8. </servlet-mapping> 

3)修改登錄界面的action屬性

 

 
  1. <%@ page contentType="text/html;charset=gb2312"%> 
  2. 請登錄<br> 
  3. <form name="form1" method="post" action="process"
  4. 用戶ID:<input type="text" name="username"><br> 
  5. 口令:<input type="password" name="userpass"><br> 
  6. <input type="submit" value="登錄"><input type="reset" value="重置"
  7. </form> 
  8. <%@ include file="contact.jsp"%> 

7、 測試運行

訪問登錄界面,輸入信息,然后提交。

這時候會報錯,提示請求方式不支持。需要在Servlet中增加如下方法:

 

 
  1. public void doPost(HttpServletRequest request,HttpServletResponse response) 
  2. throws IOException,ServletException 
  3. doGet(request,response); 

因為JSP頁面中的請求方式為post,所以Servlet中需要提供doPost方法,方法的定義和doGet相同,這里方法的實現只需要調用doGet方法即可。

8、 Servlet的主要方法

init方法,用于初始化;

服務類方法:doGet方法和doPost方法

destroy方法,釋放資源

9、 生命周期

服務器接收到請求之后,會把請求信息封裝成HttpServletRequest對象和HttpServletResponse對象。

第一次訪問servlet的時候,加載類,創建對象,初始化(init方法),調用服務類方法(如果是get請求,調用doGet方法,如果是post請求,調用doPost方法)。

后續訪問,直接調用服務器類方法。

卸載Servlet的時候,或者關閉服務器的時候,調用destroy方法釋放資源。

希望本文所述對大家的JSP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性jizz18性欧美| 亚洲精品自拍偷拍| 久久影院资源站| 欧美做爰性生交视频| 亚洲欧美一区二区三区四区| 亚洲jizzjizz日本少妇| 亚洲欧美另类中文字幕| 成人妇女淫片aaaa视频| 成人免费高清完整版在线观看| 国产亚洲成av人片在线观看桃| 日韩在线免费视频观看| 奇米成人av国产一区二区三区| 欧美一区二区三区图| 日韩av最新在线| 操人视频在线观看欧美| 国内精品久久久久久| 日韩资源在线观看| 91高清免费视频| 亚洲国产精品999| 国产婷婷97碰碰久久人人蜜臀| 日韩国产欧美精品一区二区三区| 久久久91精品国产| 日韩精品免费视频| 久久久久久中文| 在线观看国产精品日韩av| 中文字幕亚洲字幕| 国产欧美精品xxxx另类| 国产成人精品国内自产拍免费看| 日韩在线视频中文字幕| 国产在线播放不卡| 欧美日韩一区二区免费在线观看| 国产精品91免费在线| 国产一区二区三区中文| 欧美xxxx18国产| 亚洲欧美成人在线| 97精品久久久中文字幕免费| 91在线观看免费观看| 午夜精品久久久久久久99热| 日韩国产中文字幕| 深夜福利一区二区| 亚洲最大福利网站| 亚洲欧美日韩天堂一区二区| 亚洲精品一区二区在线| 亚洲伊人成综合成人网| 亚洲欧美中文另类| 亚洲男人天堂九九视频| 欧美性猛交xxxx富婆弯腰| 91在线免费观看网站| 色婷婷综合久久久久中文字幕1| 欧美精品在线第一页| 中文字幕精品一区久久久久| 国产日韩欧美日韩| 亚洲欧洲自拍偷拍| 欧美日韩精品中文字幕| 国产精品久久久久久久久免费看| 亚洲高清久久网| 亚洲第一精品电影| 亚洲精品久久久久中文字幕二区| 欧美日韩在线观看视频| 91亚洲永久免费精品| 午夜精品久久久久久99热软件| 在线视频免费一区二区| 亚洲精品中文字幕有码专区| 日韩午夜在线视频| 这里只有精品在线观看| 欧美性jizz18性欧美| 国产精品久久久一区| 欧美亚洲视频一区二区| 超碰91人人草人人干| 欧美夜福利tv在线| 日本在线观看天堂男亚洲| 欧美视频中文字幕在线| 亚洲天堂男人天堂女人天堂| 久久久久国产一区二区三区| 日韩视频免费在线观看| 亚洲丝袜一区在线| 青青精品视频播放| 欲色天天网综合久久| 日韩美女av在线免费观看| 国内精品模特av私拍在线观看| 国产精品啪视频| 久久久久在线观看| 国产精品99久久久久久久久久久久| 久久综合88中文色鬼| 亚洲一区二区三区xxx视频| 久久免费视频这里只有精品| 国产精品私拍pans大尺度在线| 成人www视频在线观看| 日韩欧美在线中文字幕| 日韩av在线不卡| 精品久久久久久久大神国产| 夜色77av精品影院| 欧美激情久久久| 久久久天堂国产精品女人| 成人免费视频网址| 91在线高清免费观看| 日韩中文字幕av| 亚洲综合最新在线| 国产成人精品久久二区二区91| 国模吧一区二区三区| 欧美日韩xxx| 久久久免费电影| 在线观看91久久久久久| 欧美高清视频在线| 精品一区电影国产| 久久综合伊人77777蜜臀| 亚洲xxx大片| 奇门遁甲1982国语版免费观看高清| 久久免费少妇高潮久久精品99| 日韩精品免费在线| 国产女人精品视频| 26uuu国产精品视频| 国产日韩av高清| 日韩第一页在线| 日韩精品在线视频美女| 一区二区欧美亚洲| 97视频免费看| 色偷偷偷综合中文字幕;dd| 欧美日韩色婷婷| 欧洲成人在线视频| 7m精品福利视频导航| 中文字幕精品在线| 97不卡在线视频| 成人黄色短视频在线观看| 亚洲欧美激情四射在线日| 亚洲已满18点击进入在线看片| 尤物yw午夜国产精品视频明星| 国产ts一区二区| 欧美小视频在线观看| 日韩少妇与小伙激情| 色香阁99久久精品久久久| 久久黄色av网站| 精品国产一区久久久| 亚洲国产精品一区二区三区| 欧美性xxxx极品hd满灌| 国产成人精品日本亚洲| 国产亚洲视频中文字幕视频| 亚洲在线观看视频网站| 日韩欧美成人网| 欧美视频精品一区| 日产精品99久久久久久| 日韩在线欧美在线国产在线| 热re99久久精品国产66热| 疯狂做受xxxx高潮欧美日本| 亚洲第一精品久久忘忧草社区| 狠狠躁天天躁日日躁欧美| 日韩美女写真福利在线观看| 一区二区亚洲精品国产| 日韩精品中文字| 3344国产精品免费看| 亚洲一级免费视频| 日韩av在线直播| 懂色av影视一区二区三区| 热久久视久久精品18亚洲精品| 欧美日韩高清在线观看| 日韩成人在线播放| 亚洲久久久久久久久久| 91在线精品播放| 国产日本欧美一区二区三区在线| 亚洲国产精品嫩草影院久久| 久久69精品久久久久久久电影好| 欧美日韩中国免费专区在线看| 综合av色偷偷网| 亚洲视频欧美视频|