`
yx1989
  • 浏览: 10615 次
  • 性别: 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往其中添加临时文件。

分享到:
评论

相关推荐

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

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

    jakarta.servlet-api-4.0.4-API文档-中英对照版.zip

    赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....

    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....

    jakarta.servlet-api-4.0.4-API文档-中文版.zip

    赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....

    基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统

    基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍...

    javax.servlet-api-4.0.0-API文档-中文版.zip

    赠送jar包:javax.servlet-api-4.0.0.jar; 赠送原API文档:javax.servlet-api-4.0.0-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.0-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; ...

    servlet-api。jar

    SERVLET

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

    javax.servlet的jar包,解决找不到javax.servlet.*等问题的!欢迎下载!!

    jersey-container-servlet-core-2.22.2-API文档-中文版.zip

    赠送jar包:jersey-container-servlet-core-2.22.2.jar; 赠送原API文档:jersey-container-servlet-core-2.22.2-javadoc.jar; 赠送源代码:jersey-container-servlet-core-2.22.2-sources.jar; 赠送Maven依赖信息...

    javax.servlet-api-4.0.1-API文档-中英对照版.zip

    赠送jar包:javax.servlet-api-4.0.1.jar; 赠送原API文档:javax.servlet-api-4.0.1-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.1-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.1.pom; ...

    servlet 8个最基础demo

    我们老师教学演示的servlet例子 从简单到难文件夹有八个demo供初学者学习 servlet01 servlet02 servlet03 servlet04 servlet05 servlet06 servlet07 servlet08 servlet是在服务器上运行的小程序。这个词是在Java ...

    javax.servlet-3.0.0.v201112011016-API文档-中文版.zip

    赠送jar包:javax.servlet-3.0.0.v201112011016.jar; 赠送原API文档:javax.servlet-3.0.0.v201112011016-javadoc.jar; 赠送源代码:javax.servlet-3.0.0.v201112011016-sources.jar; 赠送Maven依赖信息文件:...

    servlet基础与servlet容器模型

    servlet基础与servlet容器模型

    servlet-api.jar

    servlet.jar ,Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 使用 Servlet,您可以收集来自网页...

    javax.servlet 的JAR包

    javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题

    利用servlet技术实现一个简单的聊天室

    实验1: 利用servlet实现一个简单的聊天室 实验目的 (1) 理解servlet的工作原理 (2) 掌握servlet编程基本技能 实验内容及要求 1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息...

    Servlet项目实践 实现学生信息系统的全部代码

    Servlet项目实践 实现学生信息系统的全部代码 一、Servlet简介  Servlet是sun公司提供的一门用于开发动态web资源的技术。  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java...

    servlet文档API中文版

    这是一份关于2.1版Java Servlet API的说明文档,作为对这本文档的补充。 1.2 谁需要读这份文档 这份文档描述了Java Servlet API的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样...

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

    servlet.jar.zip用于servlet程序的开发

    servlet api servlet api

    servlet apiservlet apiservlet apiservlet api

Global site tag (gtag.js) - Google Analytics