要了解servlet技术需要掌握几点:servlet是什么,它又能做什么,实现什么样的功能,如何实现这个功能,在具体项目中是如何运用等;总结下面几个知识点:
1、什么是servlet;
2、servlet能做什么;
3、servlet工作机理是什么(servlet生命周期);
4、servlet常用类及接口有哪些;
5、servlet具体如何在项目中运用;
个人学习总结如下:
1、首先servlet是一个java类;按照自身规范编写的java类,由服务器端调用和执行;
2、servlet的功能:用于处理客户端请求,即HTTP请求,并返回一个响应;
3、servlet部署在容器里,由容器管理它的生命周期;大概一下几个阶段:
(1)装载servlet:servlet的装载是动态进行的;
(2)创建servlet实例:servlet是一个java类,在使用之前需要创建一个实例;
(3)初始化:通过调用init()方法进行;
(4)服务:初始化完后就可以进行服务,处理业务需求,通过调用service()方法进行;
(5)销毁:通过调用servlet的destroy()方法进行销毁servlet实例;
4、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)
5、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>