2013-03-05 1 views
-1

Java 웹 응용 프로그램의 소스 패키지에 내 Java 프로젝트를 연결했습니다. 나는 "System"이라는 하나의 서블릿을 만들었고, 내가하려는 것은 백엔드 어플리케이션을위한 프론트 엔드를 만드는 것이다.Java 서블릿 양식 동작 문제

하지만 문제는 "프로세스 등록자"양식에서 제출 작업의 "processreadregister"에 대한 두 번째 작업으로 리디렉션 할 수 없다는 것입니다. 따라서 사용자가 양식을 채울 때 정보를 얻을 수 있고 내 백엔드에 대한 내 세트를 호출하여 등록을 수행 할 수 있으며 분명히 그것이 성공했는지 여부를 알 수 있습니다.

서블릿에는 익숙하지 않으므로 나는 완전히 잘못되어 잘못된 동작을 호출 할 것입니다.

코드 샘플 :

package HPC; 

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
import hpcproject.HPCSystem; 
import hpcproject.JobRequest; 
import hpcproject.User; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 


/** 
* 
* @author Kieran 
*/ 
@WebServlet(name = "System", urlPatterns = {"/System"}) 
public class System extends HttpServlet { 

    HPCSystem System = new HPCSystem(); 

    public enum OPCode { 
// specify enums to methods 

     BOOKING, READBOOKING, NOTHING; 

     public static System.OPCode resolve(String str) { 
      try { 
       return valueOf(str.toUpperCase()); 
      } catch (Exception e) { 
       return NOTHING; 
      } 
     } 
    } 

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


     switch (System.OPCode.resolve(request.getParameter("action"))) { 
      case REGISTER: 
       processRegister(request, response); 
       break; 
      case READREGISTER: 
       processReadRegister(request, response); 
       break; 

     } 
    } 


    protected void processRegister(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter out = response.getWriter(); 
     User testUser = new User(); 
     System.RegisterUserWithSystem(testUser); 
     // point where it goes 

     out.println("<html>"); 
     out.println("<head>"); 
     out.println("<title>Register Process</title>"); 
     out.println("</head>"); 
     out.println("<body>"); 
     out.println("<FORM NAME ='register' ACTION ='readregister' METHOD='POST>'"); 
     // SORT OUT ISSUE HERE!!! 
     out.println("<input type='hidden' name='action' value='readregister'>"); 
     out.println("<br>"); 
     out.println("Login ID:"); 
     out.println("<INPUT TYPE='TEXT' name='user'>"); 
     out.println("<br>"); 
     out.println("Password:"); 
     out.println("<INPUT TYPE='PASSWORD' name='password'>"); 
     out.println("<br>"); 
     out.println("Department:"); 
     out.println("<INPUT TYPE='TEXT' name='department'>"); 
     out.println("<br>"); 
     out.println("Email:"); 
     out.println("<INPUT TYPE='TEXT' name='email'>"); 
     out.println("<br>"); 
     out.println("First name:"); 
     out.println("<INPUT TYPE='TEXT' name='fname'>"); 
     out.println("<br>"); 
     out.println("Last name:"); 
     out.println("<INPUT TYPE='TEXT' name='lname'>"); 
     out.println("<br>"); 
     out.println("<INPUT TYPE='SUBMIT' VALUE='Submit' onclick=setType('readregister') >"); 
     out.println("</FORM>"); 
     out.println("</body>"); 
     out.println("</html>"); 
    } 

    protected void processReadRegister(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter out = response.getWriter(); 
     User testUser = new User(); 


      String id = request.getParameter("user"); 
      String password = request.getParameter("password"); 
      String department = request.getParameter("department"); 
      String email = request.getParameter("email"); 
      String myfirstname = request.getParameter("fname"); 
      String mylastname = request.getParameter("lname"); 

      testUser.setUserID(id); 
      testUser.setUserPassword(password); 
      testUser.setUseDepartment(department); 
      testUser.setUserEmail(email); 
      testUser.setUserFname(myfirstname); 
      testUser.setUserLname(mylastname); 

      if (System.RegisterUserWithSystem(testUser)) { 
       out.println("User added successfully"); 
      } else { 
       out.println("Failed to add user"); 
      } 
      out.println("<html>"); 
     out.println("<head>"); 
     out.println("<title>Charts</title>"); 
     out.println("</head>"); 
     out.println("<body>"); 
     out.println("<p>View Charts</p>"); 
     out.println("</body>"); 
     out.println("</html>"); 


    } 


    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     doGet(request, response); 
    } 
} 
+1

귀하는 입력하신 내용을 모두 ''에게 보내지 않았습니다. –

답변

0

<form> 태그 "specifies where to send the form-data when a form is submitted"의 action 속성. ACTION ='readregister'을 사용 중이며 POSTreadregister에 보내려고합니다. 맵핑이 없으므로 의미가 없습니다. action 속성을 서블릿의 매핑 인 /System으로 변경하십시오.

out.println("<FORM NAME ='register' ACTION ='readregister' METHOD='POST>'"); 

out.println("<FORM NAME ='register' ACTION ='readregister' METHOD='POST'>"); 

으로 통지 > 전에 마지막 따옴표 '해야한다 :

당신은 다른 작은 실수 있습니다.

자바 서블릿의 JSP 및 다른 HTML 렌더링 기술을 실제로 조사해야합니다. 자바에 직접 HTML을 쓰는 것은 정말 나쁜 습관이다.

+0

대단히 고맙습니다. 지금은 잘 지내고 있습니다. 작은 실수는 종종 발견하기 어렵습니다. –