I'm working on a project and I'm trying to get an HTML form data into my REST web service, so I can insert it into my database, I don't know where to get the HTML form data from.
This is my web service:
package hananepkg;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PUT;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
/**
* REST Web Service
*
* @author mon pc
*/
@Path("generic")
public class GenericResource {
DBConnector db = new DBConnector();
@Context
private UriInfo context;
/**
* Creates a new instance of GenericResource
*/
public GenericResource() {
}
/**
* Retrieves representation of an instance of pkg.GenericResource
* @return an instance of java.lang.String
*/
@GET
@Produces(MediaType.TEXT_HTML)
public String insert(@QueryParam ("name")String name,@QueryParam ("email")String email,@QueryParam ("password")String password,@QueryParam ("confirmpassword")String confirmpassword) {
//TODO return proper representation object
return "<html><body><h1>"+db.insertData(name,email,password,confirmpassord)+"</body></h1></html>";
}
/**
* PUT method for updating or creating an instance of GenericResource
* @param content representation for the resource
*/
@PUT
@Consumes(MediaType.TEXT_HTML)
public void putHtml(String content) {
}
}
This is my html page:
<section id="contact" class="contact3">
<div class="container" data-aos="fade-up">
<div class="section-title">
<h2>Sign In</h2>
</div>
<div class="col-lg-6 mt-5 mt-lg-0" data-aos="fade-left" data-aos-delay="100">
<form action="forms/contact.php" method="post" role="form" class="php-email-form">
<div class="form-row">
<div class="col-md-6 form-group">
<input type="text" name="name" class="form-control" id="name" placeholder="Username" data-rule="minlen:4" data-msg="Please enter at least 4 chars" />
<div class="validate"></div>
</div>
<div class="col-md-6 form-group">
<input type="email" class="form-control" name="email" id="email" placeholder="Email" data-rule="email" data-msg="Please enter a valid email" />
<div class="validate"></div>
</div>
</div>
<div class="form-group">
<input type="password" class="form-control" name="subject" id="password" placeholder="Password" data-rule="minlen:4" data-msg="Please enter at least 8 chars of subject" />
<div class="validate"></div>
</div>
<div class="form-group">
<input type="password" class="form-control" name="subject" id="confirmpassword" placeholder="Confirm Password" data-rule="minlen:4" data-msg="Please enter at least 8 chars of subject" />
<div class="validate"></div>
</div>
<div class="text-center"><button id="submit" type="submit">Sign In</button></div>
</form>
</div>
</div>
</div>
</section>
<script type="text/javascript">
$(document).ready(function() {
$("#submit").click(function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "http://localhost:8080/HananeTest/",
data: formToJSON(),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data)
{
alert('Success');
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('Error: ' + textStatus);
}
});
});
});
function formToJSON()
{
return JSON.stringify
({
"username": $('#name').val(),
"email": $('#email').val(),
"password": $('#password').val()
"password": $('#confirmpassword').val() });
};
</script>
Any suggestions how to get the input data into my web service so I can insert it to my database?