1. 程式人生 > 程式設計 >J2EE Servlet基礎在瀏覽器上執行HelloServlet的方法

J2EE Servlet基礎在瀏覽器上執行HelloServlet的方法

Servlet

servlet本身不能獨立執行,需要在一個web應用中執行的
而一個web應用是部署在tomcat中。開發一個servlet需要

  • 建立web應用專案
  • 編寫servlet程式碼
  • 部署到tomcat中

IDEA操作具體流程

1.建立名為j2ee的專案

2.匯入servlet-api.jar包(Servlet需要用到包中的相關類)
附上下載連結

連結: https://pan.baidu.com/s/1cb5BqQ1TrKcPiaf6zuPLFQ 提取碼: xtq6 

匯入:
右鍵專案 open module setting

在這裡插入圖片描述

3.編寫HelloServlet類。HelloServlet繼承了 HttpServlet

並且提供了一個doGet方法。在瀏覽器中輸入地址提交資料的方式是GET。所以該Servlet需要提供一個對應的doGet方法

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

public class HelloServlet extends HttpServlet {
 @Override
 protected void doGet(HttpServletRequest req,HttpServletResponse resp){
  try {
   resp.getWriter().println("<h1>Hello Servlet!</h1>");
   resp.getWriter().println(new Date());
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}
  • get與post的區別
  • get 訪問某個地址是get方式,提交的資料會在瀏覽器顯示出來。不可以提交二進位制資料,比如上傳檔案
  • post 在form中通過 method=“post” 顯示指定。可以提交二進位制檔案

4.配置web.xml 目錄web/WEB-INF下建立web.xml檔案。
servlet-mapping下建立了對映關係。使得/hello路徑對映到HelloServlet這個類

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 <servlet>
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>HelloServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>HelloServlet</servlet-name>
  <url-pattern>/hello</url-pattern>
 </servlet-mapping>
</web-app>

5.配置tomcat的server.xml。在host標籤下加入Context標籤。其中path="/" 就表示直接通過localhost/hello就可以訪問網頁。因為配置了 “/” ,會與root目錄衝突。所以在配置完成後啟動會發現root目錄消失。

在host標籤下加入(mac使用/分隔,windows使用\,path使用/)

<Host name="localhost" appBase="webapps"
   unpackWARs="true" autoDeploy="true">
   <Context path="/" docBase="//Users//ryu//Desktop//working//github-project//j2ee//web" debug="0" reloadable="false" />
 </Host>

重啟tomcat。docBase是j2ee的路徑,appBase不需要變,雖然專案沒有搭建在在tomcat的webapps下,但是docBase指向了我們應用的目錄。

一些知識點

關於tomcat\work\下的Catalina

當tomcat啟動的時候,就會把webapps這個資料夾下的專案,進行編譯,然後存放到Catalina目錄下

目錄結構

在這裡插入圖片描述

jsp或html等檔案是直屬於Webcontent,與【META-INF】【WEB-INF】平級,不要將jsp檔案放置到【WEB-INF】下面,WEB-INF是Java的WEB應用的安全目錄。所謂安全就是客戶端無法訪問,只有服務端可以訪問的目錄。放錯會引起404錯誤

關於啟動

在IDEA中啟動,會將專案中的java檔案(HelloServlet)編譯為class檔案。所以如果是在控制檯下執行tomcat的bin目錄下的startup檔案啟動tomcat,會因為缺少編譯過程導致執行失敗【HTTP狀態 500 - 內部伺服器錯誤】在這裡插入圖片描述

在idea中執行

在這裡插入圖片描述

到此這篇關於J2EE Servlet基礎在瀏覽器上執行HelloServlet的文章就介紹到這了,更多相關J2EE Servlet瀏覽器上執行HelloServlet內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!