1、Servlet 2、ServletConfig 3、ServletContext 4、HttpUrlConnection

1、Servlet 2、ServletConfig 3、ServletContext 4、HttpUrlConnection

一、第一个Servlet的编写过程
1、建立JavaWeb应用的目录
HelloServlet—–应用名称
WEB-INF——–
classes:Servlet就放在此处
lib
web.xml

2、在classes目录中建立Servlet类
一个Servlet必须直接或间接地实现javax.servlet.Servlet接口
一般我们选择继承javax.servlet.GenericServlet或者javax.servlet.http.HttpServlet类

3、编写Servlet类
package com.itheima;
import java.io.*;
import javax.servlet.*;
//第一个Servlet
public class HelloServlet extends GenericServlet{

public void service(ServletRequest req,
ServletResponse res)
throws ServletException,
java.io.IOException{

//向客户端输出数据
String data = “Hello Heima”;
OutputStream out = res.getOutputStream();
out.write(data.getBytes());
}

}

4、编译Servlet类
编译需要用到servlet-api.jar(在Tomcat的lib目录中)
4.1设置classpath:set classpath=%classpath%;C:\apache-tomcat-6.0.32\lib\servlet-api.jar
4.2因为带包名,进入classes目录,使用以下命令进行编译
javac -d . HelloServlet.java

5、配置Servlet的访问路径映射

对于JavaWeb应用的配置都在web.xml中,在web.xml中增加以下配置
<servlet>
<servlet-name>HelloServlet</servlet-name><!–制定一个Servlet名称–>
<servlet-class>com.itheima.HelloServlet</servlet-class><!–制定对应的Servlet类,用类的全名–>
</servlet>

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/Hello</url-pattern><!–用户访问的映射路径–>
</servlet-mapping>
6、访问
http://localhost:8080/HelloServlet/Hello

二、Servlet规范提供了两个Servlet接口的默认实现
1、GenericServlet:通用的(默认的)的跟协议无关的实现
2、HttpServlet:跟HTTP协议有关的Servlet默认实现。我们编写的Servlet一般只需要继承该类即可
三、编写Servlet时一般需要继承HttpServlet。
1、不要覆盖service方法,默认实现中提供了一些标准的内容
2、应该覆盖掉doXXX方,因为默认实现给了一个错误的提示

四、利用MyEclipse可以直接创建Servlet。模板太烂
1、MyEclipse6.6:打开MyEclipse的安装目录,搜索Servlet.java的文件,该文件即为模板文件。
2.MyEclipse8.5:打开MyEclipse的安装目录,搜索com.genuitec.eclipse.wizards_8.5.0.me201003052220.jar。
打开其中的templates找到Servlet.java文件
3、修改Servlet.java模板文件(停掉MyEclipse,注意备份)
五、Servlet映射
可以使用通配符*
两种格式:
*.扩展名(注意*前面没有其他内容)
/abc/*(注意以*结尾,以/开头)
六、如果请求的资源在应用的web.xml中找不到对应的url-pattern映射,会交由缺省的Servlet处理。
缺省的Servlet的url-pattern的值为”/”。在Tomcat的conf/web.xml中已经配好了一个缺省的Servlet。
当请求HTML或其他静态资源时,实际上都是有缺省的Servlet进行处理的。
七、Servlet的生命周期
1、Servlet在默认情况下,第一访问时容器才会创建它的实例,并驻留内存
2、要想在容器启动时就实例化Servlet对象,可以做以下配置
<servlet>
<servlet-name>ServletDemo1</servlet-name>
<servlet-class>com.itheima.ServletDemo1</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<load-on-startup>的取值说明了启动顺序

八、ServletConfig对象
1、作用:获取为Servlet配置的初始化信息。
可以在web.xml的<servlet>元素中通过<init-param>为Servlet制定初始化的参数
2、ServletConfig对象在实例化Servlet对象时由容器传递给Servlet。通过ServletConfig对象的getInitParameter(String paramName)就可以获得web.xml中针对该Servlet的配置参数的值。或者使用getInitParameterNames获取所有的初始化参数
九、ServletContext对象
1、作用:JavaWeb应用的一个全局对象,一个应用只有一个ServletContext对象。在应用启动时,容器就会创建该对象
2、获得ServletContext对象的引用:
2.1ServletConfig.getServletContext()
2.2从HttpServlet类中继承的方法getServletContext()也可以获得
3、根据ServletContext特点,可以将该对象看做是整个web应用的总管家
4、应用
4.1实现多个Servlet之间的数据共享
4.2配置web应用的全局参数
4.3实现Servlet的转发
转发的特点:
1、请求的地址栏的地址不变
2、两者共享request和response对象
3、转发前和转发后页面上的内容都不会输出
4.4ServletContext读取资源配置文件
1、getRealPath:获取指定相对路径资源的绝对路径。相对路径必须以”/”开头
2、读取classes目录中的配置文件:
a、利用ClassLoader.getResourceAsStream():不适合加载很大的配置文件
b、利用ServletContext.getRealpath(“/相对路径”)
3、读取非classes目录中的配置文件
采用利用ServletContext.getRealpath(“/相对路径”)

解析路径

请求转发的过程

得到WEB-INF下的配置文件

相对路径和绝对路径

压缩数据

下载图片

解决线程并发问题

时间: 2024-12-18 19:29:15

1、Servlet 2、ServletConfig 3、ServletContext 4、HttpUrlConnection的相关文章

转 Java中Filter、Servlet、Listener的学习

1.Filter的功能filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chaining”(servlet 链). 一个Filter包括: 1).在servlet被调用之前截获; 2).在servlet被调用之前检查serv

jsp、Servlet相关知识介绍(转)

1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器) 在如下两种情况下会进行对象实例化. 第一种情况: 当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,才会创建实例. 第二种情况: 容器在启动时,或者新部署了某个应用时,会检查web.xml当中,servlet是否有 load-on-starup配置.如果有,则会创建该servl

面试之jsp、Servlet相关知识——生命周期, 区别等

1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器) 在如下两种情况下会进行对象实例化. 第一种情况: 当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,才会创建实例. 第二种情况: 容器在启动时,或者新部署了某个应用时,会检查web.xml当中,servlet是否有 load-on-starup配置.如果有,则会创建该servl

Request、Servlet及其子接口

最近看tomcat源码,这类接口多的有点眩,整理出来看一下.(基于tomcat4) javax.servlet.ServletRequset接口,和org.apache.catalina.Request接口,有什么联系? 其实就是对Request不同层面上的定义. 一.首先看下javax.servlet.Servlet接口 package javax.servlet; import java.io.IOException; public abstract interface Servlet {

JavaEE实战——Servlet入门、Servlet生命周期、绝对路径、ServletContext

前言 接下来的三篇博客我会分别介绍Servlet的以下三个方面: 1.Servlet程序编写 ----- 生命周期 2.ServletAPI Request Response 3.Cookie 和 Session Servlet的作用:Servlet 用来 动态web资源 开发 静态web资源 : 固定数据文件 动态web资源 : 通过程序动态生成数据文件 Servlet技术基于Request-Response编程模型 ---- HTTP协议也是基于请求响应 模型 * Servlet技术 用来

JavaWeb学习之什么是Servlet、如何使用servlet、为什么这样使用、servlet的虚拟路径(2)

1.什么是Servlet? * 服务器端Java程序,servlet需要交给服务器来运行. * 与javax.servlet.Servlet接口有关的java程序 2.如何使用servlet?[必须] * 创建web项目 * 创建一个类,并实现Servlet接口 * 交给服务器运行 /WEB-INF/web.xml <!-- 注册servlet <servlet>标签:进行servlet注册 <servlet-class>标签:确定servlet类所在位置 * 内容:需要注册

jsp、Servlet的面试题

3. 谈谈Servlet的生命周期 当接收到请求的时候,容器察看对应的Servlet对象是否存在,如果不存在,需要加载Servetl,实例化Servlet,调用init方法进行初始化.如果已经存在,根据用户的请求创建request和response对象,把这两个对象作为参数调用Servlet对象的service方法,Servlet通过这个方法与用户进行交互,方法执行完之后,对请求的处理结束.Servelt对象继续等待下一个请求.当应用卸载的时候,调用destroy方法释放资源.多个请求共享Ser

Java中Filter、Servlet、Listener的学习

1.Filter的功能filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chaining”(servlet 链). 一个Filter包括: 1).在servlet被调用之前截获; 2).在servlet被调用之前检查serv

Java 面向对象编程、jQuery、JavaScript、servlet、javabean----理论知识

一.继承1.继承(优点:代码复用方便修改)    1.1 继承的关键字:extends    1.2 实现继承步骤(1.编写父类 2.编写子类继承父类)    1.3 调用父类方法的关键字:super    1.4 继承条件下构造方法和属性的调用        1.4.1 调用父类构造方法:super(); super(实参);必须写在构造方法第一行        1.4.2 调用父类的属性和方法:super.属性   super.方法名();        1.4.3 父类中的资源使用了pri