日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

servlet的理解

發布時間:2024/8/26 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 servlet的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說說你對servlet的理解或者 servlet 是什么?

Servlet(Servlet Applet),全稱Java Servlet,是用Java編寫的服務器端程序。而這些Servlet都要實現Servlet這個接口。其主要功能在于交互式的瀏覽和修改數據,生成動態Web內容。Servlet運行于支持Java的應用服務器中。

?

HttpServlet 重寫doGet 和 doPost 方法或者你也可以重寫service方法完成對get和post請求響應。

?

Servlet的通俗理解?

Servlet是一個運行了面向請求/ 響應服務器中的網絡模塊。

請求是客戶的一個調用,可能是遠程的。

請求包含了客戶要發送給服務器的數據。

響應是服務器返回給客戶的回答該請求的數據。Servlet是一個JAVA對象,他以請求為輸入,分析其數據,執行一些邏輯運算,并給客戶發回一個響應。
???另一方面,Servlet作為駐留在服務器端HTTP明白的中間層,它們知道怎樣在HTTP中通過RMI或IIOP在EJB和客戶之間進行通信。

?

RMI了解地址:http://haolloyin.blog.51cto.com/1177454/332426/

IIOP了解地址:https://baike.baidu.com/item/IIOP/8866752?fr=aladdin

?

RMI-IIOP:RMI以Java為核心,可與采用本機方法與現有系統相連接。IIOP,Internet Inter-ORB Protocol(互聯網內部對象請求代理協議),它是一個用于CORBA 2.0及兼容平臺上的協議。

?

Servlet 入門理解?

當學到Servlet這個新技術的時候,不是著急去學Servlet這個Java類有什么屬性、方法,而是先去了解這個東西什么時候會用到,既然都是BS的,那ASP.NET中有沒有類似的?然后就有了人寫了這篇博客。

1.Servlet產生背景和主要作用

? ??我們都知道網頁有靜態和動態之分。靜態的只能看看,而動態可以實現客戶端和服務器的交互,比如登錄的功能,我們輸入用戶名和密碼后提交到服務器,服務器會處理這些信息,如果正確的話則進入主頁。若不正確,則給出提示信息。這是我們很常實現的例子,可是我們有沒有想過:客戶端到服務器之間這個交互的過程是怎么實現的?之前我沒有想過。直到遇到了Servlet.Servlet是Java中用來處理BS架構下,客戶端請求的響應處理。

2.java中Servlet和ASP.net中的HttpHandler的對比

ASP.Net:

?? ?當一個HTTP請求經同HttpModule容器傳遞到HttpHandler容器中時,ASP.NET Framework會調用HttpHandler的ProcessRequest成員方法來對這個HTTP請求進行真正的處理。以一個ASPX頁面為例,正是在這里一個ASPX頁面才被系統處理解析,并將處理完成的結果繼續經由HttpModule傳遞下去,直至到達客戶端。我們看一張圖幫助理解:

?

Java:

?? 在這個過程中,HttpServletRequest和HttpServletReponse相當于上面的HttpModule起到傳過去,傳回來的作用。Servlet(HttpServlet)相當于HttpHandler處理客戶端請求。

?

3.Servlet是什么

現在我們說說Servlet是什么。Servlet就是一個Java類。類就會有一系列的屬性和方法。了解這些可以看詳細的API文檔。這里不再贅述。

Java包組成:javax.servlet和javax.servlet.http. 在javax.servlet包中定義了所有的Servlet類都必須實現或擴展的的通用接口和類.在javax.servlet.http包中定義了采用HTTP通信協議的HttpServlet類。

?

4.Demo(Tomcat)

login.html

<html>?

??? <head>?

??????? <title>Login</title>?

??? </head>?

??? <body>?

??????? <form action="exam/login">?

??????? 用戶名:<input type="text" name="username"> <br>?

??????? 密 碼:<input type="password" name="password"> <br>?

??????? <input type="submit" value="登錄">?

??????? </form>?

??? </body>?

</html>?

?

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>?

?

<web-app xmlns="http://java.sun.com/xml/ns/javaee"?

?? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?

?? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"?

?? version="2.5">??

?

???? <servlet>?

??????? <servlet-name>MyServlet</servlet-name>?

??????? <servlet-class>loginservlet</servlet-class>?

???? </servlet>?

???? <servlet-mapping>?

??????? <servlet-name>MyServlet</servlet-name>?

??????? <url-pattern>/login</url-pattern>?

???? </servlet-mapping>?

??????

???? <servlet>??????

?

</web-app>?

?

loginServlet.java

import javax.servlet.http.*;?

import javax.servlet.*;?

import java.io.*;?

?

public class loginservlet extends HttpServlet{?

??? public void doGet(HttpServletRequest req,?

???????????????????? HttpServletResponse resp)?

??????????? ??throws ServletException,?

???????????????????? IOException{?

????????? String username = req.getParameter("username");?

????????? String password = req.getParameter("password");?

???????????

????????? System.out.println("username = " + username );?

????????? System.out.println("password = " + password );?

???????????

????????? resp.setContentType("text/html");?

????????? resp.getWriter().println("Login Success!");?

? }??????????????

}?

?

對應時序圖:

?

總結:

以前沒有想過客戶端和服務器如何實現交互。Servlet開始讓我思考。學習不能總是看以前學得不扎實。學得時候做好總結,往前看。但學新的東西要聯系舊的東西,這樣既能鞏固舊知識,也能使學習變得輕松。這也是為什么我們學了后面的,再看前面學得容易了的原因。

?

?

注明Servlet入門理解摘自博客地址:http://blog.csdn.net/wangyajin333/article/details/39937163

?

總結

以上是生活随笔為你收集整理的servlet的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。