Java Web学习(4)

原创 2018年04月15日 16:44:35

内容概要:

1、Web容器做了什么?

2、处理请求参数与标头有哪些常用方法?


1、Web容器做了什么

当请求来到HTTP服务器,而HTTP服务器转交请求给容器时,容器会创建一个代表当次请求的HttpServletRequest对象,并将请求信息设置给该对象。同时,容器会创建一个HttpServletResponse对象,作为稍后要对客户端进行响应的Java对象。

接着,容器会根据读取的@WebServlet标注或web.xml的设置,找出处理该请求的Servlet,调用它的service()方法,将创建的HttpServletRequest对象、HttpServletResponse对象传入作为参数,service()方法中会根据HTTP请求的方式,调用对应的doXXX()方法。例如,若为GET,则调用doGet()方法。

接着在doGet()方法中,可以使用HttpServletRequest对象、HttpServletResponse对象。例如,使用getParameter()取得请求参数,使用getWriter()取得输出用的PrintWriter对象,并进行各项相应处理。对PrintWriter做的输出操作,最后由容器转换为HTTP响应,再由HTTP服务器对浏览器进行响应。之后容器将HttpServletRequest对象、HttpServletResponse对象销毁回收,该次请求响应结束。

每一次请求/响应后,服务器端就不会记得任何客户端信息了。容器每次都会创建新的HttpServletRequest、HttpServletResponse对象,响应后销毁该次的HttpServletRequest、HttpServletResponse。


2、处理请求参数与标头

请求来到服务器时,Web容器会创建HttpServletRequest实例来包装请求中的相关信息,HttpServletRequest定义了取得一些通用请求信息的方法。取得请求参数的方法:

1)getParameter():指定请求参数名称来取得对应的值。例如:

String username = request.getParameter("name");

getParameter()返回的是String对象,若传来的是"123"这样的字符串值,而需要的是基本数据类型,则必须使用Integer.parseInt()这类的方法将之剖析为基本类型。若请求中没有所指定的请求参数名称,则会返回null。

2)getParameterValues():如果窗体上有可复选的元件,如复选框(Checkbox)、列表(List)等,则同一个请求参数名称会有多个值(此时的HTTP查询字符串其实就是想param=10&param=20&param=30),此时可以用getParameterValues()方法取得一个String数组,数组元素代表所有被选取选项的值。例如:

String[] values = request.getParameterValues("param");

如果想要直到请求中有多少请求参数,则可以使用getParameterNames()方法,这时就会返回一个Enumeration对象,其中包括所有的请求参数名称。例如:

Enumeration<String> e = req.getParameterNames();

while(e.hasMoreElements()) {
    String param = e.nextElement();
    ...

}

3)getParameterMap():将请求参数以Map对象返回,Map中的键(Key)是请求参数名称,值(Value)是请求参数值,以字符串数组类型String[]返回。

取得HTTP标头(Header)信息的方法:

1)getHeader()

2)getHeaders()

3)getHeaderNames()

Web 前端工程师课程 第4周

Web 前端工程师课程 第4周
  • 2017年11月06日 20:05

Java之JUnit4的学习

JUnit4的简单介绍先看看什么是xUnit? xUnit是一套基于测试驱动开发的测试框架,其包含用于Python单元测试的PythonUnit和C++单元测试的CppUnit,以及Java的JUni...
  • qq_35508033
  • qq_35508033
  • 2017-03-16 16:46:33
  • 2070

Java Web基础学习(一)

Java的Web开发学习 Web应用程序 Web应用程序是一种可用通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问应用程序。用户只需要有浏览器即可,不需要再安装其他软件。 ...
  • yzhang6_10
  • yzhang6_10
  • 2016-06-24 22:03:10
  • 4711

java web 学习思路(牛人如何学JAVA)

转自:http://blog.csdn.net/beihangyjs/article/details/5718991 如何学习java(一) 最近论坛上看到好几个朋友都在问,如何学习 Java...
  • DADADIE
  • DADADIE
  • 2015-04-02 09:45:39
  • 3381

Java和web方向的学习路线

Javaweb系统学习路线:Java系统学习路线:第一阶段技术名称第一阶段: Java 基础,包括 Java 语法,面向对象特征,常见API,集合框架。(基础)第二阶段:Java API:输入输出,多...
  • yl1712725180
  • yl1712725180
  • 2018-02-16 10:44:48
  • 167

以Web方向为基础的java学习路线

JAVA学习路线在没自学java之前,我还只会一点点C语言,也就是才熟悉什么叫变量、运算符、标识符,会点简单的循环来做简单的数学运算或这打印图形啥的。然而现在看来,这些已不足以视为有C的基础,最多只能...
  • Tinkle2015
  • Tinkle2015
  • 2016-03-11 23:27:15
  • 2054

Java Web后台学习路线

以下所写只是个人的Java学习路线,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。一、Java基础 推荐一本入门书,个人觉着还不错~ 多敲些例子二、We...
  • zgrgfr
  • zgrgfr
  • 2016-11-26 09:52:20
  • 6406

时尚软件园全站系统

  • 2003年01月16日 00:00
  • 481KB
  • 下载

javaweb学习路线以及web前端学习路线(及供参考)

JSP -> Servlet -> Java SSH Framework Web Container方面,一般Tomcat就够用了,要是想上JBoss也随意。。。这方面有本书《JBoss in ...
  • yuexianchang
  • yuexianchang
  • 2016-09-08 10:03:25
  • 16035

java web开发学习手册

  • 2013年05月01日 12:00
  • 8.92MB
  • 下载
收藏助手
不良信息举报
您举报文章:Java Web学习(4)
举报原因:
原因补充:

(最多只允许输入30个字)