`
yx1989
  • 浏览: 11113 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
社区版块
存档分类
最新评论

Servlet

 
阅读更多

一、创建第一个Servlet,输出HelloServlet
1、建立JavaWeb应用的目录
     firstWeb
          WEB-INF
               classes------>自定义的servlet就放在此处
               lib
               web.xml
2、在classes目录下创建HelloServlet.java文件,内容如下:
package cn.itcast.servlet;
import javax.servlet.*;
import java.io.*;
public class HelloServlet extends GenericServlet{
    
     public void service(ServletRequest req,
                             ServletResponse res)
                      throws ServletException,
                             java.io.IOException{
          res.getOutputStream().write("HelloServlet".getBytes());
     }
}
3、编译HelloServlet.java
     通过控制台(cmd)进入到HelloServlet.java所在的文件夹
     先设置环境变量classpath:
          set classpath=%classpath%;C:\apache-tomcat-6.0.32\lib\servlet-api.jar
          javac -d . HelloServlet.java
4、配置HelloServlet(每写一个Servlet都需要进行配置),在web.xml中进行配置
在<web-app>元素中加入以下内容:
<servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>cn.itcast.servlet.HelloServlet</servlet-class>
    </servlet>
     <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/Hello</url-pattern>
    </servlet-mapping>
5、发布firstApp应用。(开放式目录/war --->拷贝到webapps目录下;也可以用虚拟目录;)
二、修改MyEclipse的servlet默认模板
MyEclipse6:找到MyEclipse6的安装目录,搜索servlet.java,这个就是模板文件
MyEclipse8:C:\Program Files\Genuitec\Common\plugins\com.genuitec.eclipse.wizards_8.5.0.me201003052220.jar这个jar包内的templates内的servlet.java,这个就是模板文件
三、Servlet生命周期
1、代表生命周期的方法init()、service()、destroy()
当用户第一次请求该servlet时,才会执行init()方法,用户对该servlet进行初始化。
若没有用户访问该Servlet,则Servlet不会初始化,即引擎不会实例化该servlet。
一旦servlet初始化了,就会驻留内存。
一旦服务器停止了,会自动执行destroy()方法,用与释放该servlet占用的资源。
2、服务器在启动时自动加载
<servlet>
    <servlet-name>Demo3Servlet</servlet-name>
    <servlet-class>cn.itcast.servlet.Demo3Servlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
说明:<load-on-startup>1</load-on-startup>用于配置服务器自动加载servlet,并初始化,其中的数字代表加载servlet的顺序。

四、ServletConfig对象
Servlet在初始化时,会自动传入一个ServletConfig对象,通过此对像可以获取到针对该servlet配置的参数信息。
参数信息配置如下:
<servlet>
    <servlet-name>Demo5Servlet</servlet-name>
    <servlet-class>cn.itcast.servlet.Demo5Servlet</servlet-class>
    <init-param>
         <param-name>encoding</param-name>
         <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
         <param-name>p1</param-name>
         <param-value>p1Value</param-value>
    </init-param>
  </servlet>
在Servlet中,可以调用ServletConfig对象的getInitParameter(String paramname)来获得指定参数的值。
五、ServletContext对象
一个web应用对应一个ServletContext对象,它的生命周期与web应用的生命周期对应。
1、通过ServletContext对象来实现多个servlet数据共享,有关的方法为:
getAttribute(String name):
setAttribute(String name,Object obj):
removeAttribute(String name):
2、获取web应用的配置参数
配置如下:
<web-app>
     <context-param>
       <param-name>url</param-name>
       <param-value>jdbc:mysql:///test</param-value>
  </context-param>
  <context-param>
       <param-name>username</param-name>
       <param-value>root</param-value>
  </context-param>
  <context-param>
       <param-name>password</param-name>
       <param-value>123</param-value>
  </context-param>
</web-app>
通过ServletContext对象的getInitParameter(String paramName)获取根据名字指定的参数值。或者调用
getInitParameterNames()方法获取web应用的所有配置参数
3、利用ServletContext读取资源文件
getRealPath(String path):获取path参数指定的绝对路径。获取实际部署的路径。参数path要以"/"开头,代表了web应用的根目录。
4、利用类加载器来读取资源文件
4.1假如资源文件存放在classes目录下,可以调用以下语句来加载
ClassLoader loader = Demo6ServletContext.class.getClassLoader();
          InputStream in = loader.getResourceAsStream("database.properties");
或者
ClassLoader loader = this.getClass().getClassLoader();
4.2假如资源文件放在classes目录中的某个类包中,比如cn.itcast.servletcontext
可以调用以下语句来加载:
ClassLoader loader = this.getClass().getClassLoader();
          InputStream in = loader.getResourceAsStream("cn/itcast/servletcontext/database.properties");
5、向应用的临时目录中写临时文件
Servlet规范规定,在创建ServletContext对象时,需要用参数名为“javax.servlet.context.tempdir”去绑定临时文件目录。
能得到临时目录,可以调用IO往其中添加临时文件。

分享到:
评论

相关推荐

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    当你遇到“找不到javax.servlet.*”这样的错误时,通常是因为你的项目缺少了这个库,所以需要引入`javax.servlet.jar`来解决问题。 1. **Java Servlet简介** Java Servlet是Java平台上的一个标准,用于扩展服务器...

    servlet基础与servlet容器模型

    Servlet是一个Java类,遵循javax.servlet.Servlet接口,它允许开发者扩展服务器的功能。当用户向Web服务器发送一个请求时,Servlet会接收到这个请求,处理数据,然后返回响应。Servlet的主要生命周期方法包括:`init...

    用于servlet程序的开发的servlet-jar包

    Servlet是Java平台上的一个核心组件,它允许开发者创建动态web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端程序如何与HTTP协议交互以及如何处理来自web客户端的请求并返回响应。`servlet.jar...

    jakarta-servletapi-4-src.zip servlet源码

    《深入理解Jakarta Servlet API 4.0源码》 Servlet技术是Java Web开发的核心,它为Web应用程序提供了服务器端的编程接口。Jakarta Servlet API 4.0是Servlet规范的最新版本,它包含了对HTTP协议处理、生命周期管理...

    Servlet基础知识总结

    ### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...

    servlet线程安全问题

    Servlet 线程安全问题 Servlet 线程安全问题是指在使用 Servlet 编程时,如果不注意多线程安全性问题,可能会导致难以发现的错误。Servlet/JSP 技术由于其多线程运行而具有很高的执行效率,但这也意味着需要非常...

    javaEE servlet-api

    Servlet API还提供了Filter的概念,允许开发者在请求到达Servlet之前和响应离开Servlet之后对其进行拦截和处理。`javax.servlet.Filter`接口定义了`doFilter()`方法,这使得我们可以实现如认证、日志记录、数据过滤...

    Servlet3.0参考手册

    Servlet3.0是Java Web开发中的一个重要里程碑,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。这份"Servlet3.0参考手册"无疑为开发者提供了全面的API参考和实用指南。 首先,Servlet3.0...

    Java用注解的方式定义一个Servlet

    用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。  像上面的AnnotationServlet可以描述成@WebServlet(name="Annotation...

    servlet-api 各种版本

    Servlet-API是Java Servlet技术的核心部分,它定义了服务器端与客户端之间交互的一系列接口和类。这个压缩包包含了Servlet-API的多个版本,分别是2.2、2.3、2.4、2.5以及3.0。每个版本的发布都带来了新的功能和改进...

    serlvet 源码 servlet-src 源文件

    `servlet-src`通常指的是Servlet的源代码,这对于理解Servlet的工作原理、学习如何编写Servlet以及进行自定义功能扩展非常有用。在这个压缩包中,我们可能会找到`javax`包,这是Java标准库的一部分,包含了Servlet...

    servlet-api中文文档

    它是Java Servlet和JavaServer Pages (JSP)技术的基础,提供了服务器端程序与Web客户端交互的能力。在这个压缩包中,包含的是对Servlet API的中文文档,可能是作者因为无法找到官方的源码和javadoc而自行整理的笔记...

    javax.servlet.jar下载

    Files contained in javax.servlet.jar: META-INF/MANIFEST.MF javax/servlet/http/LocalStrings.properties javax.servlet.http.HttpSessionBindingListener.class javax.servlet....

    servlet3.0与mybatis整合的示例

    在Java Web开发中,Servlet和MyBatis是两个非常重要的技术。Servlet3.0作为Java Servlet规范的一个版本,引入了许多新特性,而MyBatis则是一个优秀的持久层框架,简化了数据库操作。本文将深入探讨如何将Servlet3.0...

    Servlet3.1规范(最终版)

    Servlet3.1规范是Java服务器端编程的重要里程碑,它在原有的Servlet技术基础上进行了多项改进和扩展,极大地提升了Web应用的性能和开发效率。这个规范主要关注于Servlet、过滤器(Filter)和监听器(Listener)的...

    Head First Servlet & JSP

    《Head First Servlet & JSP》是一本非常受欢迎的IT教程,专为准备SCWCD(Sun Certified Web Component Developer)认证的读者设计。本书以其独特的学习风格,深入浅出地介绍了Servlet和JSP(JavaServer Pages)这两...

    javax.servlet-api-4.0.1.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    Servlet3.1规范官方文档(中文版)

    根据提供的文件内容,以下是对Servlet3.1规范官方文档(中文版)中的知识点的详细说明。 首先,Servlet3.1官方文档是Java™ Servlet规范版本3.1的中文翻译版本。它详细描述了servlet技术规范的各个方面,包括对...

    C#调用servlet 发送XML

    而Servlet是Java世界中的一个核心组件,主要用于构建Web应用程序。本篇将深入探讨如何利用C#来调用Servlet并发送XML数据,这对于跨语言通信和系统集成具有重要意义。 首先,理解C#调用Servlet的过程。Servlet是Java...

Global site tag (gtag.js) - Google Analytics