Servlet简介:java
Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,经过java的API 动态的向客户端输出内容。web
Servlet快速入门:小程序
实现步骤:浏览器
1.建立类实现Servlet接口服务器
2.覆盖还没有实现的方法---重点实现service方法oracle
3.在web.xml进行servlet的配置app
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销毁了");
}url
<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 {spa
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().write("hello boss...");
}3d
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); }