# 在Web-tomcat部屬-運行-訪問 ###### tags: `Java Web-Servlet` ## Tomcat基本介紹 ## 建立步驟 ### 步驟一:建立具備web性質的Module ![](https://i.imgur.com/OPCOna7.png) 直接新建時,可能沒有提供選項 ![](https://i.imgur.com/UwUiSSz.png) ![](https://i.imgur.com/EFtgkjG.png) 可直接右鍵該Module,選擇"Add Framework Support",並勾選Web Application,成為web性質的Module ![](https://i.imgur.com/lzzYexd.png) 成為web後,會出現web資料夾-WEB INF-web.xml web.xml是對web發出指令的重要檔案 ### 步驟二:完成html頁面 示範程式碼 ```htmlembedded= <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="add" method="post"> 名稱:<input type="text" name="fname"/><br/> 價格:<input type="text" name="price"/><br/> 庫存:<input type="text" name="fcount"/><br/> 備註:<input type="text" name="remark"/><br/> <input type="submit" value="添加"/><br/> </form> </body> </html> ``` #### 注意:html檔案務必要放在web資料夾底下,否則無法讀取 ![](https://i.imgur.com/mPMjOZB.png) ### 步驟三:建立對應指令的java文件 示範代碼 ```java= public class AddServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException { //get方式目前不需要設置編碼(基於tomcat8) //如果是get請求發送的中文數據,轉碼稍微有點麻煩(tomcat8之前) // String fname = request.getParameter("fname"); // //1.將字符串打散成字節數組 // byte[] bytes = fname.getBytes("ISO-8859-1"); // //2.將字符數組按照設定的編碼重新組裝成字符串 // fname = new String(bytes,"UTF-8"); //post方式下,設置編碼,防止中文亂碼 //需要注意的是,設置編碼這一句代碼必須在所有的獲取參數動作之前 request.setCharacterEncoding("UTF-8"); String fname = request.getParameter("fname"); String priceStr = request.getParameter("price"); Integer price = Integer.parseInt(priceStr); String fcountStr = request.getParameter("fcount"); Integer fcount = Integer.parseInt(fcountStr); String remark = request.getParameter("remark"); FruitDAO fruitDao = new FruitDAOImpl(); boolean flag = fruitDao.addFruit(new Fruit(0,fname,price,fcount,remark)); System.out.println(flag ? "添加成功" : "添加失敗!"); } } ``` #### 說明: ```xml= <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>AddServlet</servlet-name> <servlet-class>com.servlets.AddServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AddServlet</servlet-name> <url-pattern>/add</url-pattern> </servlet-mapping> <!-- 1.用戶發請求,action = add 2.項目中,web.xml中找到url-pattern = /add ->第12行 3.找第11行的 servlet-name = AddServlet 4.找和servlet-mapping中servlet-name一致的servlet,找到第7行 5.找第8行的servlet-class ->AddServlet 6.用戶發送的是post請求(method = post),因此tomcat會執行AddServlet中的doPost方法 --> </web-app> ``` ### 步驟四:tomcat的設置 1.在libraries新增mysql的驅動包 ![](https://i.imgur.com/MCcPnei.png) 2.先在Project Structure中的Module中,選擇對應的Module,並且在Dependencies添加Tomcat以及mysql的驅動包 ![](https://i.imgur.com/GdZ7v0o.png) 3.在Artifacts生成對應Module的Artifacts ![](https://i.imgur.com/TarbuW7.png) 4.到Run/Debug添加對應的Artifacts,可以順便修改下方的context root(網頁連接所使用的名稱) ![](https://i.imgur.com/bNzluOS.png) 5.在URL輸入對應的context root/網頁名稱.html Application server要設置對應版本的Tomcat ![](https://i.imgur.com/YpT39JO.png)