黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

javaweb中servlet技術(shù)的用法

javaweb中servlet技術(shù)的用法

本文講解"javaweb中servlet技術(shù)的用法",希望能夠解決相關(guān)問題。

 

servlet

servlet(server applet)是java servlet的簡稱。 是在服務(wù)器端執(zhí)行的 , 用于響應(yīng)客戶端請求的java類。httpservlet 是使用java語言對http通信的實現(xiàn)。

servlet聲明

在 web.xml 中聲明servlet的請求url及對應(yīng)的類路徑 , 3.0版本后可以在類上使用 @webservlet(“/test”) 注解來聲明

servlet-class : 內(nèi)部地址路徑

url-pattern : 對外發(fā)布的名字

servlet-name : 兩者的對應(yīng)

       testservlet     com.yuan.servlet.testservlet           testservlet     /testservlet   

servlet生命周期

加載 : 在web.xml中聲明servlet相關(guān)信息

實例化 : 由webserver( 如 : tomcat )根據(jù)web.xml中聲明信息進行實例化, 實例化后才能調(diào)用方法

第一種方式 : 第一次被請求時, 先實例化, 然后調(diào)用了 init() 方法進行初始化

第二種方式 : 在 web.xml 文件中在下加入 0web服務(wù)器啟動時就會實例化

初始化 : 在init() 方法中,進行初始屬性設(shè)置

服務(wù) : 用戶發(fā)請求后, 會調(diào)用 service(request, response) 方法, 請求/響應(yīng)的信息由webserver封裝成httpservletrequest / httpservletresponse對象

銷毀 : 當(dāng)servlet被銷毀時, 調(diào)用destroy()方法, 可以在這個方法中釋放一些資源

垃圾回收 : 被jvm進行垃圾回收時, 調(diào)用 finalize() 方法

package com.yuan.servlet;
import javax.servlet.servletconfig;
import javax.servlet.servletexception;
import javax.servlet.annotation.webservlet;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import java.io.ioexception;
@webservlet("/testservlet")
public class testservlet extends httpservlet {
    @override
    public void init(servletconfig config) throws servletexception {
        // 初始化方法
    }
    @override
    protected void service(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception {
        // 服務(wù)方法
    }
    @override
    public void destroy() {
        //銷毀方法
    }
}

請求方式

http定義了與服務(wù)器交互的不同方法,最基本的方法有4種,分別是get,post,put,delete。

一個url地址,它用于描述一個網(wǎng)絡(luò)上的資源,而http中的get,post,put,delete就對應(yīng)著對這個資源的查,改,增,刪4個操作。

get/post比較

get一般用于獲取/查詢資源信息,而post一般用于更新資源信息

默認方式 :

-get 超鏈接, location.href, form表單 默認都是get的

-post 將 form表單的 method屬性設(shè)置成 post, form通信轉(zhuǎn)成post方式

傳值方式 :

-get 數(shù)據(jù)會附在url之后, 參數(shù)顯示在地址欄。所以是明文傳值

-post 數(shù)據(jù)放置在http包的包體中, 參數(shù)不在地址欄顯示, 登錄時要使用post, 隱藏登錄信息

傳值大小:

-get 1k~8k,受瀏覽器的影響, 通常為2k

-post 理論上沒有大小的限制, 所以做上傳文件時, 由于文件的大小原因, 只能使用post

中文傳遞 :

-get 默認使用iso-8859-1, 現(xiàn)在的瀏覽器都有優(yōu)化

-post 根據(jù)頁面的中文編碼設(shè)置, 服務(wù)器接值要轉(zhuǎn)碼

字符編碼

gb2312編碼:1981年5月1日發(fā)布的簡體中文漢字編碼國家標(biāo)準(zhǔn)。gb2312對漢字采用雙字節(jié)編碼,收錄7445個圖形字符,其中包括6763個漢字。

big5編碼:臺灣地區(qū)繁體中文標(biāo)準(zhǔn)字符集,采用雙字節(jié)編碼,共收錄13053個中文字,1984年實施。

gbk編碼:1995年12月發(fā)布的漢字編碼國家標(biāo)準(zhǔn),是對gb2312編碼的擴充,對漢字采用雙字節(jié)編碼。

gbk字符集共收錄21003個漢字,包含國家標(biāo)準(zhǔn)gb13000-1中的全部中日韓漢字,和big5編碼中的所有漢字。

unicode編碼(utf-8):國際標(biāo)準(zhǔn)字符集,它將世界各種語言的每個字符定義一個唯一的編碼,以滿足跨語言、跨平臺的文本信息轉(zhuǎn)換。

u4e00-u9fa5 , 0x3400-0x4db5 (中文)

兩種轉(zhuǎn)頁

內(nèi)部轉(zhuǎn) :

request.getrequestdispatcher( "目標(biāo)頁面" ) .forward( request, response );

跳轉(zhuǎn)后瀏覽器地址欄不會變化

目標(biāo)頁面路徑可以使用相對路徑

使用這種方式跳轉(zhuǎn),傳值可以使用三種方法:url中帶parameter,session,request.setattribute()

重定向 :

response.sendredirect( request.getcontextpath() + "目標(biāo)頁面" );

跳轉(zhuǎn)后瀏覽器地址欄變化。

目標(biāo)頁面要使用絕對路徑

這種方式要傳值出去的話,只能在url中帶parameter或者放在session中,無法使用request.setattribute()來傳遞

三種容器

存儲容器 : 是指用于在請求或轉(zhuǎn)頁過程中用來存儲所在傳遞的參數(shù)值的對象

常用方法

// 添加屬性
.setattribute(key, value)
// 取屬性值
.getattribute(key)
// 移除屬性
.removeattribute(key)

在web項目中有三種容器, 因為它們的作用范圍(生命周期)不同, 也叫三種作用域

其中 application 包含 多個session , session 包含多個 request

所以 從 request能得到session , 而從 request, session 能得到 application

request請求

類型 : httpservletrequest

生命周期 : 客戶端發(fā)起請求創(chuàng)建

遇到響應(yīng) response 或者生成頁面結(jié)束

常用方法 :

// 接頁面?zhèn)鱽淼闹?
string value = request.getparameter(key);   //接一個值
string[] vals = request.getparametervalues(key);  //接一組值
// 得到其它容器
httpsession session = request.getsession();
servletcontext app = request.getservletcontext();
// 得到url 信息
stringbuffer url = request.getrequesturl();
string scheme = request.getscheme();
string servername = request.getservername();
int serverport = request.getserverport();
string uri = request.getrequesturi();
string cpath = request.getcontextpath();       // 得到絕對路徑
string servleturl = request.getservletpath();  // 被請求servlet
string remoteaddr = request.getremoteaddr();  // 得到客戶端ip
session請求

類型 : httpsession

生命周期 : 瀏覽器與服務(wù)器建立通信開始

主動關(guān)閉或長時間不與服務(wù)器通信結(jié)束

常用方法 :

// 取session 的 標(biāo)識 id
string sid = session.getid();
// 獲取最長等待時間
int max = session.getmaxinactiveinterval();
// 設(shè)置最長等待時間, 以秒為單位
session.setmaxinactiveinterval(len);
// 取所屬的上下文
servletcontext app = session.getservletcontext();

在 web.xml中也可以設(shè)置最長等待時間, 單位是分鐘

       30   
application上下文(全局)

類型 : servletcontext

生命周期 : 項目啟動創(chuàng)建

項目關(guān)閉結(jié)束

常用方法 :

// 取項目的真實路徑(發(fā)布路徑)
string path = app.getrealpath(path);
// 取 web.xml 中設(shè)置的參數(shù)
string pv = app.getinitparameter(paramname);

在web.xml 里信息可以被application獲取

       paramname     paramvalue   

servletconfig設(shè)置對象

在 servlet的init() 初始化方法傳入?yún)?shù) servletconfig

public void init(servletconfig config) throws servletexception {
    // 取web.xml 文件中在下的信息
	string icon = config.getinitparameter(configname);
	// 取所屬的上下文
	servletcontext app = config.getservletcontext();
}

在web.xml 文件中在下的信息

              configname       configvalue          testservlet     com.yuan.servlet.testservlet   
相關(guān)文章