Servlet的請求與響應
阿新 • • 發佈:2019-01-06
Servlet是tomcat中的一個重要組成,也是負責客戶端和服務端的中介
1,Http的請求方式(get ,post);
客戶端的請求一般都會都是Servlet來接受的,在接收之前怎麼來確定是那種方式提交的,以及如何反饋,Servlet中有相應的方法, http的get方式 servlet就是都doGet()方法; http的post方式 servlet就是doPost()方法
post提交資料的例項:程式碼實現如下 使用url-pattern將java的方法設定成為一的資源
<h1>登入</h1> <form action="postLogin" method="post"> 賬號:<input type="text" name="userName" /><br /> 密碼:<input type="passWord" name="userPwd" /><br /> <input type="submit" vule="提交" />
post提交到java處理的程式碼如下;
package servlet_v1; 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 Administrator *註冊頁面的post提交方式 */ public class RegPost extends HttpServlet{ //重寫提交的方法 @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out =resp.getWriter(); System.out.println("註冊頁面正在響應"); resp.setCharacterEncoding("utf-8"); //獲得註冊頁面的賬號和密碼 String userName = req.getParameter("userName"); String userPwd = req.getParameter("userPwd"); // 使用html方式輸出 String str = "<html><head>"; // 定義html輸出的字符集 str += "<meta charset=\"utf-8\">"; str += "</head><body>"; // 將userName和userPwd與資料庫的連線 if (!userName.equals("") && !userPwd.equals("")) { str += "<h2>登入成功,<a href=\"index.html\">請登入</a></h2>"; } else { str += "賬號密碼不能為空,<a href=\"reg.html\">請,重新註冊!</a>"; } str += "</body></html>"; out.write(str); out.flush(); out.close(); } }
在xml檔案中註冊一下java方法;
<servlet> <servlet-name>RegPost</servlet-name> <servlet-class>servlet_v1.RegPost</servlet-class> </servlet> <servlet-mapping> <servlet-name>RegPost</servlet-name> <url-pattern>/RegPost</url-pattern> </servlet-mapping>
get處理資料的提交 使用url-pattern將java的方法設定成為一的資源
package servlet_v1;
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 Administrator
*
*/
public class Myservlet extends HttpServlet{
//重寫HttpServlet的方法
//HttpServletRequest請求的結果
//HttpServletResponse 返回的結果
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//接收
System.out.println("收到響應:"+req.getRequestURI());
//響應
PrintWriter out = resp.getWriter();
out.write("PrintWriter ok!!!!");
}
}
將上述java處理在xml檔案中註冊
<servlet> <servlet-name>aa</servlet-name> <servlet-class>servlet_v1.Myservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>aa</servlet-name> <url-pattern>/resp</url-pattern> </servlet-mapping>