javaweb中servlet,javaweb jsp servlet

  javaweb中servlet,javaweb jsp servlet

  1.Servlet Foundation是为Servlet技术开发的。Sun公司提供了一些列接口和类,其中最重要的是javax。Servlet.Servlet接口,而两个重要的包是javax.servlet和javax.servlet.http Servlet是实现Servlet接口的类,由Web容器(Tomcat/Jetty等)调用和创建。)来接收和响应用户请求。Servlet接口中定义了五种抽象方法:

  顶级Servlet类结构如下:

  2.第一个Servlet程序创建一个新的Java Web项目,然后创建一个新的Hello类。Hello.java源代码如下:

  包zzz导入Java . io . io exception;导入Java . io . printwriter;导入javax . servlet . http . http servlet;导入javax . servlet . http . http servlet request;导入javax . servlet . http . http servlet response;公共类Hello扩展HttpServlet {

  @ override public void doget(http servlet request请求,http servlet response响应)抛出IO异常{//设置响应消息代码

  response . set content type( text/html;charset=utf-8 );

  PrintWriter out=response . getwriter();

  out . println( Hello World );

  }

  @ Override public void doPost(http servlet request请求,HttpServletResponse响应)抛出IOException { this.doGet(请求,响应);

  }

  }配置文件web.xml如下:

  ?xml版本=1.0 编码=UTF-8 ?

  we B- app xmlns:xsi= http://www . w3 . org/2001/XML schema-instance xmlns= http://xmlns . JCP . org/XML/ns/javaee xsi:schema location= http://xmlns . JCP . org/XML/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd ID= web app _ ID 版本=3.1

  显示名称zzz/显示名称

  servlet!-注册Servlet -

  servlet-name你好/servlet-name!-指定Servlet名称-

  servlet级zzz。Hello /servlet-class!-指定完整的Servlet类名-

  /servlet

  servlet-映射!-映射Servlet的外部访问路径-

  servlet-name你好/servlet-name!-指定Servlet名称-

  网址模式/你好/网址模式!-指定访问Servlet的虚拟路径-

  /servlet-映射

  /web-app启动并运行浏览器,如下所示:

  3.Servlet生命周期

  Servlet生命周期大致可以分为三个阶段:初始化阶段、运行阶段和销毁阶段。以下是每个阶段的详细描述:

  初始化阶段:当客户端向Servlet容器发送访问Servlet的请求时,容器首先解析请求,看内存中是否存在Servlet对象,是否直接使用;否则,创建Servlet对象,然后调用init()方法。注意,在整个Servlet声明周期中,init()只会调用运行时阶段一次:这是Servlet最重要的阶段。在这个阶段,容器将构造一个ServletRequest和ServletResponse对象作为参数,并将它们传递给Servlet的service()方法。Servlet容器对Servlet的每次访问都会调用一次service()方法,在Servlet的整个生命周期中会多次调用service()方法。当服务器关闭或者Web应用从容器中移除时,就会进入这个阶段,此时就会调用destroy()方法。destroy()方法在整个生命周期中只会被调用一次。当客户机第一次访问Servlet时,容器将创建Servlet对象,但是有时预期Servlet对象将跟随Tomcat的启动。这个怎么处理?此时,您只需要使用web.xml中的load-on-startup元素。示例配置如下:

  小型应用程序

  servlet-name你好/servlet-name

  servlet级zzz。Hello /servlet-class

  !-自动加载servlet程序-

  启动时加载1/启动时加载

  /servlet

  servlet映射

  servlet-name你好/servlet-name

  url模式/hello /url模式

  /Servlet-mapping 4、ServletConfig和ServletContextServletConfig接口在Servlet运行过程中,如果需要一些辅助信息,比如文件代码、使用Servlet的公司等。这些信息可以在web.xml中使用init-param元素进行配置,当Tomcat初始化一个Servlet时,它将Servlet配置信息封装到一个ServletConfig对象中,并通过init(ServletConfig config)传递给Servlet。ServletConfig定义了一系列获取配置信息的方法:

  接下来以getInitParameter()为例来说明这个方法的使用示例:

  web.xml配置文件如下所示:

  ?可扩展标记语言版本号允许=1.0 编码=UTF八号?

  我们B- app xmlns:xsi= http://www。w3。org/2001/XML schema-instance xmlns= http://xmlns。JCP。org/XML/ns/javaee xsi:schema location= http://xmlns。JCP。org/XML/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd ID= web app _ ID 版本=3.1

  显示名称zzz/显示名称

  小型应用程序

  servlet名称你好/servlet-name

  小型应用程序级zzz .Hello /servlet-class

  初始化参数

  参数名称公司/param-name

  参数值大华/参数值

  /init-param

  /servlet

  小型应用程序映射

  servlet名称你好/servlet-name

  全球资源定位器(Uniform Resource Locator)模式/你好/url模式

  /servlet-映射

  /网络应用Hello.java文件如下:

  包打鼾声导入Java。io。io异常;导入Java。io。版画家;导入javax。servlet。servlet配置;导入javax。servlet。http。http servlet导入javax。servlet。http。http servlet请求;导入javax。servlet。http。http servlet响应;公共类你好扩展HttpServlet {

  @覆盖公共void doGet(http servlet请求请求,HttpServletResponse响应)引发IOException { //设置响应消息编码

  回应。设置内容类型( text/html;charset=utf-8 );

  PrintWriter out=响应。getwriter();

  servlet配置配置=this。get servlet config();

  字符串param=config。getinitparameter( company );

  出去。println( company: param );

  }

  @覆盖public void doPost(http servlet请求请求,HttpServletResponse响应)抛出IOException { this.doGet(请求,响应);

  }

  } servlet上下文接口当小型应用程序容器启动时,会为每一个网应用创建一个唯一的小型应用程序上下文对象代表当前网应用,该对象不仅封装了该网应用的所有信息,而且实现了多个小型应用程序对象间的数据共享。在web.xml中不仅可以配置小型应用程序的初始化信息,还可以配置整个网应用的初始化信息,配置方式如下所示:

  上下文参数

  参数名称名称/参数名称

  参数值luoxn 28/参数值

  /content-参数

  上下文参数

  参数名称公司/param-name

  参数值大华/参数值

  /content-参数注意:一个上下文参数元素里只能有一个参数名称和参数值,上面的配置在web.xml中元素内下配置。Hello.java文件如下:

  包打鼾声导入Java。io。io异常;导入Java。io。版画家;导入Java。util。枚举;导入javax。servlet。servlet上下文;导入javax。servlet。http。http servlet导入javax。servlet。http。http servlet请求;导入javax。servlet。http。http servlet响应;公共类你好扩展HttpServlet {

  @覆盖公共void doGet(http servlet请求请求,HttpServletResponse响应)引发IOException { //设置响应消息编码

  回应。设置内容类型( text/html;charset=utf-8 );

  PrintWriter out=响应。getwriter();

  servlet上下文context=this。get servlet context();

  枚举字符串param names=上下文。getinit参数名();while(参数名称。hasmorelements()){

  字符串名称=参数名称。next element();

  字符串值=上下文。getinitparameter(名称);

  out.println(name : value br/

  }

  }

  @覆盖public void doPost(http servlet请求请求,HttpServletResponse响应)抛出IOException { this.doGet(请求,响应);

  }

  }由于一个网应用中所有小型应用程序共享一个小型应用程序上下文对象,所以小型应用程序上下文对象的域属性可以被网应用中所有的小型应用程序访问。在小型应用程序上下文接口中定义了分别增加、删除、设置小型应用程序上下文域属性的四个方法:

  通过以上方法就可以实现多个小型应用程序间共享数据,这个具体实例就不贴代码了。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: