天天看點

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

目錄

​​一、環境說明​​

​​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包,如下圖

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

我把apache-tomcat-9.0.36-windows-x64.zip複制到D:\Program Files目錄下并解壓重指令為tomcat-9.0.36,如下圖所示: 

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
PS:解壓就行了,不要自作聰明運作tomcat,等下需要在idea配置tomcat,idea會自動運作tomcat的,不需要你運作

二、建立servlet項目

2.1 建立servlet項目

如果你之前有建立過項目的話,先關閉項目(File-->Close Project),會到如下界面:

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

2.2 修改tomcat

修改一下tomcat,指定一下浏覽器和編碼,操作如下:

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

修改我修改為tomcat9.0,浏覽器也修改一下

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

為了防止亂碼,我在vm選項指定UTF-8

VM Optons:-Dfile.encoding=UTF-8
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

如:上面有一個歎号的Warning的警告,則需要配置一下Deployment,如下圖所示:

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

2.3 添加tomcat lib庫

2.3.1添加lib和classes目錄(可選)

在WEB-INF目錄下面建立兩個目錄一個是lib一個是classes

lib目錄主要是存放庫檔案,現在沒有不用理它,将來用到再配置。

class目錄主要是看class(calss輸出檔案的目錄,不配置預設輸出out目錄)

2.3.2 檢視項目結構“Project Structure”

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

檢視一下是否idea自動添加了Tomcat包

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

如果沒有自動添加,則需要手工按如下操作添加,如果有則不用手工添加

三、建立一個簡單的servlet

3.1 編寫代碼

1)在項目中的src右擊-->new-->Create New Servlet

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet
hualinux servlet 2.6: IDEA 2020.1 建立簡單的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);      

發現有些變紅色,是因為沒有導入相關類 

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

PS:是在doGet下添加,不要在doPost添加

doGet:表示處理get請求,浏覽器輸入回車就是get請求,如要post需要用HTML編寫表單指點是post也行的

doPost:表示處理post請求

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

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類處理這個路徑。 

注:上面中
  1. <servlet-name>名字servlet的标記名,這個可以随便起
  2. <servlet-class>為servlet所在的類名,我這裡是Hello,是以寫Hello
  3. <url-pattern>為通路的url路徑,我這裡是/hello,卻為“ip:8080/hello”或“域名:8080/hello”
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

3.3 測試

3.3.1 測試servlet是否正常顯示

web目錄下會有一個index.jsp,這個是主目錄檔案,可以看一下裡機是什麼内容

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

上面已經配置好tomcat了,運作tomcat,點工具欄中綠色小三角,如下圖:

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

發現idea正下面自動幫運作tomcat了,如下圖所示:

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

發現産生亂碼解決方法見《​​hualinux servlet 2.7:IDEA 2020.1 x64 控制台日志亂碼問題​​》

一會會自動彈出浏覽器,我的是火狐,自動打開首頁内容,如下:

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

剛才還記得我們配置了一下servet的嗎,通路路徑是/hello,是以通路路徑為

IP:端口/hello

又因為idea在配置tomcat時把根目錄改為 myservlet_war_exploded/,是以得有myservlet_war_exploded/加hello,即

直接在尾部加hello就行了
hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

3.3.2 測試一下中文是否亂碼

我在Hello.java的servet中指點下utf-8編碼,現在我把hello servet改為 你好 servlet看一下是否中文亂碼

hualinux servlet 2.6: IDEA 2020.1 建立簡單的servlet

繼續閱讀