Servlet是如何运行的?

Servlet是如何运行的?

     ----------------------------------------------------------------------------------

比如,在浏览器地址栏输入http://ip:port/day01/hello

1.浏览器依据ip和port建立与服务器之间的连接(比如,建立与tomcat之间的连接)。

2.浏览器将相关数据打包(即按照http协议的要求,创建请求数据包)。

3,浏览器将请求数据包发送给服务器。

4.服务器解析请求数据包的内容,并且将解析到的数据添加到request对象里面,同时创建一个response对象。

5.服务器将对应的Servlet(比如HelloServlet)实例化,接下来调用Servlet实例的service方法。

注:服务器会将request和response作为参数传递给service方法,可以通过request对象获取请求数据(比如一些请求参数值),然后通过response对象写入处理结果。

6.服务器通过response对象获取处理结果,然后创建响应数据包。

7.服务器发送响应数据包给浏览器。

8.浏览器解析响应数据包,并且生成相应的页面。


public class BmiServlet extends HttpServlet {
	public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 读取身高、体重
		String height = request.getParameter("height");
		String weight = request.getParameter("weight");

		String[] interest = request.getParameterValues("interest");
		System.out.println("interest:" + interest);
		// 对于多选框,要注意,如果用户没有选择
		// 任何选项,则返回null值。
		if (interest != null) {
			for (int i = 0; i < interest.length; i++) {
				System.out.println(interest[i]);
			}
		}

		// 对身高体重进行合法性验证,暂时不考虑
		// 计算bmi指数
		double bmi = Double.parseDouble(weight) / Double.parseDouble(height) / Double.parseDouble(height);
		// 依据bmi指数,判断用户身体状况
		String status = "正常";
		if (bmi < 19) {
			status = "过轻";
		}
		if (bmi > 25) {
			status = "过重";
		}
		// 输出用户的身体状况
		response.setContentType("text/html;charset=utf-8");
		response.getWriter().println(status);
		/*
		 * out不关闭也可以,因为 容器在执行完service方法之后,会调用 out.close()
		 */

	}
}

web.xml配置如下:

<servlet>
    <servlet-name>bmiServlet</servlet-name>
    <servlet-class>web.BmiServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>bmiServlet</servlet-name>
    <url-pattern>/bmi</url-pattern>
  </servlet-mapping>

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值