Servlet学习笔记2——初探Servlet

Servlet

什么是 Servlet?

Servlet 是 Java Web 开发的基⽯,与平台⽆关的服务器组件,它是运⾏在 Servlet 容器/Web 应⽤服务器/Tomcat,负责与客户端进⾏通信。

Servlet 的功能:
1、创建并返回基于客户请求的动态 HTML ⻚⾯。
2、与数据库进⾏通信。

如何使用Servlet?

public class MyServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse
servletResponse) throws ServletException, IOException {
String id = servletRequest.getParameter("id");
System.out.println("我是Servlet,我已经接收到了客户端发来的请求,参数是"+id);
servletResponse.setContentType("text/html;charset=UTF-8");
servletResponse.getWriter().write("客户端你好,我已接收到你的请求");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}

Servlet 本身是⼀组接⼝,⾃定义⼀个类,并且实现 Servlet 接⼝,这个类就具备了接受客户端请求以及
做出响应的功能。
浏览器不能直接访问 Servlet ⽂件,只能通过映射的⽅式来间接访问 Servlet,映射需要开发者⼿动配置,有两种配置⽅式。

  • 基于 XML ⽂件的配置⽅式。
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.southwind.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/demo2</url-pattern>
</servlet-mapping>

注:一个servlet标签对应一个servlet-mapping标签,servlet标签和servlet-mapping标签通过servlet-name进行联系,所以servlet-name标签中的文本可以随意编写,只要一致即可。servlet-class标签配置servlet的完整类名,如果这个类有包名,必须添加包名。url-pattern主要编写请求路径,这个请求路径必须以“/”开始,只要以“/”开始即可,后续的具体路径可以随意(但是这个路径一旦定下来,浏览器向服务器发送请求的时候,超链接发送的请求路径必须和url-pattern中配置的路径一致),web.xml文件的配制主要作用是将“Servlet类名”和“请求路径”绑定在一起。

  • 基于注解的⽅式。
@WebServlet("/demo2")
public class HelloServlet implements Servlet {
}

Servlet 的⽣命周期

1、当浏览器访问 Servlet 的时候, Tomcat 会查询当前 Servlet 的实例化对象是否存在,如果不存在,
则通过反射机制动态创建对象,如果存在,直接执⾏第 3 步。
2、调⽤ init ⽅法完成初始化操作。
3、调⽤ service ⽅法完成业务逻辑操作。
4、关闭 Tomcat 时,会调⽤ destory ⽅法,释放当前对象所占⽤的资源。

Servlet 的⽣命周期⽅法:⽆参构造函数、 init、 service、 destory
1、⽆参构造函数只调⽤⼀次,创建对象。
2、 init 只调⽤⼀次,初始化对象。
3、 service 调⽤ N 次,执⾏业务⽅法。
4、 destory 只调⽤⼀次,卸载对象。

ServletConfig

该接⼝是⽤来描述 Servlet 的基本信息的。
getServletName() 返回 Servlet 的名称,全类名(带着包名的类名)
getInitParameter(String key) 获取 init 参数的值(web.xml)
getInitParameterNames() 返回所有的 initParamter 的 name 值,⼀般⽤作遍历初始化参数
getServletContext() 返回 ServletContext 对象,它是 Servlet 的上下⽂,整个 Servlet 的管理者。
ServletConfig 和 ServletContext 的区别:
ServletConfig 作⽤于某个 Servlet 实例,每个 Servlet 都有对应的 ServletConfig, ServletContext 作⽤
于整个 Web 应⽤,⼀个 Web 应⽤对应⼀个 ServletContext,多个 Servlet 实例对应⼀个
ServletContext。
⼀个是局部对象,⼀个是全局对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值