zoukankan      html  css  js  c++  java
  • 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>


     

  • 相关阅读:
    String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?
    RPC 框架
    大型分布式电商系统架构演进史?
    框架演变
    SSM和springboot对比
    什么是微服务,SpringBoot和SpringCloud的关系和区别
    Springboot,SSM及SSH的概念、优点、区别及缺点
    Spring Cloud 和dubbo
    LeetCode 048 Rotate Image
    LeetCode 047 Permutations II
  • 原文地址:https://www.cnblogs.com/zhangchunxi/p/3350552.html
Copyright © 2011-2022 走看看