求解request读取数据的原理
大家都知道servlet存在于服务器端,同样jsp/html也存在于服务器端,比如说我们要登录一个论坛,那么我们首先要在在IE地址栏中输入首页地址,接着在网页中的文本框中输入登录的性息,那么servlet request 是如何得到我们输入的性息的呢,
(是不是我们在访问第一个页面的时候,服务器已经把它转化成了servlet才发送给我们,我们得到的只是一个静态的html,如果是这样,当多个页面一起提交数据的时候,request读到的又是什么呢)
同样我在servlet doPost方法中定义了一个form并提交个doGet,request对象也能读到该表单的数据,这是什么原理啊?代码如下:
package test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class movie extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String movies[] = req.getParameterValues("movies");
HttpSession session = req.getSession(true);
if(session != null){
session.setAttribute("movies", movies);
}
res.setContentType("text/html; charset=GBK");
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<head><title>武昆Session Servlet</title></head>");
out.println("<body>");
out.println("<h2>Contents of Shopping Cart</h2>");
for(int x = 0; x < movies.length; x++){
out.println(movies[x] + "<br>");
}
out.println("<form action = movie method = get>");
out.println("<input type = \"test\" name = \"test\" value = \"ddddd\">");
out.println("<input type = \"submit\" name = \"add\" value = \"Prpceed to Checkout \"></form>");
out.println("</body></html>");
out.close();
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String[] movies = null;
String test = req.getParameter("test");
HttpSession session = req.getSession(true);
if(session != null){
movies = (String[])session.getAttribute("movies");
}
res.setContentType("text/html; charset=GB2312");
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<head><title>Session Servlet</title></head>");
out.println("<body>");
for(int x= 0; x < movies.length; x++){
out.println(new String(movies[x].getBytes("iso-8859-1"), "gbk") + "<br>");
}
out.println(new String(test.getBytes("iso-8859-1"), "gbk"));
out.println("</body></html>");
out.close();
}
}
那位高手能解释一下request的工作原理啊,不胜感激!!!