I'm starting off in NetBeans, and implementing a form which, when you press the "submit" button, performs validation and tells you if the data entered is correct. I haven't gotten to the validation part yet, for the moment all I'm trying to do is, when the "submit" button is clicked, a message pops up. I'm having trouble here, I have a feeling its a quick simple fix but I'm not finding anything on message boards or documentation.
EDIT - Thanks guys! was missing the "form" tag. I figured it would be simple, thanks again for your help everyone!
Here's my index.html file:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>Client Information</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div><h1>Client Information</h1><table border="1">
<tbody>
<tr>
<td>First Name</td>
<td><input type="text" name="FirstName" value="" size="50" /></td>
<td>Surname</td>
<td><input type="text" name="Surname" value="" size="50"/></td>
</tr>
<tr>
<td>Age</td>
<td><input type="number" name="Age" value="" min="0" max="120"/></td>
<td>Gender</td>
<td><input type="text" name="Gender" value="" size="1" maxlength="1"/></td>
</tr>
</tbody>
</table>
<input type="submit" value="Submit" name="validation" />
</div>
</body>
</html>
And here is the ClientInformationServlet.java file, most important is the processRequest method, and if (request.getParameter("validation")!= null) line is where I am trying to have the action take place.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package clientInformation;
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 nicolasdubus
*/
#WebServlet(name = "ClientInformationServlet", urlPatterns = {"/clientinformationservlet"})
public class ClientInformationServlet extends HttpServlet {
/*
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Client Information</title>");
out.println("</head>");
out.println("<body>");
String sfirst = request.getParameter("FirstName");
String ssecond = request.getParameter("SurName");
String sAge = request.getParameter("Age");
String sGender = request.getParameter("Gender");
try {
Integer age = Integer.parseInt(sAge);
if (request.getParameter("validation") != null) {
System.out.println("<h1>Client information is valid</h1>");
out.println("<h1>Client</h1>");
System.exit(0);
}
} catch (IllegalArgumentException e) {
out.println("<h1>Client information is invalid, please verify entries</h1>");
}
out.println("<body>");
out.println("</html");
/* */
out.close();
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* #return a String containing servlet description
*/
#Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
The HTML specification states
The elements used to create controls generally appear inside a FORM
element, but may also appear outside of a FORM element declaration
when they are used to build user interfaces. This is discussed in the
section on intrinsic events. Note that controls outside a form cannot
be successful controls.
A <input> element for submit is a control. Therefore, if it appears outside a <form>, as you currently have it, clicking it won't do anything.
Nest your <input> elements (and whatever other display elements) within a <form> which specifies the action and method to use to submit your data.
You should add
<body><form action="/clientinformationservlet" method="POST">
....
</form></body>
inside the body.
If you want to submit then you should have a <form> in your htmml
e.g.
<form name="input" action="/clientinformationservlet" method="POST">
// your inputs
</form>
Related
I am beginning to learn servlet . I had issue try to get url from a folder(outside my project) which contains many images but i don't know how to display them in jsp (GrassFish Server). i try with some code but it don't working correctly .Simply outputting to HTML does not seem to work.
I've not performed any manual servlet mapping and I haven't changed any of Tomcat's configuration files.
this is my servlet
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* #author tamgi
*/
public class getServlets extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
File file = new File("C:\\Users\\tamgi\\Downloads\\Source\\Kyou No Cerberus\\Chap_56");
File[] files = file.listFiles();
request.setAttribute("files", files);
request.getRequestDispatcher("Test.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* #return a String containing servlet description
*/
#Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
this is my jsp
<%#page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Page</title>
<% File[] files =(File[]) request.getAttribute("files"); %>
</head>
<body>
<br>
<% for(File f : files) { %>
<img src="<%= f.getCanonicalPath() %> " alt="empty">
<br>
<% } %>
</body>
</html>
I have created a registration form. And I don't know why now it doesn't work anymore.
Now I receive a 404 error:
Type Status Report
Message /HotelReservation/Registration
Description The origin server did not find a current representation
for the target resource or is not willing to disclose that one exists.
This is my
Registration.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package hotel;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* #author OOPs
*/
public class Registration extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String s1 = request.getParameter("ename");
String s2 = request.getParameter("nname");
String s3 = request.getParameter("pname");
String s4 = request.getParameter("usid");
String s5 = request.getParameter("gm");
PrintWriter out = response.getWriter();
try {
/* TODO output your page here. You may use following sample code.
out.println(s1);
out.println(s2);
out.println(s3);
out.println(s4);
out.println(s5);*/
// out.println(s1);
//concetivity...............
Class.forName("com.mysql.jdbc.Driver");
out.println("driver loaded");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/HotelReservation","root" ,"123456789");
out.println("Connect");
Statement st = con.createStatement();
out.println("conncetion successfull");
st.executeUpdate("insert into register (email,name,pass) values ('"+s1+"','"+s2+"','"+s3+"')");
out.println("<h1> Register sucsefulltttt </h1>");
response.sendRedirect("thankyou.jsp");
}catch(Exception e){
out.println("nahiiiiiiiiiiiii" +e);
}
finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* #return a String containing servlet description
*/
#Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
And this is my
registration.jsp
<%#page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Registration</title>
<style>
#import url( css/default.css);
</style>
</head>
<body>
<div id="container">
<div id="nav">
Home
Prenotazione
Camere
Login
Registrazione
</div>
<script>
function validate()
{
if(document.getElementById("ename").value=="")
{
alert("blank");
return false;
}
return true;
}
</script>
<h2>Registrazione</h2>
<form action="Registration" method="post" onsubmit="return validate();">
<div class="gender">
<label id="icon" for="name"><i class="icon-envelope "></i></label>
<input type="text" name="ename" id="ename" placeholder="Email" required/>
<br>
<br>
<label id="icon" for="name"><i class="icon-user"></i></label>
<input type="text" name="nname" id="nname" placeholder="Name" required/>
<br>
<br>
<label id="icon" for="name"><i class="icon-shield"></i></label>
<input type="password" name="pname" id="pname" placeholder="Password" required/>
<br>
<input class="button" type="submit" value="Sign UP" name="b1"> </input>
<input class="button" type=button onClick="location.href='login.jsp'" value="Login" name="b" > </input>
</form>
<div id="footer">
<h4>Hotel Reservation </h4>
Viale Marco Polo, 81 Roma
tel: +39 01 0000000 | info#hotelreservation.it
P.IVA 000000001
</div>
</div>
</body>
</html>
How can I solve it in your opinion? Thanks
EDIT:
This is my :
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Hotelbooking</display-name>
<servlet>
<servlet-name>Hotelbooking</servlet-name>
<servlet-class>hotel.Hotelbooking</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hotelbooking</servlet-name>
<url-pattern>/hotelbooking</url-pattern>
</servlet-mapping>
<display-name>Login</display-name>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>hotel.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<display-name>Logout</display-name>
<servlet>
<servlet-name>Logout</servlet-name>
<servlet-class>hotel.Logout</servlet-class>
</servlet>
<display-name>Registration</display-name>
<servlet>
<servlet-name>Registration</servlet-name>
<servlet-class>hotel.Registration</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Registration</servlet-name>
<url-pattern>/registration</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>home.html</welcome-file>
</welcome-file-list>
</web-app>
HTTP Status 404 – Not Found
Type Status Report
Message /HotelReservation/Registration
Description The origin server did not find a current representation
for the target resource or is not willing to disclose that one exists.
myProject
Write your doGet method to forward at registration.jsp like this
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/registration.jsp").forward(request, response);
}
Another thing in error message map showing /HotelReservation/Registration
but in web.xml file servlet mapping is /registration. So hit correct url
I am trying to send some data from JSP to Servlet using JQuery/Ajax. Below are the important items of my JSP file.
script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var form = $('#customItemForm');
form.submit(function () {
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
success: function (data) {
}
});
return false;
});
</script>
<!--add custom item -->
<div class="modal fade" id="customItemModel" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header"> <img src="images/arrow-back-512.png" width="30px" height="30px"> <small>Back</small> <span id="myModalLabel" style="margin-left:20px;"><font size="+2"><b>Add Custom Item</b></font></span> </div>
<div class="modal-body">
<form class="form-horizontal" name="customItemForm" method="post" action="PastSurgicalCustomItem">
<fieldset id="modal_form">
<!-- Text input-->
<div class="form-group">
<label class="col-md-1 control-label" for="textinput">Name</label>
<div class="col-md-8">
<input id="customName" name="customName" type="text" placeholder="" class="form-control input-md">
</div>
</div>
<div class="modal-footer">
<input type="submit" id="additional" class="btn btn-primary" data-dismiss="modal" value="Submit">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
</div>
</fieldset>
</form>
</div>
</div>
</div>
<!-- /add custom item -->
Below is the Servlet class
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PastSurgicalCustomItem extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String customName = request.getParameter("customName");
System.out.println(customName);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* #return a String containing servlet description
*/
#Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
However the servlet do not print the value, which means the JQuery didn't pass anything. What have I done wrong here?
Set a breakpoint in you doGet method and step through the code to see whether it is not executed at all or whether it is executed, but throws an exception.
Additionally, you should monitor your AJAX call in the browser (e.g., by looking at the network connections in the developer view available in all modern browsers) and reviewing the returned header and content of the AJAX call.
I am having a problem with request attributes in my jsp, I am using the mvc pattern and setting a request attribute and forwarding to a jsp from the servlet. The application is a banking application, the goal is to use the customer id to get the customer by customer id pass it to the Account class to collect all of the accounts of the user. I have this problem solved I can get the account information and process it without any issue. The problem I am having is when I close the page and run again from the beginning I find that when I get to the table it is still putting in the information from the previous request as well as the new information that I am requesting. Like So:
()
My code is as follows for the servlet that directs me to the jsp and the jsp that I use the information into.
AccountServlet.java:
package com.ChattBank.controller;
import com.ChattBank.business.Account;
import com.ChattBank.business.Accounts;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* #author AARONS
*/
public class AccountServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet AccountServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet AccountServlet at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//HttpSession session = request.getSession();
String action = request.getParameter("action");
if (action == null) {
request.getRequestDispatcher("/Welcome.jsp").forward(request, response);
} else if (action.equals("view")) {
Accounts acct = new Accounts();
ArrayList<Account> list = new ArrayList();
try {
acct.setCustAccounts(request.getParameter("id"));
list.addAll(acct.getCustAccounts());
System.out.println(request.getParameter("id"));
} catch (SQLException ex) {
Logger.getLogger(Accounts.class.getName()).log(Level.SEVERE, null, ex);
}
request.setAttribute("acctList", list);
request.getServletContext().getRequestDispatcher("/accounts.jsp").forward(request, response);
}
}
/**
* Handles the HTTP <code>POST</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
String custId = request.getParameter("custID");
if (action == null) {
request.getRequestDispatcher("/Welcome.jsp").forward(request, response);
}
}
/**
* Returns a short description of the servlet.
*
* #return a String containing servlet description
*/
#Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
accounts.jsp:
<%--
Document : accounts
Created on : Jun 25, 2014, 12:24:38 AM
Author : Richard Davy
--%>
<%#page import="java.util.ArrayList"%>
<%#page import="com.ChattBank.business.Account"%>
<%#page import="com.ChattBank.business.Accounts"%>
<%#page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Your Accounts</title>
</head>
<body>
<%
ArrayList<Account> list = new ArrayList();
list.addAll((ArrayList)request.getAttribute("acctList"));
for (Account custAccount : list) {
System.out.println("From JSP: " + custAccount.getCustId() + " " + custAccount.getAcctNo() + " " + custAccount.getAcctType() + " " + custAccount.getBalance());
System.out.println("Getting Object From Section");
}
%>
<h1>You Made It Here!</h1>
<table border="1" width="2" cellspacing="5" cellpadding="2">
<thead>
<tr>
<th colspan="10">Your Chatt Accounts</th>
</tr>
</thead>
<tbody>
<% for (int i = 0; i < list.size(); i++){ %>
<tr>
<td colspan="2">Account: </td>
<td colspan="2"><%= list.get(i).getCustId() %></td>
<td colspan="2"><%= list.get(i).getAcctNo() %></td>
<td colspan="2"><%= list.get(i).getAcctType() %></td>
<td colspan="2"><%= list.get(i).getBalance() %></td>
</tr>
<% } %>
<% list.clear(); %>
</tbody>
</table>
<p>Thank you for your business!</p>
</body>
</html>
I am not really sure what is going on I started with session attributes and thought that was my issue, so I turned to using request attributes. But I am still facing the same issue. I was under the impression that the request attribute only lasted per that request but it seems that the information is still being carried through. Any suggestions?
The funny thing about this issue is that it wasn't anything to do with the request attribute variables. Since I was instantiating a list of objects in a class that list of objects was persisting and just being added to. I think this is mostly because I was using an ArrayList which is able to be appended to. Instead of re-writing the entire class to figure out some work around I included a try{}finally{} statement like so:
package com.ChattBank.controller;
import com.ChattBank.business.Account;
import com.ChattBank.business.Accounts;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* #author AARONS
*/
public class AccountServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet AccountServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet AccountServlet at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//HttpSession session = request.getSession();
String action = request.getParameter("action");
if (action == null) {
request.getRequestDispatcher("/Welcome.jsp").forward(request, response);
} else if (action.equals("view")) {
Accounts acct = new Accounts();
ArrayList<Account> list = new ArrayList();
try {
acct.setCustAccounts(request.getParameter("id"));
list.addAll(acct.getCustAccounts());
System.out.println(request.getParameter("id"));
//This was moved into the try block itself
request.setAttribute("acctList", list);
request.getServletContext().getRequestDispatcher("/accounts.jsp").forward(request, response);
} catch (SQLException ex) {
Logger.getLogger(Accounts.class.getName()).log(Level.SEVERE, null, ex);
//This is the added finally statement with the clearAccounts method
} finally {
acct.clearAccounts();
}
}
}
/**
* Handles the HTTP <code>POST</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
String custId = request.getParameter("custID");
if (action == null) {
request.getRequestDispatcher("/Welcome.jsp").forward(request, response);
}
}
/**
* Returns a short description of the servlet.
*
* #return a String containing servlet description
*/
#Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
The clear accounts method in the Accounts class was very very simple:
/**
* Clears the current array list of accounts
*/
public void clearAccounts(){
this.custAccounts.clear();
}
This question already has an answer here:
HTTP request parameters are not available by request.getAttribute()
(1 answer)
Closed 6 years ago.
Hi all this is how i set value is hidden variable through java script,
function logintosystem(){
document.forms["frmLogon"].funtiontype.value="logon";
document.forms["frmLogon"].submit();
}
and this is what is my jsp page :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%#page contentType="text/html" pageEncoding="UTF-8"%>
<%
String path = "", userName = "", message = "", userType = "";
path = request.getContextPath();
if(request.getAttribute("message")!=null) message =(String)request.getAttribute("message");
%>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="ACCT"/>
<meta name="keywords" content="acct,accesscardcomparision" />
<meta name="author" content="slingmedia" />
<link rel="stylesheet" type="text/css" href="acct.css" title="andreas09" media="screen,projection" />
<title>ACCT</title>
<script>
function logintosystem(){
document.forms["frmLogon"].funtiontype.value="logon";
document.forms["frmLogon"].submit();
}
</script>
</head>
<body>
<div id="container">
<div id="sitename">
<h1>ACCT</h1>
<h2>Access Card data comparision with Leave portal</h2>
</div>
<div id="mainmenu">
<ul>
<%
if (userName.length() > 0 || !userName.equals(null) || !userName.equals("")) {
%>
<li><a href="#" class="current" >Welcome <%=userName%></a></li>
<%}%>
<%
if (userName.length() > 0 && userType.length() > 0) {
%>
<li>Tempcard</li>
<%}%>
<%
if (userType.equals("HR")) {
%>
<li>Report</li>
<%}%>
<%
if (userName.length() > 0 && userType.length() > 0) {
%>
<li>Logout</li>
<%}%>
</ul>
</div>
<div id="wrap">
<div id="content">
<h1>Please Enter your code</h1>
<form name="frmLogon" id="frmLogon" action="LogonServlet" method="post">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr align="center" valign="middle">
<td width="100%" align="center" valign="middle">
<table width="100%" align="left" border="0" cellspacing="0" cellpadding="2" >
<tr>
<td width="5%" align="left"> </td>
<td width="35%" align="right">ACCT Code</td>
<td width="20%"><input type="text" name="acctcode" id="acctcode" class="inputBoxes" /></td>
<td width="15%" align="left"><input type="button" class="submitButton" value="Logon" onclick="logintosystem();"/></td>
<td width="15%"> </td>
<td width="10%" align="center"> </td>
</tr>
<br></br>
</table>
</td>
</tr>
</table>
<input type="hidden" name="funtiontype" id="funtiontype" value=""/>
</form>
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFF0">
<tr>
<td id="message" align="center">
<b><font color="brown" size="3"><%=message%></font></b>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="clearingdiv"> </div>
</div>
</div>
<div id="footer">
<p>© 2012 slingmedia | ACCT </p>
</div>
</body>
</html>
and my servlet is :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.slingmeadia.notifier.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* #author anthony.savarimut
*/
public class LogonServlet extends HttpServlet {
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
/*
* TODO output your page here. You may use following sample code.
*/
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet LogonServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet LogonServlet at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// processRequest(request, response);
String funtiontype = "",acctcode="",pageRedirect="";
if(request.getAttribute("funtiontype")!=null) funtiontype =(String)request.getAttribute("funtiontype");
if(request.getAttribute("acctcode")!=null) acctcode =(String)request.getAttribute("acctcode");
if(funtiontype.equals("logon")){
request.setAttribute("message","Loggedon code is "+acctcode);
pageRedirect="notifier/notifier.jsp";
}else{
request.setAttribute("message","loggedout code is "+acctcode);
pageRedirect="index.jsp";
}
response.sendRedirect(pageRedirect);
}
/**
* Handles the HTTP
* <code>POST</code> method.
*
* #param request servlet request
* #param response servlet response
* #throws ServletException if a servlet-specific error occurs
* #throws IOException if an I/O error occurs
*/
#Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//processRequest(request, response);
System.out.println("Called logon");
doGet(request,response);
}
/**
* Returns a short description of the servlet.
*
* #return a String containing servlet description
*/
#Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
the page is getting submited but the values that i set for hidden variable is not coming in servlet also i have a text box that value also is not coming to servlet when submitting the page.
Kindly help me to find out this.
You should do this:
funtiontype =request.getParameter("funtiontype");
acctcode = request.getParameter("acctcode");
Try this..
function logintosystem(){
document.frmLogon.funtiontype.value="logon";
document.frmLogon.submit();
}
Update:
String funtionType = request.getAttribute("funtiontype") == null ? request.getParameter("funtiontype") : request.getAttribute("funtiontype");
String acctCode = request.getAttribute("acctcode") == null ? request.getParameter("acctcode") : request.getAttribute("acctcode");