Servlet / Jsp / Spring MVC 初学指南 Servlets

什么是Servlet?

Servlet就是一个java程序,需要Web 容器来能运行,一般被托管在Web容器中。

图示中,浏览器充当客户端,web服务器与客户端直接通过HTTP协议进行通信,所以,Web服务器也叫Http服务器

一般在Servlet容器外部包装Apache或者Nginx进行反向代理。

什么是HTTP协议?

Http协议是目前CS及BS模式下使用范围最广的通信协议。

WebSocket协议可以实现双向通信。

http默认端口80,如果服务器恰好是80端口,端口号可以省略不写,否则需要带上端口号。

Servlet API

javax.servlet

javax.servlet.http

javax.servlet.annotation

javax.servlet.descriptor

Servlet主要类型:

用户请求会使得Servlet容器调用Servlet的Service方法,同时,注入ServletRequest及ServletResponse。

每个应用程序都会存在一个上下文,servletContext,每个Servlet实例都会有一个配置ServletConfig

init只在Servlet初始化执行一次,destory只在销毁或停止使用一次,因为一个应用中,servlet只存在一个实例,各个线程共享这个实例,所以需要确保线程安全。

getServletInfo只是返回一条说明语句,getServletConfig返回init注入的ServletConfig对象。

编写一个Servlet类,实现Servlet接口

@WebServlet注解指明这是一个Servlet类,name指定名称, urlPattern指定路由

transient指明是不需要持久化。

应用程序目录

应用目录下防止资源文件,WEB-INF下的文件需要通过路由,其他位置的可以直接访问。

classes存放类文件,lib存放jar包

ServletRequest

Web容器提供一个ServletRequest参数注入到Service函数

获取内容长度:

获取内容类型:

获取参数:

获取协议类型:

ServletResponse

setContentType()设置内容类型

getWriter()获取输出流

ServletConfig

获取配置信息

获取配置名:

获取上下文:

getServletContext()

ServletContext

每个Servlet应用只有一个ServletContetx

通过调用ServletContext方法就可以获取到上下文对象。在将同一个应用部署到不同的服务器上搭建分布式的时候,常常使用。

获取参数:

获取参数名:

设置参数:

移除参数:

GenericServlet是一个抽象类,也可以通过继承GenericServlet来实现Servlet类的设计

HttpServlet

Service方法:

实际上,上述的方法在doGet,doPost中已经实现了,只需要复写他们即可

与上述ServletRequest、ServletResponse不同的是,现有的是HttpServletRequest、HttpServletResponse替代

HttpServletRequest

获取请求上下文的路径

获取请求中携带的cookie

获取指定的请求头

获取请求方法

获取查询字符串

获取Session

当create传入True才会创建Session

HttpServletResponse

添加cookie

添加请求头

发送重定向请求

使用Xml部署文件替换注解

配置文件位置:

猜你喜欢

转载自blog.csdn.net/Day_and_Night_2017/article/details/88796791