2013-03-16 15 views
5

Tôi đã tạo một servlet đơn giản chỉ với một phương thức System.out.println() trong cơ thể doGet, nhưng khi tôi chạy nó trong Tomcat 7 sử dụng IntelliJ Idea 12 Tôi nhận được thông báo rằng phương thức System.out.println() in hai lần.phương thức doGet được gọi hai lần trong một servlet chạy trong tomcat 7 và được tạo bằng IntelliJ Idea 12

Đây là web.xml của tôi:

<?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> 

Đây là 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."); 
    } 
} 

Đây là 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> 

..và đây là một hình ảnh của cài đặt Tomcat 7:

Tomcat settings

+1

Điều này xảy ra vì IDEA truy vấn URL trong cấu hình chạy sau khi khởi động máy chủ để kiểm tra triển khai ứng dụng đã thành công hay không. – CrazyCoder

+0

Yêu cầu http từ trình duyệt là gì? Bạn làm nghề gì? –

+0

Url trình duyệt là http: // localhost: 8080/SimpleServletPath – skiabox

Trả lời

1

Tôi đã thay đổi ánh xạ url thành/và bây giờ tôi có cả trang jsp đơn giản chạy tại http://localhost:8080/SimpleServerProject và servlet của tôi chạy phương thức doGet chỉ một lần!