Svar 1:
Det är request.getRequestURI() som du ska använda för att få ut vad sidan heter.
Läs mer här, getRequestURI()
Svar 2:
Jag antar att du menar en parameter variabel (en som du får via POST eller GET) om det inte var det som du menade, fråga igen :)
if(request.getParameter("foo")!=null)
out.println("Det finns en parameter som heter foo");
else
out.println("Det finns inte en parameter som heter foo");
Om du i en Servlet/JSP skall kolla om en request-variabel är satt till något visst värde så kan det ibland vara smidigt att skriva det på detta sätt:
if ("update".equals(request.getParameter("action")) {
}
På så sätt så slipper man först att kolla så att request-variabeln inte är null och sedan göra själva jämförelsen. I och med att man anropar equals() på strängobjektet man letar efter och inte på request-strängen så behöver man inte oroa sig om null. Gör man däremot tvärtom och request-strängen är null så kastas ett NullPointerException.
<a href="<%= request.getRequestURI() %>?namn=kalle">Kalle</a><br>
<%
if(request.getParameter("namn")!=null)
out.println("Det finns en parameter som heter namn och den har värdet: " + namn + "<br>");
else
out.println("Det finns inte en parameter som heter namn");
%>
Koden returnerar:
/jsp/gastbok/gb.jsp:91: Undefined variable: namn
out.println("Det finns en parameter som heter namn och den har värdet: " + namn + "<br>");
^
<a href="<%= request.getRequestURI() %>?namn=kalle">Kalle</a><br>
<%
String namn=request.getParameter("namn"); //String är ett objekt och kan ha värdet null
if(namn!=null)
out.println("Det finns en parameter som heter namn och den har värdet: " + namn + "<br>");
else
out.println("Det finns inte en parameter som heter namn");
%>
eller
<a href="<%= request.getRequestURI() %>?namn=kalle">Kalle</a><br>
<%
if(request.getParameter("namn")!=null)
out.println("Det finns en parameter som heter namn och den har värdet: " + request.getParameter("namn") + "<br>");
else
out.println("Det finns inte en parameter som heter namn");
%>