Servlet

  servlet是小型服务器语言,使用它可以处理前台传递来的信息,servlet进行处理后在响应给前台,其中servlet起到了关键性的作用。前端输入的信息可以持久化的存储在数据库中,并且可以进行信息的校验。

   配置文件

     一般servlet的配置信息是在web.xml中,在项目加载时会加载web.xml文件,这是web.xml的servlet会加载到我们项目中去。那么我们应该怎么去配置呢。在web.xml文件中会有<servlet>标签和<servlet-mapping>标签,其中<servlet>标签是帮助我们找到servlet对应的实类,而<servlet-mapping>则是通过访问的url来映射到我们servlet的实类中去。位置在:<web-app>标签里面一般书写格式是:

  <!--servlet的实类标签-->
<servlet>
   <servlet-name>name</servlet-name>
   <servlet-class>类的全路径</servlet-class>
</servlet>
  <!--servlet的映射标签-->
<servlet-mapping>.
    <!--寻找对应的servlet的实类标签-->
   <servlet-name>name</servlet-name>
    <!--通过访问到url来进行关联-->
   <url-pattern>url</url-pattern>
</servlet-mapping>

  

   生命周期

      初始化>>>>运行>>>>销毁

          init>>>>>service>>>>destory

          初始化:是指servlet的第一次调用则是给servlet初始化的过程,这个动作是服务器完成的。

           它的调用有两种方式:  

            第一种:服务器启动时让servlet初始化(要手动配置

<!--设置其其级别可以是2,3,4,5等  数字越小级别越高-->
<load-on-startup>2</load-on-startup>

            第二种: 是这个servlet类别调用时则会执行初始化方法,整个过程不要我们配置。

      运行:

            表示服务器进行一系列的操作。即提供的服务。最终都是执行doGet()或doPost(),具体是由请求的方式决定。

          销毁 :

            一般是服务器关闭时会销毁servlet

   创建的方式(两种)

        1.实现servlet接口

    

public class Demo01 implements Servlet {

	@Override
public void destroy() {
// 销毁 } @Override
public ServletConfig getServletConfig() {
// 获取servletConfig对象
return null;
} @Override
public String getServletInfo() { return null;
} @Override
public void init(ServletConfig arg0) throws ServletException {
// 初始化 } @Override
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
//服务 服务底层还是调用的doGet或doPost方法
} }

  

        2.继承GenericServlet类或者他的子类

public class Demo1 extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 直接使用服务 不需要考虑服务器的初始化和销毁
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);//简化代码 为了都跳转到doGet方法中
} }

  

   重要方法

    ServletConfig getservletConfig   获取它的servlet配置信息

        1.获取初始化参数

     <servlet>
<servlet-name>Demo05</servlet-name>
<servlet-class>servlet.Demo05</servlet-class>
<init-param>
               <!--设置初始化参数-->
<param-name>name</param-name>
<param-value>zhangsan</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Demo05</servlet-name>
<url-pattern>/Demo05</url-pattern>
</servlet-mapping>

  

	                ServletConfig servletConfig = this.getServletConfig();
String initParameter2 = servletConfig.getInitParameter("name");
System.out.println(initParameter2);

  

        2.获取ServletContext对象

ServletContext servletContext2 = servletConfig.getServletContext();

  

        3.获取servlet的名字

			String servletName = servletConfig.getServletName();
System.out.println(servletName);// 即 表示该servlet在xml中的实类对应的名字。

<servlet>
<servlet-name>E</servlet-name>
<servlet-class>servlet.Demo05</servlet-class>
</servlet>

则打印结果为E

  

     ServletContext  getservletContext  获取上下文信息

        1.获取文件类型

			ServletContext servletContext = this.getServletContext();
//判断文件的类型
String type = servletContext.getMimeType("a.txt");
System.out.println(type);

  

        2.获取项目路径

			ServletContext servletContext = this.getServletContext();
//getContextPath()获取项目路径
String path = servletContext.getContextPath();
System.out.println(path);

  

        3.获取全局化参数配置

   配置全局化参数
   <context-param>
   <param-name>user</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>root</param-value>
</context-param>

      测试 查询

                      ServletContext servletContext = this.getServletContext();
Enumeration<String> enumeration = servletContext.getInitParameterNames();
while(enumeration.hasMoreElements()){
String name = enumeration.nextElement();
String value = servletContext.getInitParameter(name);
System.out.println(name+" "+value);
}

  

day18(javaEE三大组件之一servlet(简介(一)))的更多相关文章

  1. (day20)javaEE三大组件之一Servlet (简介(二)servletconfig,servletContext,session,cookie,request,response,out)

    javaEE是服务器编程,javaEE提供了服务器的接口让具体的服务器去创建实现的对象 JavaEE是sun公司为了解决企业级开发定义的一套技术,只提供了规范,具体的实现是由服务器完成的 servle ...

  2. SpringBoot 注册Servlet三大组件【Servlet、Filter、Listener】-原生代码+@Bean+效果展示

    由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件,class MyServlet()/clas ...

  3. JavaWeb三大组件(Servlet、Filter、Listener)

    JavaWeb三大组件指的是:Servlet.Filter.Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet.Filter,比 ...

  4. 0017SpringBoot注册Servlet三大组件(Servlet、Filter、Listener)

    由于SpringBoot默认是以jar包的形式启动嵌入式servlet容器来启动SpringBoot的web应用,所以没有web.xml文件,那么如何配置Servlet.Filter.Listener ...

  5. JavaWeb三大组件之Servlet

    http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/Servlet.html 一.Servlet继承结构体系图 从结构图中 ...

  6. Javaweb三大组件之一 servlet

    1.servlet基本使用 注意:单例:init只会执行一次    线程不安全 1.1 创建方式 (1)实现servlet接口[不使用] package cn.getword.servlet; imp ...

  7. 大白话Web三大组件之一Servlet

    很多学习到Servlet这里的童鞋,听到那么多专业名词解释这个Servlet,相信都是很蒙圈的,在这里我先不跟大家扯Servlet的大概念,先跟大家探讨一下关于Servlet的作用 相信MVC这个概念 ...

  8. java web(五):java web三大组件之另外两个和八大监听器

    java的三大组件指Servlet.Filter.Listener.八大监听器指八个接口.前面介绍了Servlet,现在介绍一下Filter拦截器以及拦截地址的设置, Listener监听那些事件. ...

  9. JavaEE--JavaWeb三大组件Servlet、Filter、Listener

    Servlet.Filter.Listener是JavaEE Web服务规定的服务器动态组件,由开发者编写由Web容器创建,并保证单例以及线程安全性,其中加载顺序为Linstener -> Fl ...

随机推荐

  1. ftp上传文件异常

    ftp一个服务器 如果是22端口 ssh-2.0-openssh_4.3 ,是什么意思? ftp服务用的是20.21端口,客户端添加ftp信息的时候输入的是21端口 ssh服务用的是22端口,应用于远 ...

  2. 4K - 找新朋友

    新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道 ...

  3. C# 使用printDocument1.Print打印时不显示 正在打印对话框

    C#使用printDocument1.Print打印时不显示正在打印对话框有两种方法 第一种,使用PrintController       PrintController printControll ...

  4. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  5. a label can only be part of statement and a declaratioin is not a statement

    参考资料: https://stackoverflow.com/questions/18496282/why-do-i-get-a-label-can-only-be-part-of-a-statem ...

  6. Linux renew ip command

    $ sudo dhclient -r    //release ip 释放IP$ sudo dhclient       //获取IP Now obtain fresh IP:$ sudo dhcli ...

  7. JDK8集合类源码解析 - ArrayList

    ArrayList主要要注意以下几点: 1构造方法 2添加add(E e) 3 获取 get(int index) 4 删除 remove(int index)    ,   remove(Objec ...

  8. IOS初级:NSUserDefaults

    NSUserDefaults(偏好设置),一个APP对应一个偏好设置 保存/新增数据 //存储数据 NSUserDefaults *defaults = [NSUserDefaults standar ...

  9. jrebel

    jrebel 编辑   JRebel是一套JavaEE开发工具.JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品. JRebel是收费软件,用户可以在JReb ...

  10. 【NIFI】 Apache NiFI 之 ExecuteScript处理(一)

    本例介绍NiFI ExecuteScript处理器的使用,使用的脚本引擎ECMScript FlowFile I / O简介 NiFi中的流文件由两个主要组件构成,即属性和内容.属性是关于内容/流文件 ...