Hola,
No estoy seguro si esto es lo que quieres realizar,
Código:
...
// Pseudocódigo
if ("editar".equals(request.getParameter("accion"))) {
// acciones a realizar en edición
}
String clave = request.getParameter("clave1");
if( clave==null || clave.equals("")) clave="0";
String q="select * from sistemas where clave="+clave;
String cantidad = request.getParameter("cantidad");
try { tabla = instruccion.executeQuery(q);
tabla.next();
out.println("<FORM name=form1 ACTION=ticket6.jsp METHOD=POST >");
out.println("CLAVE: <INPUT TYPE=TEXT NAME=clave VALUE="+ tabla.getString(2)+ "><BR><BR>");
out.println("TITULO: <INPUT TYPE=TEXT NAME=TITULO VALUE= '"+ tabla.getString(3)+ "'SIZE='100'><BR><BR>");
out.println("PRECIO: <INPUT TYPE=TEXT NAME=PRECIO VALUE= "+ tabla.getString(4)+ "><BR><BR>");
out.println("CANTIDAD: <INPUT TYPE=TEXT NAME=cantidad VALUE= "+cantidad+ "><BR><BR>");
out.println("<INPUT TYPE=HIDDEN NAME=accion VALUE=editar><BR><BR>");
...
Usa un input de tipo 'hidden' donde envías el estado de la aplicación en determinado momento. Dependiendo del valor que pongas en 'accion' esa es la siguiente acción que se va a realizar al hacer el post. La lógica tendrás que implementarla de acuerdo a tus necesidades.
Saludos,
ps:
Esta instrucción no va a funcionar correctamente cuando clave sea null:
if( clave==null || clave.equals("")) Java evalúa las dos condiciones del if en la instrucción OR, aunque clave sea null siempre se va a ejecutar la segunda instrucción .equals y va a generar un error.