豬八戒做網(wǎng)站靠譜嗎國際最新新聞
Web應(yīng)用開發(fā) - 實(shí)訓(xùn)三 B Servlet基礎(chǔ)
- 前言:
- 零、前期準(zhǔn)備
- 準(zhǔn)備工具
- 創(chuàng)建項(xiàng)目
- 導(dǎo)入 jar 包
- 配置運(yùn)行設(shè)置
- 一、實(shí)訓(xùn)第一部分
- 第一張圖
- 第二張圖
- 第三張圖
- 二、實(shí)訓(xùn)第二部分
- 第一張圖
- 第二張圖
前言:
eclipse 是不可能用的,并不是說它界面丑,也不是說它難用,而是它實(shí)在不適合我,idea 還能用一用,界面還挺符合我審美的,一些操作也比較合適。
注意:本篇文章使用的是工具是 IDEA,搭配 tomcat 10.1 使用
零、前期準(zhǔn)備
準(zhǔn)備工具
- 下載 tomcat 10.1 并安裝
下載地址:https://tomcat.apache.org/download-10.cgi
創(chuàng)建項(xiàng)目
直接新建項(xiàng)目,選擇 Jakara EE,模板為“Web 應(yīng)用程序”,接下來就直接下一步,創(chuàng)建。
導(dǎo)入 jar 包
- 找到 tomcat 的安裝目錄
(默認(rèn)是:C:\Program Files\Apache Software Foundation\Tomcat 10.1)
- 回到 idea 中點(diǎn)擊左上角的“文件” -> “項(xiàng)目結(jié)構(gòu)”
- 點(diǎn)擊左側(cè)的 “庫” -> 點(diǎn)擊 “+” -> 選擇 java
- 在彈出來的窗口中找到剛剛找到的 tomcat 安裝目錄,并找到 lib 文件夾下的 “servlet-api.jar ”,然后確認(rèn)就好了
配置運(yùn)行設(shè)置
- 點(diǎn)擊上方的“當(dāng)前文件”,選擇 “編輯配置”
- 點(diǎn)擊左上角的 “+”,找到 “Tomcat 服務(wù)器”本地
- 點(diǎn)擊 “部署”,選擇 “工件”,并點(diǎn)擊 “Servlet_war_exploded”
- 將下面的 “/Servlet_war_exploded” 改為 “/chapter03”
基本工作就到此結(jié)束,開始進(jìn)入正題!!!
一、實(shí)訓(xùn)第一部分
第一張圖
在圖中目錄創(chuàng)建 “HelloWorldServlet.java” ,代碼如下:
package com.example.servlet;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;import java.io.*;@WebServlet(name = "HelloWorldServlet", value = "/cn/itcast/firstapp/servlet/HelloWorldServlet")
public class HelloWorldServlet extends GenericServlet {public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {// 得到輸出流 PrinterWriter 對象,Servlet 使用輸出流來產(chǎn)生響應(yīng)PrintWriter out = response.getWriter();// 使用輸出流對象向客戶端發(fā)送字符數(shù)據(jù)out.println("Hello World");}
}
點(diǎn)擊右上角的三角形就可以運(yùn)行項(xiàng)目了
在瀏覽器中打開 http://localhost:8080/chapter03/cn/itcast/firstapp/servlet/HelloWorldServlet
效果圖如下所示
第二張圖
將 “HelloWorldServlet.java” 中的代碼修改成下面:
package com.example.servlet;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;@WebServlet(name = "HelloWorldServlet", value = "/HelloWorldServlet")
public class HelloWorldServlet extends GenericServlet {public void init(ServletConfig config) throws ServletException {System.out.println("init methed is called");}public void service(ServletRequest request, ServletResponse response) throws ServletException {System.out.println("Hello World");}public void destroy() {System.out.println("destroy method is called");}
}
重新運(yùn)行程序
在瀏覽器中打開 http://localhost:8080/chapter03/HelloWorldServlet
可以看到終端,這邊是我們需要的截圖(只需要截終端的那部分)
第三張圖
分別在圖中的兩個(gè)路徑中創(chuàng)建 “RequestMethodServlet.java” 和 “form.html”
RequestMethodServlet.java 文件中的代碼如下:
package com.example.servlet;import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.*;@WebServlet(name = "RequestMethodServlet", value = "/RequestMethodServlet")
public class RequestMethodServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException {PrintWriter out = response.getWriter();out.write("this is doGet method");}public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {PrintWriter out = response.getWriter();out.write("this is doPost method");}
}
form.html 文件中的代碼如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="/chapter03/RequestMethodServlet" method="post">姓名<input type="text" name="name"/><br/>密碼<input type="text" name="psw"/><br/><input type="submit" value="提交"/>
</form>
</body>
</html>
在瀏覽器中打開 http://localhost:8080/chapter03/form.html 截圖,點(diǎn)擊“提交”后截圖
二、實(shí)訓(xùn)第二部分
第一張圖
在如圖文件夾中創(chuàng)建 “TestServlet02.java”
TestServlet02.java 文件代碼如下
package com.example.servlet;import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebInitParam;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;@WebServlet(name = "TestServlet02", value = "/TestServlet02",initParams = {@WebInitParam(name = "encoding", value = "UTF-8")})
public class TestServlet02 extends HttpServlet {protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {PrintWriter out = response.getWriter();// 獲得 ServletConfig 對象ServletConfig config = this.getServletConfig();// 獲得參數(shù)名為 encoding 對應(yīng)的參數(shù)值String param = config.getInitParameter("encoding");out.println("encoding=" + param);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
在瀏覽器中打開 http://localhost:8080/chapter03/TestServlet02 并截圖
第二張圖
在如圖路徑中新建文件 “TestServlet03.java”
TestServlet03.java 文件代碼如下:
package com.example.servlet;import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;@WebServlet("/TestServlet03")
public class TestServlet03 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html; charset=utf-8");PrintWriter out = response.getWriter();// 得到 ServletContext 對象ServletContext context = this.getServletContext();// 得到包含所有初始化參數(shù)名的Enumeration 對象Enumeration<String> paramNames = context.getInitParameterNames();out.println("all the paramName and paramValue are following: ");// 遍歷所有的初始化參數(shù)名,得到相應(yīng)的參數(shù)值并打印while (paramNames.hasMoreElements()) {String name = paramNames.nextElement();String value = context.getInitParameter(name);out.println(name + ": " + value);out.println("<br />");}}public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
在如圖文件 “web.xml” 中添加如圖部分代碼
<context-param><param-name>companyName</param-name><param-value>itcast</param-value></context-param><context-param><param-name>address</param-name><param-value>beijing</param-value></context-param>
在瀏覽器中打開 http://localhost:8080/chapter03/TestServlet03 并截圖
恭喜,?實(shí)訓(xùn)三到此結(jié)束!!!