Servlet中的doPost方法
本周学的东西本身就不多,对于概括性较强的篇幅而言,写一篇博文以完全足矣,但是,没有办法,本部要求(也许是学校的要求)每周学了五天就必须得写五篇,这条规定显得在写博文时相当牵强,也相当机械。说老实话,写这个博文对我而言根本没有任何帮助,如果是从便于以后复习的出发点来考虑的话是不实际的,我的电脑是单机版的,没法联网,总不至于随时复习都还要跑那么远到网吧去复习吧,首先抛开经济消耗、时间消耗都不说,就光从学习效率上来讲都是不允许的。如果是从博客中总结学习来看也不太现实,因为我每次跑网吧上传一次博客基本上都要耽搁至少半天的时间,这时间如果留给我自己学习比起上传博客的收获将是翻倍的,大家可知道,这时间可是花的我心痛啊(尤其对我曾经辛辛苦苦打工挣来的8500更是莫大的对不住)。好了,废话少说,接下来继续上一篇博文Servlet中doPost方法的讨论
doPost方法是用来处理表单post方式提交的表单,不能处理客户端浏览器直接访问。
实例如下:USERFORM2.JSP
contentType="text/html;charset=gb2312"%>
用户表单method="post">
用户名:
name="username"/>
密码:
name="password"/>
value="提交"/>
value="重置"/>
接下来,相对应的Servlet代码如下(DOPOSTDEMO.JAVA)
package com.javaweb.ch10;
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 DoPostDemo extends HttpServlet {
public
void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gb2312");
String username = request.getParameter("username");
String password = request.getParameter("password");
out.println("");
out.println("
");out.println("用户名:" + username +
"
");
out.println("密码:" + password);
out.println("");
out.println("");
}
}
解释一下上面代码的意思:
实例代码DOPOSTDEMO.JAVA的主体代码与前面的doGet方法的主体代码相似,只是将代码写在了doPost中,doPost方法能处理Post方式提交的表单,但无法处理浏览器的直接访问。实际上,我这样写的目的就是想说不论是doGet方法还是doPost方法都能处理各自的提交方式,但两个方法之间对同一种请求的处理则是不允许混用。如果要想用一种方法来同时处理客户端的get及post请求请关注下周博文中的service方法(今天写完了的话下周就没有写的了,OK!)。