浅谈-----Servlet
2015-11-22 15:20
417 查看
Servlet
一、什么是Servlet?
Servlet是JavaWeb应用中最核心的组件,是运行在服务中的程序。Servlet可以完成以下任务:
1、动态生成HTML文档。
2、将请求转发给Servlet组件。
3、读取客户端的Cookie,以及向客户端写入Cookie。
4、访问服务器的资源,如数据库、XML、文件对象。
Servlet的特点:Servlet对象,有Servlet容器(Tomcat)创建。
Servlet是一个接口:位于javax.servlet包中。
Servlet源码:
<span style="white-space:pre"> </span>package javax.servlet; <span style="white-space:pre"> </span>import java.io.IOException; <span style="white-space:pre"> </span>public abstract interface Servlet <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>public abstract void init(ServletConfig paramServletConfig) <span style="white-space:pre"> </span> throws ServletException; <span style="white-space:pre"> </span>public abstract ServletConfig getServletConfig(); <span style="white-space:pre"> </span>public abstract void service(ServletRequest paramServletRequest, ServletResponse paramServletResponse) <span style="white-space:pre"> </span> throws ServletException, IOException; <span style="white-space:pre"> </span>public abstract String getServletInfo(); <span style="white-space:pre"> </span>public abstract void destroy(); <span style="white-space:pre"> </span>}
二、怎么使用Servlet?
step1实现Servlet接口:<span style="white-space:pre"> </span>//service方法用于接收用户的请求并返回响应 <span style="white-space:pre"> </span>//2、用户访问时多次被执行 <span style="white-space:pre"> </span>public void service(ServletRequest req, ServletResponse rep) throws ServletException, IOException { <span style="white-space:pre"> </span>//通过outputStream输出信息给用户 <span style="white-space:pre"> </span>PrintWriter out = resp.getWriter(); <span style="white-space:pre"> </span>out.println(“Hello World”); <span style="white-space:pre"> </span>}step2配置Servlet:
<span style="font-size:14px;"> <!-- 在web.xml中配置你的Servlet,颜色相同为对应关系 --> <span style="white-space:pre"> </span><servlet> <span style="white-space:pre"> </span><servlet-name>one</servlet-name> <span style="white-space:pre"> </span><servlet-class>cn.hncu.OneServlet</servlet-class> <span style="white-space:pre"> </span> </servlet> <!-- 配置你的Servlet的影射目录 --> <span style="white-space:pre"> </span> <servlet-mapping> <span style="white-space:pre"> </span><servlet-name>one</servlet-name> <span style="white-space:pre"> </span><url-pattern>/one</url-pattern> <span style="white-space:pre"> </span></servlet-mapping> </span>
//在浏览器地址栏通过以下方式访问:
http://localhost:8080/项目名/one
三、Servlet的生命周期。
1、只会被初始化一次。由容器初始化,初始化成功后将缓存于容器中。
2、它的初始化时间分为两种:第一种:用户第一次访问时;第二种:服务器启动时。--需配置。service方法
1、每次请求都会访问此方法。
2、每次请求都会创建新的Requset和Response对象。
destory方法
当服务器关闭时有容器调用并销毁。
四、Servlet的其他相关类
ServletConfig:代表Servlet的初始化配置参数。ServletContext:代表整个Web项目。
ServletRequset:代表用户的请求。
ServletResponse:代表用户的响应。
HttpSession:代表用户的一次会话。
ServletConfig:
它包含了Servlet的初始化参数。它还与ServletContext对象关联。
方法:
1、getInitParameter //获取单个配置的参数
2、getInitParameterNames //获取所有配置的名称集合
3、getServletContext //获取ServletContext(代表本项目)对象
ServletConfig获取初始化参数:
<span style="font-size:14px;"><span style="white-space:pre"> </span><!-- 在Servlet的配置初始化参数 --> <span style="white-space:pre"> </span> <init-param> <span style="white-space:pre"> </span><param-name>name</param-name> <span style="white-space:pre"> </span><param-value>hncu</param-value> <span style="white-space:pre"> </span> </init-param></span>
servletConfig.getInitParameter(“name”);
//即可以获取name对应的值hncu
ServletContext:
每一个Web应用,拥有一个唯一的ServletContext,当应用启动时创建,当应用关闭时销毁。ServletContext可用于在同一个Web项目中,共享资源。
方法:
getContextPath
getInitParameter,getInitParameterNames
getRequestDispatcher(path)
getRealPath -项目的根式
getResource
getResourceAsStream
setAttribute,getAttribute
ServletContext获取项目信息:
getContextPath(); //项目名称getRealPath("/"); //项目的真实目录
五、Servlet实现类
Javax.servlet.GenericServlet1、此类实现了ServletConfig接口。
2、增加了init()没有参数的方法。
3、增加了getServletContext()方法,但此方法任然是从ServletConfig中获取ServletContext。
Javax.servlet.HttpServlet
1、继承了GenericServlet,用不同的方法处理get或post请求。
2、奖ServletRequest转成HttpServletRequest等。
Java建议通过实现HttpServlet来完成Servlet的开发。
六、让Servlet在启动时加载
在web.xml Servlet的配置为:<load-on-startup>1</load-on-startup>在项目启动时加载一些必须的资源、如准备资源文件
相关文章推荐
- jsp和servlet中实现页面跳转的方式实例总结
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp和servlet的区别探讨
- Struts2访问servlet分享
- java中Servlet处理乱码的方法
- ServletContext中常用方法介绍
- Servlet 过滤器详细介绍
- JSP+Servlet+JavaBean实现登录网页实例详解
- servlet中session简介和使用例子
- 在Jsp Servlet中页面重新定向总汇
- JSP使用Servlet作为控制器实现MVC模式实例详解
- Servlet动态网页技术详解
- jsp和servlet操作mysql中文乱码问题的解决办法
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- js调用后台servlet方法实例
- 利用JQuery和Servlet实现跨域提交请求示例分享
- JavaEE中关于ServletConfig的小结
- jsp+servlet+javabean实现数据分页方法完整实例