servlet
Servlet简单入门Tomcat:web应用服务器bin:存放各个平台启动和停止Tomcat服务的脚本和文件conf:存放各种Tomcat服务器的配置文件lib:存放Tomcat服务器所需要的jarlogs:存放Tomcat服务器运行的日志temp:Tomcat运行时的临时文件webapps:存放允许客户端访问的资源(java程序)核心work:存放Tomcat将JSP转换之后的Servlet文
Servlet简单入门
Tomcat:web应用服务器
- bin:存放各个平台启动和停止Tomcat服务的脚本和文件
- conf:存放各种Tomcat服务器的配置文件
- lib:存放Tomcat服务器所需要的jar
- logs:存放Tomcat服务器运行的日志
- temp:Tomcat运行时的临时文件
- webapps:存放允许客户端访问的资源(java程序)核心
- work:存放Tomcat将JSP转换之后的Servlet文件
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,映射需要手动配置
<servlet>
<!-- 配置Servlet名称,名称必须唯一 -->
<servlet-name>Servlet</servlet-name>
<!-- 配置Servlet完全路径(包名+类名) -->
<servlet-class>com.ganggu.Servlet</servlet-class>
</servlet>
<!-- 配置Servlet映射(访问路径) -->
<servlet-mapping>
<!-- 配置Servlet名称,必须和上面的相同 -->
<servlet-name>Servlet</servlet-name>
<!-- 配置虚拟路径(访问路径) -->
<url-pattern>/Servlet</url-pattern>
</servlet-mapping>
- 第二种:基于注解的方式
@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、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应用对应一个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)