doGet ve doPost arasındaki fark nedir?
- doGet () ve doPost (), servlet sınıfları tarafından işlenen HTTP istekleridir.
- doGet () işlevinde, parametreler URL'ye eklenir ve başlık bilgisi ile birlikte gönderilir.
- Bu, doPost () durumunda gerçekleşmez.
- DoPost'ta () parametreler ayrı olarak gönderilir.
- Aşağıdaki örnek, doGet () ve doPost () işlevlerini daha iyi anlamamıza yardımcı olacaktır:
Web.xml kodumuz :
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>Servlet_doGet_doPost</display-name>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>servletdoGetdoPost.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> Login </servlet-name>
<url-pattern> /login </url-pattern>
</servlet-mapping>
</web-app>
login.html kodumuz:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="login" method="get">
<h3>doGet Methodu Kullan </h3>
<h4>Bilgilerinizi Griniz.</h4>
<h4> Adınız: <input type ="text" name="username"/></h4>
<h4> Şifreniz: <input type ="password" name="pwd"/></h4>
<input type="submit" value ="Get"/>
<input type="reset"/>
</form>
<form action="login" method="post">
<h3>doGet Methodu Kullan </h3>
<h4>Bilgilerinizi Griniz.</h4>
<h4> Adınız: <input type ="text" name="username1"/></h4>
<h4> Şifreniz: <input type ="password" name="pwd1"/></h4>
<input type="submit" value ="Post"/>
<input type="reset"/>
</form>
</body>
</html>
Login.java Kodumuz:
package servletdoGetdoPost;
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 Login extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
String username = request.getParameter("username");
String pwd = request.getParameter("pwd");
PrintWriter pr = response.getWriter();
pr.print("<html><head>");
pr.print("<title>Servlet Ekran</title>");
pr.print("</head>");
pr.print("<body>");
pr.print("<h2>Get() Methodu bilgileri</h2>");
pr.print("<h2>Girilen kullanıcı bilgileri</h2>");
pr.print("<h3> username: "+username+"</h3>");
pr.print("<h3> pasword: "+pwd+"</h3>");
pr.print("</body></html>");
}
@Override
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html; charset=UTF-8");
String username1 = request.getParameter("username1");
String pwd1 = request.getParameter("pwd1");
PrintWriter pr = response.getWriter();
pr.print("<html><head>");
pr.print("<title>Servlet Ekran</title>");
pr.print("</head>");
pr.print("<body>");
pr.print("<h2>Post() Methodu bilgileri</h2>");
pr.print("<h2>Girilen kullanıcı bilgileri</h2>");
pr.print("<h3> username: "+username1+"</h3>");
pr.print("<h3> pasword: "+pwd1+"</h3>");
pr.print("</body></html>");
}
}
doGet metodunun kullanımı sonucunda girmiş olduğumuz kullanıcı adı ve şifresi adres çubuğunda görünmüş oldu. Bu pek hoş bir durum olmadı. Tabi böyle şifreleme ve giriş çıkış işlemlerinden çok arama işlemlerinden kullanılabilri. örnek vermek gerekirse google aradığımız bir şeyin adres çubuğundada görünmesi gibi.
doPost metodu ile girilen bilgilerin adres çubuğunda görünmesinin önüne geçilmiştir.
teşekkürler =)
YanıtlaSil