2013-03-16 270 views
5

我已經在doGet主體中創建了一個只有一個System.out.println()方法的簡單servlet,但是當我在Tomcat中運行它時7使用IntelliJ Idea 12我得到System.out.println()方法打印兩次的消息。doGet方法在Tomcat 7中運行的servlet中調用兩次,並使用IntelliJ Idea 12創建

這是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
      version="3.0"> 

    <servlet> 
     <description>A simple servlet</description> 
     <display-name>SimpleServlet</display-name> 
     <servlet-name>SimpleServlet</servlet-name> 
     <servlet-class>org.skiabox.myservlet.SimpleServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>SimpleServlet</servlet-name> 
     <url-pattern>/SimpleServletPath</url-pattern> 
    </servlet-mapping> 
</web-app> 

這是SimpleServlet.java:

package org.skiabox.myservlet; 

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

public class SimpleServlet extends HttpServlet { 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     System.out.println("Hello from GET method."); 
    } 
} 

這是SimpleServletProject.iml:

<?xml version="1.0" encoding="UTF-8"?> 
<module type="JAVA_MODULE" version="4"> 
    <component name="FacetManager"> 
    <facet type="web" name="Web"> 
     <configuration> 
     <descriptors> 
      <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" /> 
     </descriptors> 
     <webroots> 
      <root url="file://$MODULE_DIR$/web" relative="/SimpleServletProject" /> 
     </webroots> 
     </configuration> 
    </facet> 
    </component> 
    <component name="NewModuleRootManager" inherit-compiler-output="true"> 
    <exclude-output /> 
    <content url="file://$MODULE_DIR$"> 
     <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> 
    </content> 
    <orderEntry type="inheritedJdk" /> 
    <orderEntry type="sourceFolder" forTests="false" /> 
    <orderEntry type="library" scope="PROVIDED" name="Tomcat 7.0" level="application_server_libraries" /> 
    </component> 
</module> 

..和這是一個Tomcat 7設置圖像:

Tomcat settings

+1

發生這種情況是因爲在啓動服務器以檢查應用程序部署是否成功後,IDEA將在運行配置中查詢URL。 – CrazyCoder 2013-03-16 01:00:32

+0

什麼是瀏覽器的http請求?你是做什麼? – 2013-03-16 01:11:56

+0

瀏覽器url是http:// localhost:8080/SimpleServletPath – skiabox 2013-03-16 01:34:04

回答

1

我已經將url映射更改爲/,現在我的兩個簡單jsp頁面都運行在http://localhost:8080/SimpleServerProject,而我的servlet只運行一次doGet方法!

相關問題