2014-02-09 85 views
0

我在WebContent文件夹中创建了一个jsp file,它有一个表单。请求的资源不可用。 Apache Tomcat/7.0.42

形式的作用是Servlet,但是当我点击提交按钮,我得到这个消息:

enter image description here

这是我的项目结构:

enter image description here

我该如何解决这个问题?

编辑1:

这是我的JSP文件:

<%@ include file="inc/header.jsp" %> 
<h1>Créer un compte!</h1> 

<form action="Registration" method="post"> 
    <fieldset> 
     <legend>Informations personnels</legend> 
     <label for="nom">Nom </label> 
     <input type="text" name="nom"> 
     <label for="prenom">Prénom </label> 
     <input type="text" name="prenom"> 
     <label for="email">E-Mail </label> 
     <input type="text" name="email"> 
     <label for="sexe">Sexe </label> 
     <div class="radio_check"> 
      <input type="radio" value="F" name="sexe"> Mâle 
      <input type="radio" value="F" name="sexe"> Female 
     </div> 
     <label for="dateNaissance">Date de naissance : </label> 
     <input type="datetime" name="dateNaissance"> 
    </fieldset> 
    <fieldset> 
     <legend>Infos de connexion</legend> 
     <label for="pseudo">Pseudo </label> 
     <input type="text" name="pseudo"> 
     <label for="mdp">Mot de passe </label> 
     <input type="text" name="mdp"> 
     <label for="mdp2">Confirmation du mot de passe </label> 
     <input type="text" name="mdp2"> 
     <div class="radio_check"> 
      <label for="abonner"><input type="checkbox" name="abonner">Abonnez-vous au blog</label> 
     </div> 
    </fieldset> 
    <input type="submit" value="Créer un compte"> 
</form> 

<%@ include file="inc/footer.jsp" %> 

,这是我的Servlet:

package com.tp1.servlets; 

    import java.io.IOException; 
    import java.text.ParseException; 
    import java.text.SimpleDateFormat; 
    import java.util.Date; 

    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 com.tp1.beans.Compte; 

    /** 
    * Servlet implementation class Authentification 
    */ 
    @WebServlet("/Authentification") 
    public class Registration extends HttpServlet { 
     private static final long serialVersionUID = 1L; 

     public Registration() { 
      super(); 
     } 


     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     } 

     /** 
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
     */ 
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      String nom    = request.getParameter("nom"); 
      String prenom   = request.getParameter("prenom"); 
      String email   = request.getParameter("email"); 
      String sexe    = request.getParameter("sexe"); 
      Date dateNaissance; 
      try { 
       dateNaissance = new SimpleDateFormat("dd-MM-yyyy").parse(request.getParameter("dateNaissance")); 
      } catch (ParseException e) { 
       dateNaissance = new Date(); 
      } 
      String pseudo   = request.getParameter("pseudo"); 
      String mdp    = request.getParameter("mdp"); 
      Boolean abonner   = request.getParameter("abonner") == "on" ? true : false; 

      Compte c = new Compte(nom, prenom, email, sexe, dateNaissance, pseudo, mdp, abonner); 

      request.setAttribute("compte", c); 

      this.getServletContext().getRequestDispatcher("signup_successful.jsp").forward(request, response); 
     } 

    } 
+0

请更新您的问题并添加一些代码,可能是servlet和JSP? – Patrick

+0

@Patrick Done :) –

+1

将@WebServlet(“/ Authentication”)更改为@WebServlet(“/ Registration”)或调用身份验证而不是注册 – Patrick

回答

1

的JSP保持不变。

这里是servlet的代码:

import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import javax.servlet.ServletContext; 
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 com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException; 

@WebServlet("/Registration") 
public class Registration extends HttpServlet { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 3480182983284787792L; 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String nom    = request.getParameter("nom"); 
     String prenom   = request.getParameter("prenom"); 
     String email   = request.getParameter("email"); 
     String sexe    = request.getParameter("sexe"); 
     Date dateNaissance; 
     try { 
      dateNaissance = new SimpleDateFormat("dd-MM-yyyy").parse(request.getParameter("dateNaissance")); 
     } catch (ParseException e) { 
      dateNaissance = new Date(); 
     } 
     String pseudo   = request.getParameter("pseudo"); 
     String mdp    = request.getParameter("mdp"); 
     Boolean abonner   = request.getParameter("abonner") == "on" ? true : false; 

     Compte c = new Compte(nom, prenom, email, sexe, dateNaissance, pseudo, mdp, abonner); 

     request.setAttribute("compte", c); 

     ServletContext context = getServletContext(); 
     context.getRequestDispatcher("signup_successful.jsp").forward(request, response); 
    } 


    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 
     processRequest(req, resp); 
    } 

    @Override 
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 
     processRequest(req, resp); 
    } 


} 

我只加了一个方法较多,被称为的processRequest,有时你不得不在doGet和doPost方法相同OPS的例子,所以你只需要改变一部分也影响其他人。

希望这可以解决您的问题。 Patrick

0

我想我们也可以在doGet()中调用doPost()方法。

试试这个,告诉我们。

希望它能帮助你。