Servlet入门,servlet生命周期以及IDEA配置tomcat
概念百度百科介绍的servlet可以理解为一个接口我们去实现这个,通过这个接口可以让浏览器访问到java程序快速入门创建java web 项目实现Servlet接口实现接口中的方法配置web.xml文件执行程序代码:package cn.Sadhu.web.servlet;import javax.servlet.*;import java.io.IOException;/*** 快速入门Serv
·
概念
百度百科介绍的servlet
可以理解为一个接口我们去实现这个,通过这个接口可以让浏览器访问到java程序
快速入门
- 创建java web 项目
- 实现Servlet接口
- 实现接口中的方法
- 配置web.xml文件
- 执行程序
代码:
package cn.Sadhu.web.servlet;
import javax.servlet.*;
import java.io.IOException;
/**
* 快速入门Servlet
*/
public class ServletDemo1 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 {
System.out.println("调用service");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置Servlet-->
<servlet>
<servlet-name>ServletDemo1</servlet-name>
<servlet-class>cn.Sadhu.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
</web-app>
目录结构
执行结果:
Servlet执行过程
浏览器解析路径→找到对应web.xml文件→找到其中的<url-partern>标签对应的内容→找到<servlet-class>对应的类→tomcat将这些内容加载进内存中→创建对象执行对应方法
Servlet生命周期
概括为三部分:创建→提供服务→销毁
-
创建:
- init()方法创建,只执行一次,这就导致了一个问题,多个用户访问的是同一个对象,涉及到线程安全的问题,解决这个问题不要用加锁很影响效率,只要不在这里修改变量值就行。
- 创建时间:默认第一次访问被创建。也可以在配置文件中写<load-on-startup>设置成大于等于0的数据就可以是启动的时候创建 -
提供服务:
执行一次就会调用一次service方法 -
销毁:
在Servlet正常关闭的时候执行,只会执行一次
在关闭之前执行
Serverlet 3.0及以上:
支持注解配置
具体步骤(和上面类似):
- 创建java web项目
- 实现Servlet接口
- 复写service方法
- 在该类上添加注解:@Serverlet(“资源路径”)
一个简单的例子
创建项目的时候可以不要web.xml
代码:
package cn.sadhu.web.servlet;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/demo2")
public class ServletDemo2 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 {
System.out.println("serverlet3.0");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
运行结果:
思维导图总结:
说明:
个人学习笔记如果有错误地方感谢指出
更多推荐
已为社区贡献1条内容
所有评论(0)