目錄
一、環境說明
1.1開發環境
1.2 tomcat下載下傳
二、建立servlet項目
2.1 建立servlet項目
2.2 修改tomcat
2.3 添加tomcat lib庫
2.3.1添加lib和classes目錄(可選)
2.3.2 檢視項目結構“Project Structure”
三、建立一個簡單的servlet
3.1 編寫代碼
3.2 配置web.xml
3.3 測試
3.3.1 測試servlet是否正常顯示
3.3.2 測試一下中文是否亂碼
前面幾間講了servet的産生環境、servlet容器概念、jsp的産生背景,現在本章進入實操,使用idea建立一個簡單的servlet。
一、環境說明
1.1開發環境
名稱 | 版本 | 安裝方式 | 備注 |
系統 | win10 | - | 64位,旗艦版 |
jdk | 14.0.1 | exe | java開發工具目前最高最新版本 |
idea | 2020.1 | exe | java最著名的ide工具 |
具體安裝見:《hualinux java 1.5:java開發工具idea 2020安裝及配置》
1.2 tomcat下載下傳
要用到servlet需要用到servlet容器,我這裡使用的是tomcat免費開源的,點選進入tomcat下載下傳頁面,我這裡使用的是tomcat9,目前最新版本為9.0.36,我這裡是win 64位,是以下載下傳的是64位的zip包,如下圖
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SMxIDNxcjNwMDMhZ2MzgTMzYzX0MjMwQTM3AzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
我把apache-tomcat-9.0.36-windows-x64.zip複制到D:\Program Files目錄下并解壓重指令為tomcat-9.0.36,如下圖所示:
PS:解壓就行了,不要自作聰明運作tomcat,等下需要在idea配置tomcat,idea會自動運作tomcat的,不需要你運作
二、建立servlet項目
2.1 建立servlet項目
如果你之前有建立過項目的話,先關閉項目(File-->Close Project),會到如下界面:
2.2 修改tomcat
修改一下tomcat,指定一下浏覽器和編碼,操作如下:
修改我修改為tomcat9.0,浏覽器也修改一下
為了防止亂碼,我在vm選項指定UTF-8
VM Optons:-Dfile.encoding=UTF-8
如:上面有一個歎号的Warning的警告,則需要配置一下Deployment,如下圖所示:
2.3 添加tomcat lib庫
2.3.1添加lib和classes目錄(可選)
在WEB-INF目錄下面建立兩個目錄一個是lib一個是classes
lib目錄主要是存放庫檔案,現在沒有不用理它,将來用到再配置。
class目錄主要是看class(calss輸出檔案的目錄,不配置預設輸出out目錄)
2.3.2 檢視項目結構“Project Structure”
檢視一下是否idea自動添加了Tomcat包
如果沒有自動添加,則需要手工按如下操作添加,如果有則不用手工添加
三、建立一個簡單的servlet
3.1 編寫代碼
1)在項目中的src右擊-->new-->Create New Servlet
2)在doGet中添加如下代碼
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out=response.getWriter();
java.util.Date today=new java.util.Date();
out.println("<body>hello servlet</body><br>"+ today);
發現有些變紅色,是因為沒有導入相關類
PS:是在doGet下添加,不要在doPost添加
doGet:表示處理get請求,浏覽器輸入回車就是get請求,如要post需要用HTML編寫表單指點是post也行的
doPost:表示處理post請求
3.2 配置web.xml
打開WEB-INF下的web.xml,在<web-app>标簽中間添加如下的<servlet>标簽
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
上面的配置就是配置路由及映射,表示通路/hello路徑找Hello.java類處理這個路徑。
注:上面中
- <servlet-name>名字servlet的标記名,這個可以随便起
- <servlet-class>為servlet所在的類名,我這裡是Hello,是以寫Hello
- <url-pattern>為通路的url路徑,我這裡是/hello,卻為“ip:8080/hello”或“域名:8080/hello”
3.3 測試
3.3.1 測試servlet是否正常顯示
web目錄下會有一個index.jsp,這個是主目錄檔案,可以看一下裡機是什麼内容
上面已經配置好tomcat了,運作tomcat,點工具欄中綠色小三角,如下圖:
發現idea正下面自動幫運作tomcat了,如下圖所示:
發現産生亂碼解決方法見《hualinux servlet 2.7:IDEA 2020.1 x64 控制台日志亂碼問題》
一會會自動彈出浏覽器,我的是火狐,自動打開首頁内容,如下:
剛才還記得我們配置了一下servet的嗎,通路路徑是/hello,是以通路路徑為
IP:端口/hello
又因為idea在配置tomcat時把根目錄改為 myservlet_war_exploded/,是以得有myservlet_war_exploded/加hello,即
直接在尾部加hello就行了
3.3.2 測試一下中文是否亂碼
我在Hello.java的servet中指點下utf-8編碼,現在我把hello servet改為 你好 servlet看一下是否中文亂碼