IDEA community + Gradle + Gretty 調試 servlet 應用
阿新 • • 發佈:2018-04-07
pac eth tty 項目結構 () oca ann con getwriter
---恢復內容開始---
參考:https://guides.gradle.org/building-java-web-applications
打包war只需要Gradle面板中選擇build.build任務即可,就不詳細說了,下面主要說如何調試
IDEA創建gradle項目,項目結構如下
各個文件:
build.gradle
// https://guides.gradle.org/building-java-web-applications plugins { id ‘java‘ id ‘war‘ id ‘org.akhikhl.gretty‘ version ‘1.4.2‘ } group‘ServletDemo‘ version ‘1.0-SNAPSHOT‘ sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { // https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api providedCompile group: ‘javax.servlet‘, name: ‘javax.servlet-api‘, version: ‘3.1.0‘ testCompile group: ‘junit‘, name: ‘junit‘, version: ‘4.12‘ }
HelloServlet.java
package servlets; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(name= "HelloServlet", urlPatterns = {"hello"}, loadOnStartup = 1) public class HelloServlet extends HttpServlet { int i = 0; // Servlet "persistence" protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.getWriter().print("Hello, World! " + i++); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); if (name == null) name = "World"; request.setAttribute("user", name); request.getRequestDispatcher("response.jsp").forward(request, response); } } ///:~
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Servlet Demo</title> </head> <body> <p>Say <a href="hello">Hello</a></p> <form method="post" action="hello"> <h2>Name:</h2> <input type="text" id="say-hello-text-input" name="name" /> <input type="submit" id="say-hello-button" value="Say Hello" /> </form> </body> </html>
response.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello Page</title> </head> <body> <h2>Hello, ${user}!</h2> </body> </html>
然後點擊左側的Gradle面板,選擇任務gretty.appRun就可以啟動app,通過localhost:8080訪問
如果要 調試,那麽在Gradle面板中選擇任務gretty.appRunDebug,啟動該任務後,選擇Run->Edit Configurations 然後添加一個Remote Run/Debug,如下圖,名為DebugServletDemo,根據gretty官方文檔,默認debug port是5005,所以這裏填好host和port
然後在Gradle面板中啟動任務gretty.appRunDebug,如下圖Run選項卡中所示,在5005端口等待Debugger的連接
接下來再啟動Run->Debug->DebugServletDemo,如下圖Debug選項卡中所示,Debugger已連接上5005端口
此時再次查看Run選項卡,會發現其中內容如下,點擊該http鏈接開始調試
IDEA community + Gradle + Gretty 調試 servlet 應用