JAVAE中servlet的概念及使用示例詳解
servlet的概念
首先我們要搞明白什么是servlet,servlet是一種實(shí)現(xiàn)動(dòng)態(tài)頁面的技術(shù),他是由tomcat提供給程序員的一組API可以幫助程序員開發(fā)一個(gè)web程序那么既然我們說到了實(shí)現(xiàn)動(dòng)態(tài)頁面我們首先就要搞清楚什么是靜態(tài)頁面什么是動(dòng)態(tài)頁面
靜態(tài)頁面和動(dòng)態(tài)頁面
我們所說的動(dòng)態(tài)頁面和靜態(tài)頁面其實(shí)指的是說這個(gè)頁面在不同的條件下它的內(nèi)容會(huì)發(fā)生改變,而靜態(tài)頁面則是指不同用戶,在不同地點(diǎn)的不同時(shí)間打開這個(gè)頁面的時(shí)候這個(gè)頁面的內(nèi)容并沒有發(fā)生任何的改變。 對(duì)應(yīng)的動(dòng)態(tài)頁面就是指我們打開后內(nèi)容會(huì)發(fā)生變化,比如說b站之類的會(huì)根據(jù)我們個(gè)人的喜好給我們推薦視頻。
servlet的作用
- 允許程序員注冊(cè)一個(gè)類在tomcat收到某個(gè)特定的HTTP請(qǐng)求的時(shí)候tomcat會(huì)執(zhí)行這個(gè)類中的代碼
- 幫助程序員解析HTTP請(qǐng)求把HTTP請(qǐng)求從一個(gè)字符串解析成一個(gè)HTTPRequest對(duì)象
- 幫助程序員制造出特定的HTTP響應(yīng)程序員只需要將自己要返回的內(nèi)容寫入HTTPResponse對(duì)象填寫一些屬性字段servlet就會(huì)自動(dòng)的安裝HTTP協(xié)議的方式構(gòu)造出一個(gè)HTTP響應(yīng)字段并通過socket接口返回
寫出一個(gè)servlet程序
首先我們想要寫出一個(gè)servelet程序第一件事情肯定是要?jiǎng)?chuàng)建一個(gè)項(xiàng)目這里我們創(chuàng)建一個(gè)什么項(xiàng)目呢?答案是一個(gè)mavean項(xiàng)目,那么創(chuàng)建好之后我們還要引入servlet的各種接口那么這里的引入和我門平時(shí)的引入是有一些區(qū)別的,這里的引入呢是在配置文件中進(jìn)行導(dǎo)入那么具體該怎么做呢?我們只需要在配置文件中加入這樣一段代碼就可以了
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
當(dāng)我們的項(xiàng)目創(chuàng)建好之后我們只需要在pom.xml這個(gè)文件中導(dǎo)入依賴就可以了,導(dǎo)入方法就是將上面的代碼導(dǎo)入即可。此外我們導(dǎo)入的時(shí)候要注意導(dǎo)入的serlet版本與tomcat版本要一致參照表格如下
目錄的創(chuàng)建
當(dāng)我們創(chuàng)建好項(xiàng)目之后我們還有一些工作要做那就是創(chuàng)建好我們需要?jiǎng)?chuàng)建的目錄,那么我們需要?jiǎng)?chuàng)建哪些目錄呢?首先就是我們的web目錄結(jié)構(gòu)如下
這里我們的web目錄實(shí)在main目錄下并且其結(jié)構(gòu)位webapp->WEB_INF->web.xml,那么這個(gè)web.xml中包含了哪些東西呢?我們把這段代碼復(fù)制進(jìn)去
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> </web-app>
設(shè)置smart tomcat
在這里面主要就是這個(gè)context path這個(gè)路徑,因?yàn)槲覀兊倪@個(gè)路徑是我們?cè)谠L問的時(shí)候第一級(jí)路徑。
編寫helloworld
那么上面配置搞好了之后我們來寫一個(gè)helloworld,那么想要寫出代碼我們首先要調(diào)用方法才可以,在這里我們用的方法不是main方法而是下面這兩個(gè)
import javax.servlet.Servlet; 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("/login2 ") public class login extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("hello world"); resp.getWriter().write("hello world"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } }
其中我們主要的代碼就是這樣用到的方法也就是這兩個(gè)方法那么我們先運(yùn)行一下,那么我們運(yùn)行起來之后我們?nèi)绾斡脼g覽器去訪問呢?
那就需要我們輸入url這個(gè)url是有規(guī)定的首先我們代碼中必須要加上的一個(gè)代碼就是下面的這個(gè)
@WebServlet("這里面隨便寫前提是必須以(‘/')開頭模仿上面的代碼")
并且我們上面說的Context path是作為一級(jí)目錄使用比如說我們的代碼url如何寫呢?如下
http://127.0.0.1:8080/test_login2/login2
然后我們來看一下最終的效果
很明顯我們成功了確實(shí)是非常的不容易啊歷經(jīng)這么多的步驟才寫出來了一個(gè)helloworld并且在初次學(xué)習(xí)的時(shí)候我們肯定會(huì)遇到各種各樣的坑和錯(cuò)誤那么我們應(yīng)該做的就是耐心去調(diào)整代碼在錯(cuò)誤中進(jìn)步
到此這篇關(guān)于JAVAE中servlet的概念及使用的文章就介紹到這了,更多相關(guān)JAVAEE servlet使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中對(duì)象轉(zhuǎn)json字符串的三種常用方式
本文主要介紹了java中對(duì)象轉(zhuǎn)json字符串的三種常用方式,包含Jackson庫,Gson庫和Hutool工具類這三種,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06SpringBoot?HikariCP配置項(xiàng)及源碼解析
這篇文章主要為大家介紹了SpringBoot?HikariCP配置項(xiàng)及源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Springboot整合Dubbo教程之項(xiàng)目創(chuàng)建和環(huán)境搭建
本篇文章主要介紹了Springboot整合Dubbo教程之項(xiàng)目創(chuàng)建和環(huán)境搭建,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Spring Boot中slf4j日志依賴關(guān)系示例詳解
在項(xiàng)目開發(fā)中,記錄日志是必做的一件事情。而當(dāng)我們使用Springboot框架時(shí),記錄日志就變得極其簡(jiǎn)單了。下面這篇文章主要給大家介紹了關(guān)于Spring Boot中slf4j日志依賴關(guān)系的相關(guān)資料,需要的朋友可以參考下2018-11-11Java?Stream?流中?Collectors.toMap?的用法詳解
這篇文章主要介紹了Stream?流中?Collectors.toMap?的用法,Collectors.toMap()方法是把List轉(zhuǎn)Map的操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01Java二叉樹的遍歷思想及核心代碼實(shí)現(xiàn)
今天小編就為大家分享一篇關(guān)于Java二叉樹的遍歷思想及核心代碼實(shí)現(xiàn),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01