亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaWeb開發中Servlet是那一層以及用法

JavaWeb開發中Servlet是那一層以及用法

冉冉說 2019-05-11 07:03:50
JavaWeb開發中Servlet是那一層以及用法
查看完整描述

2 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

JavaWeb開發中Servlet是屬于控制層最底端的部分的 ,也就是MVC c的最底層。

他往往用來處理請求的。他的外一層就是View、他的一層就是Service(Servlet往往調用他做邏輯判斷的操作)

原始的Servlet的生命周期

servlet在第一次訪問的時候就會被初始化

servlet對象一旦被創建就會駐留在內存中,當服務器關閉或者web應用被移除的時候servlet對象才銷毀

1:當servlet被創建的時候那么 servlet就會被初始化 調用init方法

2:任何請求來自客戶端,service方法就會被自動調用

3:當servlet從服務器被移除的時候 distroy方法將會被調用

如下是一個原始的Servlet代碼(這并不是現在開發一貫的做法,請往下看)

1

2

3

4

5

6

7

8

9

10

11

import javax.servlet.*;

class FirstServlet 

extends GenericServlet {

    public void 

service(ServletRequest request, ServletResponse response)

            throws ServletException, java.io.IOException 

{

        response.getWriter().write("hello 

servlet");

    }

}

ServletConfig

    getServletConfig 方法 用來獲得servlet的啟動信息,和getServletInfo方法 可以活的servlet的基本信息,和關于它自己的一些信息,例如作者,版本,版權等

    為Servlet設置初始參數要在web.xml中配置(只對當前servlet有效)

如下是在Web.xml中為當前servlet配置初始化參數的。

1

2

3

4

5

6

7

8

9

10

11

12

13

<servlet>

    <servlet-name>ServletConfigDemo</servlet-name>

    <servlet-class> 

cn.itcast.servlet.ServletConfigDemo     </servlet-class>

    <init-param>

        <param-name>encoding</param-name>

        <param-value>utf-8</param-value>

    </init-param>

    <init-param>

        <param-name>encoding2</param-name>

        <param-value>utf-9</param-value>

    </init-param>

</servlet>

ServletCofig對象可以通過this.getServletConfig來獲得,因為在父類中已經在獲得了ServletConfig對象;也可以servletconfig對象可以通過父類的init方法內穿過來的config對象獲取

1

2

3

    public void init(ServletConfig config) throws ServletException {        this.config = 

config;        this.init();    }    public ServletConfig getServletConfig() 

{        return config;    }

ServletContext 

    

    通常我們稱ServletContext叫Application對象 。也叫域對象

    Servlet引擎為每個WEB應用程序都創建一個對應的ServletContext對象,ServletContext對象被包含在ServletConfig對象中,調用ServletConfig.getServletContext方法可以返回

通常獲得ServletContext的方法是直接getservletcontext 因為在父類中已經定義了這樣的方法,子類直接繼承使用

ServletContext對象的引用。getServletContext().getInitParameter("a") 的方式獲得web應用的初始化參數

我們還可以為整個web應用配置初始化參數

Request & Response

    

基本servlet 中service的方法的request 和 response 對象分別是

RequestFacade  和  ResponseFacade  這個類是Tomcat中的類 他繼承自HttpServletRequest而 HttpServletRequest 又繼承 ServletRequest(Response同理)

一些常用方法:

request.getRequestURL();        獲得URl

request.getHeader("accept-encoding"); 獲得支持的壓縮格式

request.getHeader("referer");    獲得來自哪里(防盜鏈)

request.getInputStream();  獲得消息體

request.getParameter("name") 獲得參數

如下是現代開發中常用的Servlet

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

public class 

UpLoadServlet extends HttpServlet 

{

    public void doGet(HttpServletRequest request, 

HttpServletResponse response)

            throws ServletException, IOException 

{

    }

    public void 

doPost(HttpServletRequest request, HttpServletResponse 

response)

            throws 

ServletException, IOException {

        doGet(request, 

response);

    }

}

    




查看完整回答
反對 回復 2019-05-12
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

ervlet屬于MVC結構中的控制層,也就是連接頁面和數據庫的那個層次。
擴展:
m(model)模型,代表的是數據庫層,通常用到的是:oracle、db2、mysql等sql知識;
v(view)視圖,代表的是頁面(相關),通常用到的是:html5、jsp,js等頁面知識;
c(Controller)控制,代表的控制器,通常用到一些框架知識,如ssh(struts,spring,hibernate)。
備注:mvc實際上是一個很寬泛的內容,根據用到的技術不同,需要實現的業務邏輯不一樣,所以靈活開發配置即可。



查看完整回答
反對 回復 2019-05-12
  • 2 回答
  • 0 關注
  • 1197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號