servlet

要了解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>


 

原文地址:https://www.cnblogs.com/zhangchunxi/p/3350552.html