2017-04-24 1 views
0

오류가 발생했습니다. 이유는 알 수 없습니다. 나는이 프로젝트가 :Java Apache Tomcat 필요한 리소스를 찾을 수 없습니다.

enter image description here

을 그리고 내가 그것을 registro.html 실행하면 잘 작동 :

enter image description here

을하지만 난 코드에 게시물을 제출할 때 내가 그것을 Registro에 도달 나던 생각합니다. 자바

enter image description here

registro.html의 코드는 :

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="ISO-8859-1"> 
     <title>Registro</title> 
    </head> 
    <body> 
     <form action="http://localhost:8080/Ejer2/Registro.java" method="POST"> 
      <input type=hidden name=registro value=resultadoRegistro> 
      <BR><BR>Username: <input type=text name=user> 
      <BR><BR>Password: <input type=password name=pass> 
      <BR><BR><input type=submit value="Enviar"><input type=reset> 
     </form> 
    </body> 
</html> 

및 Registro.java에서

이 하나

package Ejer2; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import javax.servlet.*; 



@SuppressWarnings("deprecation") 
public class Registro extends HttpServlet implements SingleThreadModel{ 
    private static final long serialVersionUID = 1L; 



    public Registro() { 
     super(); 

    } 



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


    } 


    protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 
     HttpSession session=req.getSession(true); 
     Usuario miuser=(Usuario)session.getValue(session.getId()); 
     if(miuser==null){ 
      miuser=new Usuario(req.getParameter("user"),req.getParameter("password")); 
      session.putValue(session.getId(),miuser); 
     } 
     res.setContentType("text/html"); 

     String user=req.getParameter("user"); 
     //String pass = req.getParameter("pass"); 

     PrintWriter toClient = res.getWriter(); 
     toClient.println("<html>"); 
     toClient.println("<title>REGISTRO REALIZADO</title>"); 
     toClient.println("Usuario "+user+" registrado con exito"); 
     toClient.println("</html>"); 

     toClient.close(); 
    } 

} 

문제가 무엇입니까?

답변

1

당신은 사용하거나 직접 HTML 내부에 Registro.java처럼 호출 할 수 없습니다 action 아래 그림과 같이 오히려 당신은 당신의 Registro 서블릿 클래스의 URL 패턴을 매핑해야합니다

@WebServlet(urlPatterns="/Registro") 
public class Registro extends HttpServlet implements SingleThreadModel{ 
    //Add your code here 
} 

지금 urlPattern 구성 위의 사용 당신의 registro.html에서 action로, 아래 : 다른 중요한

<form action="/Registro" method="POST"> 

또한 요점은 SingleThreadModel을 Servlet 클래스에 사용할 필요가 없다는 것입니다 (모든 요청은 동일한 서블릿 인스턴스를 사용하여 제공되기 때문에). SingleThreadModel을 그대로 사용하면 그대로 둘 수 있습니다.

+0

서블릿 클래스에서 어떤 파일을 참조합니까? – 19mike95

+0

당신의'Registro' 클래스를 의미합니다. – developer

+0

Ok 그래서 WebServlet을 타입으로 해석 할 수 없다고 말합니다. – 19mike95

관련 문제