复习第一天Servlet

阅读更多

1.servlet定义: 运行在服务器端的java类.

2.servle生命周期

   <1>WEB容器创建Servlet实例

   <2>调用Servlet的init方法

   <3>多次调用Servlet的service方法(即Servlet是单例的)

   <4>WEB容器关闭时调用Servlet的destroy方法销毁Servlet

 

3.Servlet配置

 



	
	
		test2
		myServlet2
	
	
	
		MyServlet
		com.wr.servlet.MyServlet
		
			test
			myServlet
		
		0
	
	
	
		MyServlet
		/MyServlet
	

    

    load-on-startup: 配置Servlet的加载方式

            <1>值为负数时,访问当前Servlet时才创建Servlet实例

            <2>值位正数时,WEB应用加载时就创建Servlet实例, 值越小优先级越高,最先创建.

 

package com.wr.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * Servlet implementation class MyServlet
 */
public class MyServlet implements Servlet{
	
	public MyServlet() {
		System.out.println("MyServlet.MyServlet()");
	}

	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("MyServlet.init()");
		String param = config.getInitParameter("test");
		System.out.println(param);
		ServletContext context = config.getServletContext();
		System.out.println(context.getInitParameter("test2"));
	}

	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		System.out.println("MyServlet.getServletConfig()");
		return null;
	}

	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		System.out.println("MyServlet.service()");
		// TODO Auto-generated method stub
		
	}

	public String getServletInfo() {
		System.out.println("MyServlet.getServletInfo()");
		// TODO Auto-generated method stub
		return null;
	}

	public void destroy() {
		System.out.println("MyServlet.destroy()");
		// TODO Auto-generated method stub
		
	}
	
}

     ServletConfig: 当前Servlet的配置对象, 可以读取配置在Servlet中的初始化参数

     ServletContext: 当前WEB应用的上下文对象, 可以读取配置在WEB配置文件中的初始化参数

 

4.请求转发和重定向

	//重定向
	//response.sendRedirect("first.jsp");
	//请求转发
	request.getRequestDispatcher("first.jsp").forward(request, response);

 区别:

 1.地址栏不同

   重定向地址栏会发生变化, 转发不会.

 2.request对象不同

   重定向后不request不是同一个, 转发是同一个.

3. "/"代表意义不同

   重定向时候"/"代表站点根目录, 转发代表当前WEB应用根目录.

4.转发只能转发WEB内部资源, 不能转发外部资源.

   重定向可以重定向到任意资源.(例如:不能转发到www.baidu.com,只能重定向)

你可能感兴趣的:(servlet,java)