servlet是Server Applet的简称,翻译过来就是服务程序。简单的讲,这个servlet是运行在服务器上的一个小程序,用来处理服务器请求的。一般的网页程序,是由我们通过浏览器访问来实现的,在这个过程中,我们的浏览器发送访问请求,服务器接收请求,并对浏览器的请求作出相应的处理。这就是我们熟悉的B/S模型(浏览器-服务器模型)。而servlet就是对请求作出处理的组件,运行于支持Java的应用服务器中。
继承体系 Servlet优势性能明显更好。Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。Servlet 是独立于平台的,因为它们是用 Java 编写的。服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。生命周期
Servlet中重要的对象1、被创建:init()
默认,第一次被访问时创建
服务器启动时创建
0或正数 因为是单例的,存在线程安全问题,尽量不要在servlet定义成员变量。
2、提供服务:service()
每当请求Servlet时,Servlet容器就会调用这个方法。
3、被销毁:destroy()
当要销毁Servlet时,Servlet容器就会调用这个方法。
在servlet中共有四个重要的对象:
HttpServletRequest 请求对象:获取请求信息HttpServletResponse 响应对象: 设置响应对象ServletConfig对象 servlet配置对象ServletContext对象 servlet的上下文对象
相关功能获取请求行数据
getMethod() 获取请求方法
getContextPath() 获取虚拟路径
getServletPath() 获取Servlet路径
getQueryString() 获取get方法请求参数
getRequestUrl() 获取请求URL
getProtocol() 获取协议及版本
getRemoteAddr() 获取客户机的IP地址
获取请求头数据
String getHeader(String name) 通过请求头的名称获取请求头的值
EnumerationgetHeaderNames() 获取所有的请求头名称
获取请求参数的通用方式
ServletContext对象getParameter(String name) 根据参数名称获取参数值
getParameterValues(String name) 根据参数名称获取参数值的数组
EnumerationgetParameterNames() 获取所有的请求的参数名称
MapgetParameterMap() 获取所有参数的map集合
中文乱码问题
get方式:tomcat8自动解决了
post方式:获取参数前,设置request编码
request.serCharacterEncoding("utf-8")
概念:代表整个web应用,可以和程序的容器(服务器)来通讯
获取ServletContext对象
request方式 request.getServletContext()HttpServlet方式 this.getServletContext()功能
获取MIME类型
在互联网通信过程中定义的一种文件数据类型格式:大类型/小类型 text/html image/jepg获取:String getMimeType(String file)域对象:共享数据
所有用户所有请求的数据获取文件的真实路径
/文件 web目录下的资源访问/WEB-INF/文件 WEB-INF目录下的资源访问/WEB-INF/classes/文件 src目录下的文件访问