博主名取自《小羊肖恩》中的小羊肖恩,名字为:肖恩,音译为Sean,自己取的姓:阿奇,为符合我们的阅读习惯,连起来组成为ArchieSean。博主目前大三在读,志在将博客打造成为个人线上笔记的技术栈,方便自己也方便他人。如博客中有任何错误,请各位指出,谢谢大家。
servlet概述
简单来说,它是服务器端的小程序。
servlet就是一个接口,它定义了java类被浏览器访问到的规则。
servlet结构体系
servlet方法
如图 实现servlet接口,重写其方法。
import javax.servlet.*;
import java.io.IOException;
public class Csdn implements Servlet {
@Override
//初始化方法,在servlet被创建时执行,并且只执行一次
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
//获取ServletConfig对象
public ServletConfig getServletConfig() {
return null;
}
@Override
//提供服务的方法,每次访问时执行
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
@Override
//返回servlet的信息,例如作者,版本等
public String getServletInfo() {
return null;
}
@Override
//销毁方法,在服务器关闭时调用
public void destroy() {
}
}
servlet生命周期
- 出生: init方法执行,且只执行一次,servlet被创建。
默认情况下,第一次访问时,servlet被创建,也可以是服务器启动时创建。 - 活着:执行 service方法,可执行多次。
- 死亡: destroy方法执行
服务器关闭时,执行destriy方法,servlet被销毁。
servlet的xml配置
位于WEB-INF下的web.xml
<web-app>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.xxx.servlet.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>
servlet原理
如上图所示:
- 当服务器收到服务器请求时,会解析url路径,获取访问servlet的资源路径。
- 服务器会去查找web.xml文件,找到和访问路径一致的url-pattern标签内容
- 再去找对应的servlet-class标签,拿到servlet的全类名
- 将该类的class文件加载进内存(使用反射:Class.forName()来加载)
- 创建其对象(反射:Class.newInstance()创建对象)
- 调用service方法
Servlet的注解配置
@webServlet(value="访问路径")
将该注解添加在servlet类之上即可,此时就不需要xml的配置了。
request和response再下一篇中总结。博文中若有任何问题,请评论区评论留言,谢谢。