浏览 1870 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-24
Servlet的实质是一个Java程序,运行在服务器端,用于处理客户端的请求,并给客户端响应 2、为什么要使用Servlet Servlet是支持多线程访问 3、Servlet三要素 * 继承自HttpServlet * 重写doGet()或者doPost()方法:因为HttpServlet中的doGet()和doPost()方法是空实现,要在 自定义的HttpServlet中实现。 * Servlet资源路径名要到web.xml中进行配置 <!-- 定义Servlet --> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.westaccp.servlet.TestServlet</servlet-class> </servlet> <!-- 映射Servlet --> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/servlet/TestServlet</url-pattern> </servlet-mapping> Servlet的体系结构: Servlet接口:init(), service(), destory() GenericServlet:抽象类,它是对Servlet接口的一个通用实现 HttpServlet:继承自GenericServlet类,它是跟Http协议绑定的,在这个类中,除了从父类继承了 init(), service(), destroy()方法外,还提供了doGet(),doPost()等方法。 4、Servlet生命周期 * 实例化:由Servlet容器(Tomcat)在内存中创建该Servlet的实例 * 初始化:调用init()方法,在该方法中可以做初始化的操作(可以读取web.xml中配置的初始化参数) * 服务:调用service()方法,service()再根据客户端请求的方式,调用doGet()或者doPost() * 销毁:调用destroy()方法,回收分配该Servlet的资源 * 不可用:由Java虚拟机将内存中Servlet实例回收 第一次访问Servlet,执行实例化,初始化,服务三个阶段 后续请求:只调用了服务阶段 很长时间没有访问该Servlet或者服务器停止的时候,调用销毁,不可用阶段 因为初始化阶段只执行了一次,说明在Servlet服务的整个过程中在内存里只有一个实例。 5、读取web.xml中的初始化参数 * 在web.xml中进行配置 <servlet> <servlet-name>TestLifeCycleServlet</servlet-name> <servlet-class>com.westaccp.servlet.TestLifeCycleServlet</servlet-class> <init-param> <param-name>encoding</param-name> <param-value>gb2312</param-value> </init-param> </servlet> * 在Servlet的init()方法中,通过ServletConfig对象读取 public void init(ServletConfig config) throws ServletException { String encoding = config.getInitParameter("encoding"); System.out.println(encoding); } 6、在默认情况下,Servlet是我们在第一次访问的时候被实例化的;如果想在服务器一启动的时候就实例化, 怎么做? 在web.xml中进行配置 <load-on-startup>2</load-on-startup> 值大于等于等于0均可。数值越小,级别越高。如果数值小于0,跟没有配这个参数是一样的,也就是说 在第一次访问的时候才实例化。 7、HttpServletRequest:请求对象(javax.servlet.http) * String request.getParameter("name") * String[] request.getParameterValues("name") * request.setCharacterEncoding("UTF-8") * request.getRequestDispatcher("url").forward(request, response) 8、HttpServletResponse:响应对象(javax.servlet.http) * PrintWriter response.getWriter() * response.setCharacterEncoding("UTF-8") * response.setContType("text/html;charset=UTF8") * response.sendRedirect("url") 9、Web应用程序的目录结构 store --index.jsp --succes.jsp --error.jsp --WEB-INF(放置应用程序的一些配置信息) --web.xml(应用程序的配置文件) --classes(放置Java类编译之后产生的字节码文件) --lib(放置第三方的类库) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |