- bin:存放各个平台启动和停止Tomcat服务的脚本和文件
- conf:存放各种Tomcat服务器的配置文件
- lib:存放Tomcat服务器所需要的jar
- logs:存放Tomcat服务器运行的日志
- temp:Tomcat运行时的临时文件
- webapps:存放允许客户端访问的资源(java程序)核心
- work:存放Tomcat将JSP转换之后的Servlet文件
-
什么是Servlet?
Servlet是javaweb开发的基石,与平台无关的服务器组件,他是运行在servlet容器/web应用服务器/Tomcat,负责与客户端进行通信
-
Servlet功能:
1、创建并返回基于客户请求的动态HTML页面
2、与数据库进行通信
-
如何使用Servlet?
Servlet本身是一组接口,(javax.servlet包)自定义一个类,并且实现Servlet接口,这个类
public class Servlet implements javax.servlet.Servlet { //初始化 @Override public void init(ServletConfig servletConfig) throws ServletException { } //返一个ServletConfig对象 @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,映射需要手动配置
- 第一种:基于XML文件的配置方式
- 在web.XML 中配置
Servlet com.ganggu.Servlet Servlet /Servlet
- 第二种:基于注解的方式
@WebServlet("/demo2") public class HelloServlet implements Servlet { }
上面两种配置方式结果一样,将demo2与HelloServlet进行映射,即在浏览器地址栏中直接访问demo2就可以映射到HelloServlet
Servlet的生命周期1、当浏览器访问Servlet的时候,Tomcat会查询当前Servlet的实例对象是否存在,如果不存在,则通过反射机制动态创建对象,如果存在,直接执行第3步
2、调用intitle方法完成初始化 *** 作
3、调用service方法完成业务逻辑 *** 作
4、关闭Tomcat时,会调用destory方法,释放当前对象占用的资源
Servlet的生命周期方法:无参构造函数、init、 service、destory1、无参构造函数只调用一次,创建对象
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应用对应一个ServletContext,多个Servlet实例对应一个ServletContext
一个局部对象,一个全局对象
GenericServlet将Servlet接口中其他的方法做了默认空实现, 只将service()方法作为抽象
将来定义Servlet类是,可以继承GenericServlet,实现service()方法
HTTPServlet- doGet方法:接收地址栏请求
- doPost方法:接收表单请求
public class Servlet_http extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doGet。。。。"); //super.doGet(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost。。。。"); //super.doPost(req, resp); }注解配置
@WebServlet("/demo1")//Servlet资源路径
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)