Reputation: 33
I am new to JSP and Servlet, I have to put multiple actions in one servlet such as update, delete , search . I have added My jsp and Servlet here .I also using jquery validations. can anyone please help me. If it is my question is not clear, please comment that.
<
form id="form-sign-up" class="styled" action="DepartmentServlet" method="post">
<fieldset>
<h3>Department </h3>
<ol>
<li class="form-row"><label>Department Id:</label>
<input type="text" name="departmentId" id="departmentId" class="text-input required"/><span id="errmsg"></span>
</li>
<li class="form-row"><label>Department Name:</label>
<input type="text" name="departmentName" id="departmentName" class="text-input required"/>
</li>
<li class="form-row"><label>Department Head:</label>
<select name="departmentHead" class="text-input required" id="myDropdown"style="width: 158px"> <option value="">Select Department Head</option>
<%
String val = "";
Department dp = new Department();
ResultSet rs = dp.getHeadOfDepartment();
while (rs.next()) {
val = rs.getString(2);
%>
<option value="<%= val%>"><%= val%></option>
<%
}
%>
</select>
</li>
<li class="form-row"><label>Appointed Date:</label>
<input id="demo1" name="appointedDate"type="text" maxlength="25" size="25" class="text-input required"><a href="javascript:NewCal('demo1','ddmmmyyyy',true,24)"><img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a>
<span class="descriptions">pick a date..</span>
</li>
<li class="button-row">
<input type="submit" value="ADD" id="add"class="btn-submit img-swap"/>
<input type="submit" value="Delete" class="btn-delete img-swap"/>
<input type="submit" value="Update" class="btn-update img-swap"/>
<input type="submit" value="Search" class="btn-search img-swap"/>
</li>
</ol>
</fieldset>
</form>
public class DepartmentServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Getting the Value from the viewer
String sdepartmentId=request.getParameter("departmentId");
String departmentName=request.getParameter("departmentName");
String departmentHead=request.getParameter("departmentHead");
String dateTime=request.getParameter("appointedDate");
//Converting to the String department id to integer
Integer departmentId=Integer.parseInt(sdepartmentId);
Department dp=new Department();
dp.setAppDate(dateTime);
dp.setDepartHead(departmentHead);
dp.setDepartId(departmentId);
dp.setDepartName(departmentName);
try {
new Department().insertDepartment(dp);
} catch (SQLException ex) {
Logger.getLogger(DepartmentServlet.class.getName()).log(Level.SEVERE, null, ex);
}
}
$(document).ready(function() {
$("#departmentId").keypress(function (e)
{
//if the letter is not digit then display error and don't type anything
if( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57))
{
//display error message
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
});
$('.btn-delete').click(function(e){
// Declare the function variables:
// Parent form, form URL, email regex and the error HTML
var $formId = $(this).parents('form');
var formAction = $formId.attr('action');
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var $error = $('<span class="error"></span>');
// Prepare the form for validation - remove previous errors
$('li',$formId).removeClass('error');
$('span.error').remove();
// Validate all inputs with the class "required"
$('.required',$formId).each(function(){
var inputVal = $("#departmentId").val();
var $parentTag = $("#departmentId").parent();
if(inputVal == ''){
$parentTag.addClass('error').append($error.clone().text('Required Field'));
}
// Run the email validation using the regex for those input items also having class "email"
// Check passwords match for inputs with class "password"
});
// All validation complete - Check if any errors exist
// If has errors
if ($('span.error').length > 0) {
$('span.error').each(function(){
// Set the distance for the error animation
var distance = 5;
// Get the error dimensions
var width = $(this).outerWidth();
// Calculate starting position
var start = width + distance;
// Set the initial CSS
$(this).show().css({
display: 'block',
opacity: 0,
right: -start+'px'
})
// Animate the error message
.animate({
right: -width+'px',
opacity: 1
}, 'slow');
});
} else {
$formId.submit();
}
// Prevent form submission
e.preventDefault();
});
// Fade out error message when input field gains focus
$('.required').focus(function(){
var $parent = $(this).parent();
$parent.removeClass('error');
$('span.error',$parent).fadeOut();
});
$('.btn-submit').click(function(e){
// Declare the function variables:
// Parent form, form URL, email regex and the error HTML
var $formId = $(this).parents('form');
var formAction = $formId.attr('action');
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var $error = $('<span class="error"></span>');
// Prepare the form for validation - remove previous errors
$('li',$formId).removeClass('error');
$('span.error').remove();
// Validate all inputs with the class "required"
$('.required',$formId).each(function(){
var inputVal = $(this).val();
var $parentTag = $(this).parent();
if(inputVal == ''){
$parentTag.addClass('error').append($error.clone().text('Required Field'));
}
// Run the email validation using the regex for those input items also having class "email"
if($(this).hasClass('email') == true){
if(!emailReg.test(inputVal)){
$parentTag.addClass('error').append($error.clone().text('Enter valid email'));
}
}
// Check passwords match for inputs with class "password"
if($(this).hasClass('password') == true){
var password1 = $('#password-1').val();
var password2 = $('#password-2').val();
if(password1 != password2){
$parentTag.addClass('error').append($error.clone().text('Passwords must match'));
}
}
});
// All validation complete - Check if any errors exist
// If has errors
if ($('span.error').length > 0) {
$('span.error').each(function(){
// Set the distance for the error animation
var distance = 5;
// Get the error dimensions
var width = $(this).outerWidth();
// Calculate starting position
var start = width + distance;
// Set the initial CSS
$(this).show().css({
display: 'block',
opacity: 0,
right: -start+'px'
})
// Animate the error message
.animate({
right: -width+'px',
opacity: 1
}, 'slow');
});
} else {
$formId.submit();
}
// Prevent form submission
e.preventDefault();
});
// Fade out error message when input field gains focus
$('.required').focus(function(){
var $parent = $(this).parent();
$parent.removeClass('error');
$('span.error',$parent).fadeOut();
});
});
Upvotes: 1
Views: 9412
Reputation: 2633
if you want to perform multiple operations using a single servlet , One Simple method is to create diffrent methods for each operations and call them accoding to your use.You can use a hidden filed or any how have to pass which operations have to perform and use an if statements to call this methods
<input type="hidden" name="operation" id="operId" value="insert" />
You can aceess this in the same way you access other fields and will get the specified value here you will get value as insert
and in servlet you can acess it using
String operation=request.getParameter("operation");
Upvotes: 0
Reputation: 1103
You can simply call your servlet method by javascript for example
in submit button i just use name attribute
<li class="button-row">
<input type="submit" value="ADD" id="add"class="btn-submit img-swap" name="add" />
<input type="submit" value="Delete" class="btn-delete img-swap" name="delete" />
<input type="submit" value="Update" class="btn-update img-swap" name="update" />
<input type="submit" value="Search" class="btn-search img-swap" name="search" />
</li>
you can call single servlet with multiple method in javascript by submit tag name as follows
<script type="text/javascript">
var frm = document.forms[0];
if (request.getParameter("add") != null) {
var pageName = "/DepartmentServlet?method=add"
frm.action = pageName;
frm.submit();
}
else if (request.getParameter("delete") != null) {
//likewise you can call your other method from DepartmentServlet
//Even you can pass parameter by onClick event
// Invoke action 2.
}
else if (request.getParameter("update") != null) {
// Invoke action 3.
}
</script>
Upvotes: 1