- 浏览: 11121 次
- 性别:
- 来自: 烟台
最新评论
一、创建第一个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往其中添加临时文件。
发表评论
-
day09-用户注册登录
2011-08-27 10:05 629先计划好步骤,写个read ... -
使用类加载器的方式管理资源和配置文件
2011-08-27 10:03 955用普通的IO类,需要通过配置文件,指定资源或配置文件的位置。 ... -
day06-会话与状态
2011-08-21 20:37 831通过Cookie显示上次访问时间: 1.获取 ... -
day05-request response
2011-08-19 22:51 477Response: 解决response中 ... -
Java编码问题汇总
2011-08-18 11:44 598本文转载自:http://www.blogjava.net/z ... -
Tomcat与http协议
2011-08-16 19:50 10401、Tomcat安装 JAVA_HOME环 ... -
day01-Javaweb xml基础
2011-08-15 08:40 694XML基础: 1. 保存文 ... -
Scanner的用法误区
2011-08-14 16:55 866本文转载自 http://bianku.iteye.com/b ... -
Java学习笔记-GUI
2011-08-11 22:47 572Java GUI: 创建图形化界面: 1. 创建frame窗 ... -
Java学习笔记
2011-07-11 09:10 650交通灯: (1)简化模型 总共有12条路线,为了统一编程模型 ... -
Java学习笔记
2011-07-11 08:33 7882011-7-9 可变参数特点: ... -
Java学习笔记
2011-07-05 14:51 6752011-7-1 处理发生在某个GUI组件上的xxxEvent ... -
Java学习笔记
2011-06-18 23:29 583操作系统的环境变量: ...
相关推荐
当你遇到“找不到javax.servlet.*”这样的错误时,通常是因为你的项目缺少了这个库,所以需要引入`javax.servlet.jar`来解决问题。 1. **Java Servlet简介** Java Servlet是Java平台上的一个标准,用于扩展服务器...
Servlet是一个Java类,遵循javax.servlet.Servlet接口,它允许开发者扩展服务器的功能。当用户向Web服务器发送一个请求时,Servlet会接收到这个请求,处理数据,然后返回响应。Servlet的主要生命周期方法包括:`init...
Servlet是Java平台上的一个核心组件,它允许开发者创建动态web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端程序如何与HTTP协议交互以及如何处理来自web客户端的请求并返回响应。`servlet.jar...
《深入理解Jakarta Servlet API 4.0源码》 Servlet技术是Java Web开发的核心,它为Web应用程序提供了服务器端的编程接口。Jakarta Servlet API 4.0是Servlet规范的最新版本,它包含了对HTTP协议处理、生命周期管理...
### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...
Servlet 线程安全问题 Servlet 线程安全问题是指在使用 Servlet 编程时,如果不注意多线程安全性问题,可能会导致难以发现的错误。Servlet/JSP 技术由于其多线程运行而具有很高的执行效率,但这也意味着需要非常...
Servlet API还提供了Filter的概念,允许开发者在请求到达Servlet之前和响应离开Servlet之后对其进行拦截和处理。`javax.servlet.Filter`接口定义了`doFilter()`方法,这使得我们可以实现如认证、日志记录、数据过滤...
Servlet3.0是Java Web开发中的一个重要里程碑,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。这份"Servlet3.0参考手册"无疑为开发者提供了全面的API参考和实用指南。 首先,Servlet3.0...
用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。 像上面的AnnotationServlet可以描述成@WebServlet(name="Annotation...
Servlet-API是Java Servlet技术的核心部分,它定义了服务器端与客户端之间交互的一系列接口和类。这个压缩包包含了Servlet-API的多个版本,分别是2.2、2.3、2.4、2.5以及3.0。每个版本的发布都带来了新的功能和改进...
`servlet-src`通常指的是Servlet的源代码,这对于理解Servlet的工作原理、学习如何编写Servlet以及进行自定义功能扩展非常有用。在这个压缩包中,我们可能会找到`javax`包,这是Java标准库的一部分,包含了Servlet...
它是Java Servlet和JavaServer Pages (JSP)技术的基础,提供了服务器端程序与Web客户端交互的能力。在这个压缩包中,包含的是对Servlet API的中文文档,可能是作者因为无法找到官方的源码和javadoc而自行整理的笔记...
Files contained in javax.servlet.jar: META-INF/MANIFEST.MF javax/servlet/http/LocalStrings.properties javax.servlet.http.HttpSessionBindingListener.class javax.servlet....
在Java Web开发中,Servlet和MyBatis是两个非常重要的技术。Servlet3.0作为Java Servlet规范的一个版本,引入了许多新特性,而MyBatis则是一个优秀的持久层框架,简化了数据库操作。本文将深入探讨如何将Servlet3.0...
Servlet3.1规范是Java服务器端编程的重要里程碑,它在原有的Servlet技术基础上进行了多项改进和扩展,极大地提升了Web应用的性能和开发效率。这个规范主要关注于Servlet、过滤器(Filter)和监听器(Listener)的...
《Head First Servlet & JSP》是一本非常受欢迎的IT教程,专为准备SCWCD(Sun Certified Web Component Developer)认证的读者设计。本书以其独特的学习风格,深入浅出地介绍了Servlet和JSP(JavaServer Pages)这两...
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官方文档是Java™ Servlet规范版本3.1的中文翻译版本。它详细描述了servlet技术规范的各个方面,包括对...
而Servlet是Java世界中的一个核心组件,主要用于构建Web应用程序。本篇将深入探讨如何利用C#来调用Servlet并发送XML数据,这对于跨语言通信和系统集成具有重要意义。 首先,理解C#调用Servlet的过程。Servlet是Java...