浅谈-----Servlet

Servlet

一、什么是Servlet?

  • Servlet是JavaWeb应用中最核心的组件,是运行在服务中的程序。
  • Servlet可以完成以下任务:
1、动态生成HTML文档。
2、将请求转发给Servlet组件。
3、读取客户端的Cookie,以及向客户端写入Cookie。
4、访问服务器的资源,如数据库、XML、文件对象。
  •  Servlet的特点:Servlet对象,有Servlet容器(Tomcat)创建。
  • Servlet是一个接口:位于javax.servlet包中。
  • Servlet源码:          
<span style="white-space:pre">	</span>package javax.servlet;
<span style="white-space:pre">	</span>import java.io.IOException;
<span style="white-space:pre">	</span>public abstract interface Servlet
<span style="white-space:pre">	</span>{
  <span style="white-space:pre">	</span>public abstract void init(ServletConfig paramServletConfig)
   <span style="white-space:pre">	</span> throws ServletException;

 <span style="white-space:pre">	</span>public abstract ServletConfig getServletConfig();

 <span style="white-space:pre">	</span>public abstract void service(ServletRequest paramServletRequest, ServletResponse paramServletResponse)
   <span style="white-space:pre">	</span> throws ServletException, IOException;

  <span style="white-space:pre">	</span>public abstract String getServletInfo();

 <span style="white-space:pre">	</span>public abstract void destroy();
<span style="white-space:pre">	</span>}

二、怎么使用Servlet?

step1实现Servlet接口:
<span style="white-space:pre">	</span>//service方法用于接收用户的请求并返回响应
<span style="white-space:pre">	</span>//2、用户访问时多次被执行
<span style="white-space:pre">	</span>public void service(ServletRequest req, ServletResponse rep)
	throws ServletException, IOException {
	<span style="white-space:pre">	</span>//通过outputStream输出信息给用户
	<span style="white-space:pre">	</span>PrintWriter out = resp.getWriter();
	<span style="white-space:pre">	</span>out.println(“Hello World”);
<span style="white-space:pre">	</span>}
step2配置Servlet:
<span style="font-size:14px;">     <!-- 在web.xml中配置你的Servlet,颜色相同为对应关系 -->
  <span style="white-space:pre">	</span><servlet>
  	<span style="white-space:pre">	</span><servlet-name>one</servlet-name>
  	<span style="white-space:pre">	</span><servlet-class>cn.hncu.OneServlet</servlet-class>
 <span style="white-space:pre">	</span> </servlet>
     <!-- 配置你的Servlet的影射目录 -->
 <span style="white-space:pre">	</span> <servlet-mapping>
  	<span style="white-space:pre">	</span><servlet-name>one</servlet-name>
  	<span style="white-space:pre">	</span><url-pattern>/one</url-pattern>
  <span style="white-space:pre">	</span></servlet-mapping>
</span>

//在浏览器地址栏通过以下方式访问:

http://localhost:8080/项目名/one

三、Servlet的生命周期。

  •  init方法:

1、只会被初始化一次。由容器初始化,初始化成功后将缓存于容器中。

   2、它的初始化时间分为两种:第一种:用户第一次访问时;第二种:服务器启动时。--需配置。
  • service方法
   1、每次请求都会访问此方法。
     2、每次请求都会创建新的Requset和Response对象。
  • destory方法
      当服务器关闭时有容器调用并销毁。

四、Servlet的其他相关类

  •  ServletConfig:代表Servlet的初始化配置参数。
  •  ServletContext:代表整个Web项目。
  •  ServletRequset:代表用户的请求。
  •  ServletResponse:代表用户的响应。
  •  HttpSession:代表用户的一次会话。

ServletConfig:

  •   它包含了Servlet的初始化参数。
  •   它还与ServletContext对象关联。
  •   方法:
1、getInitParameter   //获取单个配置的参数
2、getInitParameterNames  //获取所有配置的名称集合
3、getServletContext   //获取ServletContext(代表本项目)对象
  • ServletConfig获取初始化参数:
<span style="font-size:14px;"><span style="white-space:pre">	</span><!-- 在Servlet的配置初始化参数 -->
 <span style="white-space:pre">	</span> <init-param>
  	<span style="white-space:pre">	</span><param-name>name</param-name>
  	<span style="white-space:pre">	</span><param-value>hncu</param-value>
<span style="white-space:pre">	</span> </init-param></span>

servletConfig.getInitParameter(“name”);

//即可以获取name对应的值hncu


ServletContext:

  •   每一个Web应用,拥有一个唯一的ServletContext,当应用启动时创建,当应用关闭时销毁。
  •   ServletContext可用于在同一个Web项目中,共享资源。
  •   方法:
getContextPath
getInitParameter,getInitParameterNames
getRequestDispatcher(path)
getRealPath     -项目的根式
getResource
getResourceAsStream
setAttribute,getAttribute

ServletContext获取项目信息:

  • getContextPath();     //项目名称
  •   getRealPath("/");       //项目的真实目录


五、Servlet实现类

  •     Javax.servlet.GenericServlet
1、此类实现了ServletConfig接口。
2、增加了init()没有参数的方法。
3、增加了getServletContext()方法,但此方法任然是从ServletConfig中获取ServletContext。
  •     Javax.servlet.HttpServlet
1、继承了GenericServlet,用不同的方法处理get或post请求。
2、奖ServletRequest转成HttpServletRequest等。
  •     Java建议通过实现HttpServlet来完成Servlet的开发。

六、让Servlet在启动时加载

  • 在web.xml  Servlet的配置为:<load-on-startup>1</load-on-startup>
  • 在项目启动时加载一些必须的资源、如准备资源文件


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值