1

Я пытаюсь создать страницу, которая будет кодировать, что будет принимать информацию о студентах из html и использовать сервлеты Java, чтобы поймать информацию и поместить ее в Google Cloud Datastore.Ввод данных в Google Cloud Datastore

У меня работает HTML, но всякий раз, когда я пытаюсь запустить его, страница просто обновляется и не помещает ничего в облачный хранилище данных.

Я новичок в сервлетах, поэтому я не уверен, что мне не хватает.

Ниже СПЯ файл (т.е. add_student.jsp)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 


    <a href="add_student">Add Student</a> 
    <a href="search_student">Search Student</a> 
    <a href="update_student">Update Student</a> 
    <a href="delete_student">Delete Student</a> 


    <form method="post"> 
       <p>Student Number  <input name="student_number" type="number" required /></p> 
       <p>First Name   <input name="f_name"   type="text" required/></p> 
       <p>Last Name   <input name="l_name"   type="text" required/></p> 
       <p>Address (temporary) <input name="temp_address"   type="text" required/></p> 
       <p>Address (permanent) <input name="perm_address"   type="text" required/></p> 
       <p>Home Number   <input name="home_number"  type="number" required/></p> 
       <p>Mobile Number  <input name="mobile_number"  type="number" required/></p> 
       <p>Date of Birth  <input name="birth_date"  type="date" required/></p> 

       <p>Gender   <p>Gender: <br> 
            <input type="radio" name="gender" value="M" required checked> Male<br> 
            <input type="radio" name="gender" value="F" required> Female<br> 

       <p>Major   <input name="major" type="text" required/></p> 
       <p>Course   <input name="course" type="text" required/></p> 


       <p>Study Mode  <p>Study Mode: <br> 
            <input type="radio" name="study_mode" value="full_time" checked> Full-Time<br> 
            <input type="radio" name="study_mode" value="part_time" required> Part-Time<br> 

       <p>Start Date  <input name="start_date"   type="date" required /></p> 
       <p>End Date   <input name="end_date"    type="date" required /></p> 

       <p>Add Student  <input name="submitButton"   type="submit" value="addStudent" /></p> 
      </form> 

</body> 
</html> 

Вот файл Java Servlet (т.е. add_studentServlet.java)

package assignment_redo; 

import java.io.IOException; 
import javax.servlet.http.*; 

import com.google.appengine.api.datastore.*;//import the datastore files from google 

@SuppressWarnings("serial") 
public class add_studentServlet extends HttpServlet { 

    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { 

     resp.setContentType("text/html"); 
     String title ="Using the GET Method to Read Form Data!"; 


       String student_number = req.getParameter("student_number"); 
       String f_name =req.getParameter("f_name"); 
       String l_name=req.getParameter("l_name"); 
       String perm_address = req.getParameter("perm_address"); 
       String temp_address = req.getParameter("temp_address"); 
       String home_number = req.getParameter("home_number"); 
       String mobile_number = req.getParameter("mobile_number"); 
       String birth_date = req.getParameter("birth_date"); 
       String gender = req.getParameter("gender"); 
       String major = req.getParameter("major"); 
       String course = req.getParameter("course"); 
       String study_mode = req.getParameter("study_mode"); 
       String start_date = req.getParameter("start_date"); 
       String end_date = req.getParameter("end_date"); 


//    //creating an object of type DatastoreService 
       DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 

       //creating a new entity of type employee 
       Entity student = new Entity("Student", student_number); 

       //set its properties 
       student.setProperty("f_name", f_name); 
       student.setProperty("l_name", l_name); 
       student.setProperty("student_number", student_number); 
       student.setProperty("temp_address", temp_address); 
       student.setProperty("perm_address", perm_address); 
       student.setProperty("home_number", home_number); 
       student.setProperty("mobile_number", mobile_number);     
       student.setProperty("birth_date", birth_date); 
       student.setProperty("gender", gender);    
       student.setProperty("major", major); 
       student.setProperty("course", course); 
       student.setProperty("study_mode", study_mode);    
       student.setProperty("start_date", start_date); 
       student.setProperty("end_date", end_date); 

       //insert student entity into Datastore 
       datastore.put(student); 

       //display success message now 
       resp.getWriter().println("Student with id "+student_number+" added to the system!"); 

    } 
} 

ответ

1

Вы должны указать в вашем JSP, что вы отправьте форму на ваш сервлет:

<form action="addStudent" method="post"> 

Это делает предположение, что в web.xml y НУ настроили ваш сервлет следующим образом:

<servlet> 
    <servlet-name>add_studentServlet</servlet-name> 
    <servlet-class>assignment_redo.add_studentServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>add_studentServlet</servlet-name> 
    <url-pattern>/addStudent</url-pattern> 
</servlet-mapping> 

Тогда вы должны поместить свой код в doPost вашего сервлета, а не в doGet.

+0

PS: вы должны взглянуть на Objectify, API доступа к данным Java для хранилища данных. Это облегчает ситуацию. https://github.com/objectify/objectify –