1. 程式人生 > >Servlet的請求與響應

Servlet的請求與響應

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>