Servlet开发

用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求。服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应。浏览器收到回应,再把回应的内容显示出来。这种请求—响应模式就是典型的Web应用程序访问过程。

JavaWeb应用程序中所有的请求—响应都是由Servlet完成的。 Servlet是JavaWeb的核心程序,所有的网址最终都交给Servlet处理。Servlet并没有main之类的执行方法。当用户访问服务器的 时候,Tomcat是通过调用Servlet的某些方法来完成整个处理过程的。

Servlet是什么

一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet的Web服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,并接收客户端发出的访问请求信息和产生响应内容。

Servlet程序可以完成普通Java程序所能完成的大多数任务:

  • 获取客户端通过HTML的FORM表单提交的数据和URL后面的参数信息
  • 创建对客户端的响应信息内容
  • 访问服务器端的文件系统
  • 连接数据库并开发基于数据库的应用
  • 调用其它的Java类

Servlet工作流程

浏览器提交的请求是遵循HTTP协议的文本。这段文本由服务器也就是Tomcat 接收并解析,封装成了HttpServletRequest类型的request对象。所有的HTTP头数据都可以通过request相应的方法查询到。 Tomcat同时把输出流封装成为HttpServletResponse类型的response对象,通过设置response对象可以控制输出的内 容。在请求—响应的这个过程中,Tomcat把request对象、response对象作为参数,调用Servlet的相应方法,例如 doPost(request,response)、doGet(request,response)等。

Servlet接口

Servlet是一种实现了javax.servlet.Servlet接口的 类。Servlet接口规定了特定的方法来处理特定的请求。Servlet规范是建立在HTTP规范基础上的。HTTP 1.1 规范支持OPTIONS、GET、POST、HEAD、PUT、DELETE、TRACE等7中访问方式,其中最常用的就是GET和POST了。

GET:表示查询信息,URL中可以附带少量的参数信息,但是URL总长度不能超过255个字符,并且参数会显示在浏览器地址栏。

POST:表示提交信息,一般用于提交大数据信息或者文件,提交的内容不受长度限制,并且不会显示在浏览器地址栏中。

<servlet>和</servlet>分别为 Servlet配置的开始标签和结束标签。中间的部分就是一个Servlet的配置信息。其中<servlet-name> 与<servlet-class>属性分别为Servlet的名称和类名,都是必须配置的。<servlet-name>可以是 任意的字符串,但是必须保证该名称在web.xml里唯一。

使用<init-param>标签可以配置一个初始化参数,包括一个 参数名称和一个参数值。一个Servlet可以配置多个初始化参数。Servlet中可以使用方法 getServletContext().getInitParam(String paramName)来取得配置的初始化参数值。

标签<load-on-startup>配置该Servlet的加载方式,可选值为0和1,。如果配置为1,Tomcat在启动的时候就加载该Servlet,否则,Tomcat会在第一次请求该Servlet的时候才加载。

最新文章

  1. 报错:org.hibernate.AssertionFailure: null id in com.tt.hibernate.entities.News entry (don&#39;t flush the Session after an exception occurs)
  2. 二模02day1解题报告
  3. SNF开发平台WinForm之四-开发-主细表管理页面-SNF快速开发平台3.3-Spring.Net.Framework
  4. uva 242
  5. EF之高级查询
  6. [C/C++] 各种C/C++编译器对UTF-8源码文件的兼容性测试(VC、GCC、BCB)
  7. linux别名
  8. 快捷键Ctrl+c、Ctrl+d、Ctrl+u、Ctrl+a、Ctrl+e
  9. UVA - 10098 - Generating Fast (枚举排列)
  10. 用QT创建WINDOWS服务程序
  11. Broken pipe错误终极解释
  12. jmeter系列-------脚本编写格式
  13. python爬虫(2)——编写一个爬虫
  14. Map的四种遍历
  15. mysql5.7在windwos下的安装
  16. Build fails with an error: Execution failed for task &#39;:react-native-google-analytics-bridge:compileDebugJavaWithJavac&#39;.
  17. Cassandra创建第一个用户
  18. tp剩余未验证内容-3
  19. Java基础 【Arrays 类的使用】
  20. mysql中if()函数使用

热门文章

  1. Ubuntu编译PHP7问题
  2. HDU 4902 Nice boat 2014杭电多校训练赛第四场F题(线段树区间更新)
  3. BZOJ2631——tree
  4. [转载]Eclipse.ini的相关说明
  5. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
  6. BZOJ 3363: [Usaco2004 Feb]Cow Marathon 奶牛马拉松
  7. centos7 &amp; mysql
  8. 10. JEB1.5 插件编写二
  9. 按钮点击事件,打开新的Activity
  10. Sort Transformed Array