要了解servlet技术须要掌握几点:servlet是什么,它又能作什么,实现什么样的功能,如何实现这个功能,在具体项目中是如何运用等;总结下面几个知识点:html
一、什么是servlet;java
二、servlet能作什么;web
三、servlet工做机理是什么(servlet生命周期);数组
四、servlet经常使用类及接口有哪些;tomcat
五、servlet具体如何在项目中运用;服务器
我的学习总结以下:session
一、首先servlet是一个java类;按照自身规范编写的java类,由服务器端调用和执行;app
二、servlet的功能:用于处理客户端请求,即HTTP请求,并返回一个响应;jsp
三、servlet部署在容器里,由容器管理它的生命周期;大概一下几个阶段:学习
(1)装载servlet:servlet的装载是动态进行的;
(2)建立servlet实例:servlet是一个java类,在使用以前须要建立一个实例;
(3)初始化:经过调用init()方法进行;
(4)服务:初始化完后就能够进行服务,处理业务需求,经过调用service()方法进行;
(5)销毁:经过调用servlet的destroy()方法进行销毁servlet实例;
四、servlet经常使用接口:
(1)servlet实现相关的接口:Servlet,GenericServlet,HttpServlet
方法:init(),destroy(),service(ServletReqeust request,ServletResponse response),doGet(),doPost()
getServletConfig(),获取配置相关信息对象的引用;
HttpServlet类是针对使用http协议的web服务器的servlet类;
public Interface Servlet;
public abstract class GenericServlet implements Servlet,ServletConfig,java.io.Serializable;
public abstract class HttpServlet extends GenericServlet impements java.io.Serializable;
(2)servlet配置相关:ServletConfig
方法:getServletContext();获取上下文对象的引用
(3)请求响应相关:ServletRequest,ServletResponse,HttpServletRequest,HttpServletResponse
request:
方法:
getCookies();返回一个数组
getSession()
getParameter(String name)获取请求中名为name的参数值
response:
方法:
sendRedirect(String location)把响应发送到另外一个页面或servlet进行处理;
encodeURL(String url);重写URL;
(4)回话跟踪:HttpSession接口
一个session能够经过Cookie或重写URL来维持;
方法:
getId();获取当前session标志符;
(5)Servlet上下文:ServletContext接口
在服务器上使用session对象维持与单个用户的状态,当为多个用户的web应用维持一个状态时,则应用servlet环境;servletContext对象表示一组Servlet共享的资源;
方法:
getAttribute(String name);获取名为name的属性;
setSttribute(String name,Object object);
getContext(String uripath);返回给定的uripath的应用的servlet上下文;
(6)Servlet协做:RequestDispatcher接口
方法:
forword(ServletReqeust request,ServletResponse response);把请求转发到服务器上的另外一个资源(servlet,jsp,html)
五、servlet运用:
Servlet的HelloWorld实例:
(1)建立HelloWorldServlet:
1 package com.jdpdev.ch1; 2 3 import java.io.*; 4 5 import javax.servlet.*; 6 import javax.servlet.http.*; 7 8 9 public class HelloWorldServlet extends HttpServlet { 10 public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ 11 response.setContentType("text/html;charset=gb2312"); 12 PrintWriter out = response.getWriter(); 13 out.println("<html>"); 14 out.println("<head>"); 15 out.println("<title>Hello World</title>"); 16 out.println("</head>"); 17 out.println("<body >"); 18 out.println("<hr>"); 19 out.println("hello world<br>"); 20 out.println(request.getCookies()); 21 out.println("</body></html>"); 22 23 } 24 public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ 25 doGet(request,response); 26 } 27 28 }
(2)在web.xml配置servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Welcome to tomcat</display-name> <description> HellloWorld </description> <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.jdpdev.ch1.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>