Servlet快速入门、Servlet、ServletContext对象
Servlet简介:
Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API 动态的向客户端输出内容。
Servlet快速入门:
实现步骤:
1.创建类实现Servlet接口
2.覆盖尚未实现的方法---重点实现service方法
3.在web.xml进行servlet的配置
public void init(ServletConfig arg0) throws ServletException {
System.out.println("Servlet创建了");
}
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("Servlet被请求了");
}
public void destroy() {
System.out.println("Servlet销毁了");
}
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.oracle.demo01.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().write("hello boss...");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}


Servlet的API(生命周期):
init(ServletConfig config):servlet对象创建的时候执行
service(ServletRequest request,ServletResponse response):每次请求都会执行
destroy():servlet销毁的时候执行
public void init(ServletConfig arg0) throws ServletException { System.out.println("Servlet创建了"); //获取Servlet配置的初始化参数 System.out.println("初始化参数为"+arg0.getInitParameter("name")); //获取servlet名字 System.out.println(arg0.getServletName()); //获取ServletContext System.out.println(arg0.getServletContext()); } public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { System.out.println("Servlet被请求了"); } public void destroy() { System.out.println("Servlet销毁了"); }
Servlet基本配置:
url-pattern的配置方式:
1.完全匹配:访问的资源与配置的资源完全相同才能访问到。
2.目录匹配:格式:/虚拟的目录../* *代表任意。
3.扩展名匹配:格式:*.扩展名
注意:目录匹配和扩展名匹配不要混用。
服务器启动实例化Servlet配置
缺省Servlet
欢迎页面:

ServletContext对象:
ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象 内部封装是该web应用的信息,ServletContext对象一个web应用只有一个
ServletContext对象的生命周期:
创建:该web应用被加载(服务器启动或发布web应用(前提,服务器启动状 态))
销毁:web应用被卸载(服务器关闭,移除该web应用)
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取ServletContext对象 ServletContext context=getServletContext(); //获取相对于服务器的相对路径获取绝对路径 System.out.println(context.getRealPath("WEB-INF/classses/a.txt")); System.out.println(context.getRealPath("b.txt")); System.out.println(context.getRealPath("WEB-INF/c.txt")); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取ServletContext对象 ServletContext context=getServletContext(); //往ServletContext域中的值 context.setAttribute("name", "zhangsan"); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取ServletContext对象
ServletContext context=getServletContext();
//往ServletContext域中的值
String name=(String)context.getAttribute("name");
response.getWriter().write(name);
}
浙公网安备 33010602011771号