JavaEE提供的用于处理web应用程序请求和响应的规范
Servlet是一个接口,Tomcat可以运行实现了该接口的类
补充知识点
idea关联了一个Tomcat服务器,将项目部署到Tomcat中,idea为什么将项目部署到 out/artifacts/项目名称_war_exploded 目录中,而不是部署到tomcat/webapps中
虚拟目录技术: tomcat 支持项目可以不在webapps中, 可以将项目放在任意路径下,使用虚拟目录技术, 在启动Tomcat时,不仅可以将webapps下项目运行,还可以将配置虚拟目录下的项目加载并运行
<Context path="/jd" docBase="D:/jd" debug="0" reloadable="true" crossContext="true"/>
1.1 Servlet接口
package javax.servlet; import java.io.IOException; public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); }
Servlet接口中定义了5个抽象方法,其中service()方法最为重要
实现了Servlet接口的类,可以运行在Tomcat容器中的类,这个类
的对象Tomcat容器帮你自动创建, 这个对象也是Tomcat容器中的一种资源,这种资源称为动态资源
静态资源: *.html *.css *.js *.png *.jpg ....
动态资源: 被tomcat运行的对象,调用对象的方法才能响应的资源
静态资源和动态资源在服务器需要有名字能被tomcat检索到,并且需要提供一个对外的访问路径来访问服务器中的这些资源
浏览器无法直接访问 WEB-INF 这个目录(这个目录对外界不可见)
如果让外界(浏览器)能够访问到这个动态资源(Servlet类)
在Servlet实现类的上面加注解@WebServlet(servlet 3.0规范才支持)
@WebServlet(urlPatterns = {"/myServlet"})
urlPatterns属性设置映射路径: 数组,可以设置多个映射路径
/ 后台的斜杠 代表的是web应用的根路径 http://localhost:8080/baidu/
/ 前端的斜杠 代表的是 服务器的根路径 http://localhost:8080/
如果项目是一个根项目: http://localhost:8080/ 就是项目的根路径
idea运行tomcat,在控制台输出中文有乱码问题?
-Dfile.encoding=utf-8