جاوا سرولت

سرولت برنامه‌ای در زبان برنامه‌نویسی جاوا برای توسعه توانایی‌های سرورها است، هرچند سرولت‌ها می‌توانند به هر نوع درخواستی پاسخ دهند، اما بیشترین کاربرد را در استقرار برنامه‌هایی با قابلیت استقرار روی وب سرورها دارند،و می‌توان سرولت جاوا را نمونه‌ای مانند پی اچ پی ای اس پی دات نت دانست.
یک سرولت کلاسی از جاواست که در جاوای سازمانی مطابق با رابط برنامه‌نویسی سرولت جاواست، پروتکلی که مسئول پاسخ به درخواست است. آن‌ها تنها به پروتکل مشتری-سرور محدود نمی‌شود، ولی بیشتر مواقع از پروتکل انتقال ابرمتن استفاده می‌نماید. بنابراین کلمهٔ سرولت بیشتر بر اچ‌تی‌تی‌پی سرولت دلالت دارد. توسعه‌دهندهٔ نرم‌افزار از سرولت برای اضافه کردن محتوای پویا به سرور وب با استفاده از سکوی جاوا استفاده می‌نماید. صفحهٔ تولید شده عمدتاً شامل محتوای اچ‌تی‌ام‌ال است ولی گاهی نیز سایر داده‌های مانند اکس‌ام‌ال را نیز شامل می‌شود. سرولت‌ها، همتای مبتنی بر جاوای فناوری‌هایی غیر جاوایی مانند سی‌جی‌ال و صفحه‌های سرور فعال است. سرولت‌ها می‌توانند حالت وضعیت متغیرها را در یک نشست حفظ نمایند. این کار به کمک کوکی اچ‌تی‌تی‌پی و موتور بازنویسی انجام می‌دهند.

نمونه

نمونهٔ زیر عبارت «سلام دنیا» را بر صفحهٔ وب نمایش می‌دهد. 
توجه نمایید که HttpServlet زیر کلاسی از GenericServlet است که از پیاده‌سازیِ رابط Servlet بدست آمده‌است.
متد service() درخواست دریافتی را به متدهای doGet()، doPost()، doPut() ، doDelete() و مانند آن‌ها ارسال می‌نماید که منطبق با درخواست دریافت شده‌باشد.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String action=request.getParameter("action");
EmployeeManager eMgr=new EmployeeManager();
if(action==null)
{
action="";
}
else if(action.equals("create"))
{
Employee emp=eMgr.Populate(request);
try
{
eMgr.create(emp);
}
catch(SQLException e)
{
System.out.println("Exception="+e);
}

finally
{
RequestDispatcher disp=request.getRequestDispatcher("/jsp/confirmation.jsp");
disp.forward(request,response);
}
}

else if(action.equals("view"))
{
ArrayList<Employee> empList=new ArrayList<Employee>();
try
{
empList=eMgr.view();
}
catch(SQLException e)
{
e.printStackTrace();
}

request.setAttribute("empList1",empList);
RequestDispatcher disp=request.getRequestDispatcher("/jsp/view.jsp");
disp.forward(request, response);}


else if(action.equals("Update"))
{
String empId = null;
empId = request.getParameter("empRadio");
Employee empRecord = new Employee();
if(empId==null)
{
empId = " ";
}
System.out.println(empId);
try 
{
empRecord = eMgr.empRecord(empId);
} 
catch (SQLException e) 
{
e.printStackTrace();
}

request.setAttribute("empRecord",empRecord);
RequestDispatcher disp = request.getRequestDispatcher("/jsp/update.jsp");
disp.forward(request, response);
}
else if(action.equals("updateAddress"))
{
String newContactNo=null;
String newAddress=null;
String empId=null;

newAddress = request.getParameter("newAddress");
newContactNo = request.getParameter("newContactNo");
empId=request.getParameter("empId");
try 
{
eMgr.updateAddress(empId,newAddress,newContactNo);
}
catch (SQLException e) 
{
e.printStackTrace();
}
RequestDispatcher disp = request.getRequestDispatcher("/EmployeeController?action=view");
disp.forward(request, response);
}


else if(action.equals("Delete"))
{
String empId=null;
empId=request.getParameter("empRadio");
int flag=0;
try 
{
flag = eMgr.delete(empId);
} 
catch (SQLException e) 
{
e.printStackTrace();
}
RequestDispatcher disp = request.getRequestDispatcher("/EmployeeController?action=view");
disp.forward(request, response);
}


else if(action.equals("Search"))
{
String empId = null;
empId = request.getParameter("search");
Employee empRecord = new Employee();
if(empId==null)
{
empId = " ";
}
System.out.println(empId);
try 
{
empRecord = eMgr.empRecord(empId);
} 
catch (SQLException e) 
{
e.printStackTrace();
}

request.setAttribute("empRecord2",empRecord);
RequestDispatcher disp = request.getRequestDispatcher("/jsp/viewSearch.jsp");
disp.forward(request, response);
}}}