Servlet相关知识
来源:互联网 发布:女娲成长日记网络剧 编辑:程序博客网 时间:2024/05/16 05:41
一、第一个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("/相对路径")
- Servlet相关知识
- Servlet相关知识
- servlet相关知识笔记
- servlet相关知识整理
- Servlet相关知识
- Servlet相关知识
- Servlet相关知识
- Servlet相关知识汇总
- Servlet相关知识
- servlet和tomcat相关知识
- servlet的相关知识2
- servlet的相关知识3
- Servlet和Tomcat相关知识
- 20170909 JSP SERVLET相关知识
- Servlet相关知识的总结
- J2EE/Servlet/JSP问题及相关知识
- servlet过滤器的相关知识总结
- java基础:jsp、Servlet相关知识
- android之小白过河一
- VS快捷键大全
- nginx http处理过程分析之细节
- 高级.NET工程师必须掌握的知识点
- Linux-2.6.32.2内核在mini2440上的移植(十二)---移植I2C EEPROM驱动
- Servlet相关知识
- U13 习题12
- Web Apps概览
- Python:通过摄像头实现的监控功能
- 输出缓冲区的刷新
- Linux-2.6.32.2内核在mini2440上的移植(十三)---移植UDA1341音频驱动
- 如何将GetLastError()返回的错误代码转换成字符串
- VBS sendmail automatic
- Creating Configurable Environments with Hierarchical and Global Options (vmm_opts) in VMM