之前的文章,我們主要是介紹了jsp的相關(guān)語(yǔ)法操作,我們可以通過(guò)請(qǐng)求某個(gè)jsp頁(yè)面,然后由相對(duì)應(yīng)的servlet實(shí)例給我們返回html頁(yè)面。但是在實(shí)際的項(xiàng)目中,我們很少會(huì)直接的請(qǐng)求某個(gè)頁(yè)面,一般都是請(qǐng)求某個(gè)URL,然后由我們的攔截器解析這個(gè)URL,調(diào)用model層處理一些邏輯判斷或者數(shù)據(jù)取出等,最后會(huì)調(diào)用view將頁(yè)面信息返回。這就是典型的MVC架構(gòu)模式。本篇文章將會(huì)從一個(gè)簡(jiǎn)單的實(shí)例了解一下,MVC模式下的Java是如何實(shí)現(xiàn)的。
首先,我們需要知道在Java中,究竟是哪些模塊充當(dāng)Controler,View,Model。在Java中,使用servlet充當(dāng)controler,使用javabean充當(dāng)model,使用jsp充當(dāng)view。我們首先看看如何使用servlet充當(dāng)controler的角色。我們之前曾經(jīng)講jsp的時(shí)候看過(guò)servlet實(shí)例的源代碼,那是編譯器自動(dòng)生成的,并不是我們寫的。如果我們想要用servlet作為攔截器使用,就必須要自己實(shí)現(xiàn)一個(gè)servlet實(shí)例。每個(gè)servlet必須繼承HttpServlet這個(gè)抽象類。也就是說(shuō),如果你想要使用servlet作為攔截器就需要繼承抽象類HttpServlet,重寫其某些方法。
public abstract class HttpServlet{ void doGet() void doPost() void doPut() void doDelete() void service() }
HttpServlet這個(gè)類提供了很多的默認(rèn)實(shí)現(xiàn)方法,有用于響應(yīng)用戶get請(qǐng)求的方法,post請(qǐng)求方法,put請(qǐng)求方法等,service這個(gè)方法用于響應(yīng)客戶端所有請(qǐng)求,所以我們一般只需要重寫這個(gè)方法就可以來(lái)實(shí)現(xiàn)對(duì)用戶所有請(qǐng)求的響應(yīng)。
@WebServlet(name="myservlet",urlPatterns = {"/walker"}) public class Test_class extends HttpServlet { @Override public void service(HttpServletRequest req, HttpServletResponse resp) throws IOException { OutputStream outputStream = resp.getOutputStream();