目录
概述
1.1什么是servlet?
就是一个java类,是javweb的规范之一,也是三大组件之一(serlvet,listener,filter)
作用:负责接收用户的请求以及做出响应。(之前是由doXxx.jsp)
servlet是JavaEE的规范(接口)
Server Applet;servlet是javaweb的三大组件之一,它属于动态资源。servlet的作用是处理请求,服务器会把接收到的请求交给servlet来处理,在servlet通常需要:
-
接收请求数据
-
处理请求
-
完成响应
例如客户端发出登录请求,或者输出注册请求,
这些请求都应该有servlet来完成处理!servlet需要我们自己来编写,
每个servlet必须实现javax.servlet.Servlet接口。
servlet执行原理
(1)当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
(2)查找web.xml文件,是否有对应的<url-pattern>标签体内容。
(3)如果有,则在找到对应的<servlet-class>全类名
(4)tomcat会将字节码文件加载进内存,并且创建其对象
(5)调用其方法
1.2实现servlet的方法
实现servlet有三种方式:
-
实现javax.servlet.Servlet接口;
-
继承javax.servlet.GenericServlet类;
-
继承javax.servlet.http.HttpServlet类;
通常会继承HttpServlet类来完成我们的Servlet。
1.3selvlet的生命周期
生命周期方法
void init(ServletConfig):出生之后(1次)
void service(ServletRequest request,ServletResponse response):每次处理请求时都会被调用
void destory():临时之前调用(1次)
快速入门:
实现servlet接口 不常用
-
继承HttpServlet抽象类 doGet doPost
完成servlet文件的编写后必须要实现配置
2种方式
注解 @webServlet("/路径")
web.xml中进行配置
<servlet>
<servlet-name>xxx</servlet-name>
<servlet-class>com.zking.AServlet</servlet-class></servlet>
<servlet-mapping>
<servlet-name>xxx</servlet-name>
<url-pattern>/xxx.do</url-pattern>
</servlet-mapping>
jsp 九大内置对象 与servlet的关系以及如何获取
jsp内置对象 | servlet中java对象 | 获取 |
---|---|---|
request | HttpServletRequest | service方法中的req参数 |
response | HttpServletResponse | service方法中的resp参数 |
session | HttpSession | req.getSession() |
exception | Throwable | |
page | this | this |
pageContext | PageContext | |
application | ServletContext | getServletContext() |
config | ServletConfig | getServletConfig() |
out | JspWriter | resp.getWriter() |
servlet中2个重要对象
ServletConfig配置对象
ServletContext全局对象
都是获取web.xml中的参数问题。
编码如何设置
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.setContentType("text/html;charset=utf-8");
如何在serlvet中获取到当前项目的绝对路径
这里的绝对路径指的是基于项目的根目录而不是基于磁盘。
String path = this.getServletConfig().getServletContext().getContextPath();
/项目名称
path+"/index.jsp"