Java web应用程序中所有的请求-响应都是由servlet来完成的,servlet是java web的核心程序,所有的网址最终都交给servlet来处理。servlet并没有main之类的执行方法。当用户访问服务器的时候,Tomcat是通过调用servlet的某些方法来完成整个的处理过程的。
Servlet工作流程:
浏览器提交的请求是遵循Http协议的文本。这段文本由服务器也就是Tomcat接收并解析,封装成了HttpServletRequest类型的request对象,所有的HTTP头数据都可以通过request对应的方法查询到。
Tomcat同时把输出流封装为HttpServletResponse类型的response对象,通过设置response属性就可以控制输出的内容。然后,Tomcat把request、response作为参数,调用Servlet的相应方法,例如doPost(request,response)、doGet(request,response)等。
Servlet中主要处理业务逻辑,例如读取数据库、权限检查、业务处理等。
Servlet接口:
Servlet是一种实现了javax,servlet.Servlet接口的类。Servlet接口规定了特定的方法来处理特定的请求。开发者只需要实现Servlet的相关方法,用户访问web程序的时候,Tomcat会调用这些方法完成业务处理。
Servlet规范是建立在HTTP规范基础上的。HTTP1.1规范支持OPTIONS、GET、POST、HEAD、PUT、DELETE以及TRACE等七种Web访问方式。
GRT表示查询讯息,URL中可以附带少量的参数信息,但是URL总长度不能超过255个字符,并且参数会显示在浏览器地址栏。
POST表示提交信息,一般用于提交大数据信息或者文件,提交的内容不受长度显示,并且不会显示在浏览器地址栏。
HEAD表示查询文档头信息,服务器会返回文件类型、长度、最后修改时间等信息。该方式很少被使用。
其中,最常用的是GET和POST。当浏览器以xxx的方式访问网络程序时,Servlet执行形如void doXxx(HttpServletRequest request,HttpServletResponse response)的方法。例如doGet,doPost等。参数HttpServletRequest与HttpServletResponse分贝为客户端请求与服务器响应。
Servlet还有一个方法long getLastModified(HttpServletRequest request),返回该文档最后修改时间,默认为-1,表示该文档永远是最新的。