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>


     

  • 相关阅读:
    自定义View的ToolBar布局报错Error:(2) No resource identifier found for attribute 'context' in package 'c
    在学git之主分支 branch
    获取发布版SHA1
    关于开启线程与UI的操作
    播放音频和视频(VideoView控件)
    通知栏Notification的应用
    Android 真机调式 Installation failed with message 远程主机强迫关闭了一个现有的连接。. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing. WA
    运行程序申请危险权限
    mysql乐观锁总结和实践
    Nginx配置文件nginx.conf中文详解
  • 原文地址:https://www.cnblogs.com/zhangchunxi/p/3350552.html
Copyright © 2011-2022 走看看