2016-01-19 118 views
0

this is structure of project这个servlet被放置在小服务程序包简单的J2EE程序不工作

package Servlets; 

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

public class OpenAccountServlet extends HttpServlet { 
    public void init(ServletConfig config) throws ServletException{ 
     super.init(config); 
    } 
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ 
     response.setContentType("text/html"); 
     PrintWriter out= response.getWriter(); 
     String firstName=request.getParameter("firstname"); 
     String lastName=request.getParameter("lastname"); 
     String fatherName=request.getParameter("fathername"); 
     String webPage=null; 
     webPage+="<html>"; 
     webPage+="<head>"; 
     webPage+="</head>"; 
     webPage+="<body>"; 
     webPage+=firstName; 
     webPage+=lastName; 
     webPage+=fatherName; 
     webPage+="</body>"; 
     webPage+="</html>"; 
     out.println(webPage); 
     out.close(); 
    } 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ 
     doGet(request,response); 
    } 
    public void destroy(){ 

    } 
} 

这是我使用的用于从用户接受数据jsp页面。

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <form method="post" action="openaccount.do"> 
    <table> 
     <tr> 
     <td>First Name</td> 
     <td><input type="text" name="firstname" value=""></td> 
     </tr> 
     <tr> 
     <td>Last Name</td> 
     <td><input type="text" name="lastname" value=""></td> 
     </tr> 
     <tr> 
     <td></td> 
     <td><input type="submit" name="submit" value="Submit"> 
      <input type="button" name="cancel" value="Cancel"> 
     </td> 
     </tr> 
    </table> 
    </form> 
</body> 
</html> 

,这是我的web.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_3_1.xsd" 
     version="3.1"> 
    <servlet> 
     <servlet-name>Open_Account_controller</servlet-name> 
     <servlet-class>Servlets.OpenAccountServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Open_Account_controller</servlet-name> 
     <url-pattern>/openaccount.do</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

,每当我试图运行此,404错误。我正在使用intelliJ IDE IDE进行开发,并使用64位tomcat。

+0

网址是什么让你404? – Jaskey

+0

它是这样的http:// localhost:8080/WebAppName/openaccount.do ..................提交表单后说资源未找到 – Aniket

+0

什么是你的jsp页面的路径?它的localhost:8080/WebAppName/index.jsp? – Jaskey

回答

0

尝试<form method="post" action="../openaccount.do">
当您删除前导../它会尝试加载相对于当前目录的网址。

更好的是使用一种更通用的形式,如:
action="${pageContext.request.contextPath}/openaccount.do"

+0

实际用于tomcat服务器8,url-mapping无法正常工作。如果我在DD和** servlet/servlet1 **中使用**/servlet/***形式** action **属性,那么在tomcat服务器7中不会有任何问题。 tomcat服务器可以很好地找到jsp资源。但同样,tomcat服务器8找不到jsp的正确路径。 tomcat服务器8版本中是否发生过任何更改? – Aniket

+0

@Aniket据我所知,没有会影响URL映射的更改。如果相同的代码在tomcat 8中不起作用,那么当您提交表单时,到底发生了什么404?如果你直接在浏览器中输入servlet url呢? –

+0

好,让我夹住你的问题的所有答案。然后我会在这里回复。感谢您的帮助! – Aniket