サーブレットのdoGet()とdoPost()の違い



Difference Between Servlets Doget



doGet()は、URLの後にhttp:// localhost:8080 / test?username = zhangsan&password = lisiなどの文字列を表示します。
これは非常に安全ではありません。そして、doPost()はしません。
また、getメソッドの利点は、送信されたページがhistory.back()を渡すことができることです。ただし、投稿データはできません。ロールバックすると、有効期限が切れていることがわかります。
比較的言えば。 goGet()のデータ量はdoPostよりも少なくなります。
一般に、DOPOSTを使用してFROMフォームを処理し、DOGETを使用してAHREFを処理します。使用するメソッドについては。ページで方法を設定できます。
適用時にネストされたメソッドを使用することもできます。与えられた例:

サーブレット:test.java

package cn.com.leadfar

import java.io.IOException
import java.io.PrintWriter
import java.util.Date

import javax.servlet.ServletException
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse

public class test extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String username =req.getParameter('username')
String password =req.getParameter('password')
System.out.println(username)
System.out.println(password)

resp.setCharacterEncoding('utf8')
resp.setContentType('text/html')
resp.getWriter().println('Login succeeded')


}

@Override
/** The following is a nested method
*
*/
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

this.doGet(req, resp)
}


}

index.jsp




Username:

Password:







また。コンソール出力が文字化けしている場合にdoGet()メソッドがある場合。 tomcat / binディレクトリのservice.xmlを変更してから、ctrl + fを変更して、現在のポートを見つけます。たとえば、8080です。次に、8443の後にURLEncoding = 'UTF-8'を追加して解決します。