应用场景:
表单提交的数据被servlet程序接收并处理。
案例:
有一个页面上的表单,接收用户输入的文本框值,点击确定提交按钮后,该值能够被服务器上的一个Servlet程序处理作为HTML页面上的文本输出。
分析:
form表单对Web服务器发出请求,Web服务器定位到Servlet程序-OutputWelcome,执行doPost方法,对客户端予以响应:对发出请求的客户端输出表单中的请求参数值。
页面代码:
<body>
<form action="OutputWelcome" method ="post">
<input type = "text" name = "name">
<input type = "submit" value="提交">
</form>
</body>
Servet程序源码如下:
package dao;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class OutputWelcome extends HttpServlet {
public OutputWelcome() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");//正确地理解传过来的中文参数值
response.setContentType("text/html;charset=utf-8");
String name =request.getParameter("name");
java.io.PrintWriter out = response.getWriter();
out.println(name);
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
}
回顾:
浏览器浏览每一个网页,或者点击一个按钮,都是在对服务器发出请求(随之附参数值),服务器给予响应。所以服务器对每一个请求都会自动生成一个request对象、一个response对象。
Request对象中会封装这个请求的参数(键值对)
思考:
Web服务器是如何定位到Servlet程序-OutputWelcome的呢?
上例中,将WebContent->WEB-INF->web.xml打开,在url-pattern节点设置值为“/test/OutputWelcome”。观察程序运行效果。
<servlet>
<description></description>
<display-name>OutputWelcome</display-name>
<servlet-name>OutputWelcome</servlet-name>
<servlet-class>servlet.OutputWelcome</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OutputWelcome</servlet-name>
<url-pattern>/OutputWelcome</url-pattern>
</servlet-mapping>
视频
测试题
请在空白处填空,完成题目要求。
要求:页面1有一个表单,由表单提交的文本框和下拉框的数据要被servlet获取后作为结果页面的值输出
页面1关键源码:
<body>
<form action="OutputWelcome" method="post">
<input name= "inputbox" type = "text"><br>
<select name= "number"multiple="multiple" size= "3"><!--size可以控制多选项的显示行数。- - >
<option value="one">一</option>
<option value="two">二</option>
<option value="three">三</option>
</select><br>
<input type="submit"value="提交">
</form>
</body>
其中,OutputWelcome.java是一个servlet。
OutputWelcome.java的关键源码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String name =request.getParameter("填空一");
String[] numbers = request.getParameterValues("填空二");
java.io.PrintWriter out = response.getWriter();
out.println(“您输入的文本框的值是:”+(填空三));
out.println(“您的选择项分别是:”);
for(int i=0;i<numbers.length;i++)
out.println(填空四);
out.close();
}
web.xml的关键代码是:
<servlet>
<description></description>
<display-name>OutputWelcome</display-name>
<servlet-name>OutputWelcome</servlet-name>
<servlet-class>servlet.OutputWelcome</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OutputWelcome</servlet-name>
<url-pattern>/OutputWelcome</url-pattern>
</servlet-mapping>
知识点:
Servlet的基本配置。

