doPost()方法对比起doGet()方法来具有许多优点,比如隐蔽性好,返回的字符串无大小限制,更加安全。这里要说明的是doPost()方法返回的是字符串或字符串数组,并且适用于表单数据的获取。下面开始介绍doPost()方法的具体使用方法。首先要做好准备工作,搭建好Maven框架、部署好Servlet文件(这两部分在我的其他文章里有我就不再多说),重写父类的方法。当然要重写doPost()方法。这里值得一提的是service方法不要重写。他是servlet父类的方法,在接受网页的请求时(如submit按钮)时,系统会调用与之相映射的servlet函数,这个servlet函数首先会调用service方法,去判断到底是使用doGet()方法还是去使用doPost()方法。所以当你重写之后,他便失去了这个功能,除非你自己加上去,否则servlet是不会自动调用doGet()方法或doPost()方法的。
如下就是一个表单的表头,其对应文件名为“omen”的servlet文件,并且声明了方法为“POST”,所以会调用doPost()方法(默认调用doGet方法)。
好了,下面开始介绍如何用servlet去获取各种简单的数据。
一、获取文本框的值。
下面是HTML里表单中文本框的代码。
下面是获取名为name的文本框里的字符串。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");//设置响应内容类型
String name = req.getParameter("name");
}
二、获取单选框的值。
下面是HTML里表单中单选框的代码。
下面是获取单选框的值的代码。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=UTF-8"); String sex = req.getParameter("sex");//sex为选中按钮的value值(String型) }三、获取下拉框的值。
下面是HTML里表单中下拉框的代码。
下面是获取下拉框值的代码。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
String select1 = req.getParameter("select1");//同样这里获取的是选中下拉框的value值
}
四、获取复选框的值。
下面是HTML里表单中复选框的代码。
下面是获取复选框值的代码。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
String [] interests = req.getParameterValues("like");//因为是复选框所以有多个值,返回一个数组,数组元素的值为其value值。
}
五、文本域值的获取。
下面是HTML里表单中文本域的代码。
获取方法和获取文本框的方法一样。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
String reason = req.getParameter("reason");
}
如有错误,欢迎指正。