zoukankan      html  css  js  c++  java
  • Servlet基础总结

    1.Servlet概念:

      Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

    2.Servlet图示;

      

    3.Tomcat

      概念:Tomcat是TWeb应用服务器,是一个Servlet/JSP容器;

     作用:①.接收并解析http请求文本,封装成HttpServletRequest对象

        ②.将响应的消息封装成HttpServletResponse对象。

    4.编写Servlet

      三种方法实现Servlet:

    • 实现Servlet接口
    • 继承GenericServlet类
    • 继承HttpServlet类(通常采用此方法)

      

    5.Servlet生命周期

      三个生命周期方法:

      

    6.ServletConfig对象

      继承HttpServlet类后,通过 getServletConfig()方法可以直接获取;

    servletConfig.getServletName()    //获取servlet的名称,也就是我们在web.xml中配置的servlet-name
    
    servletConfig.getServletContext() //获取ServletContext
    
    servletConfig.getInitParameter(String)  //获取Servlet初始化参数
    
    servletConfig.getInitParameterNames()     //获取所有初始化参数的key

    7.ServletContext对象

      概念:Tomcat为每个web项目创建一个ServletContext对象,一个Web项目共享一个ServleyContext,是数据共享的通道。

      继承HttpServlet类后,通过 getServletConfig().getServletContext()方法 或直接用 getServletContext()方法获取;

    //1.设置共享属性资源
    servletContext.setAttribute(String name,Object obj)  //设置属性
    servletContext.getAttribute(String name)  //获取属性
    servletContext.removeAttribute(String name) //移除报警
    
    //2.获取Context初始化属性
    servletContext.getInitParameter(String name) //获取指定name的属性
    servletContext.getInitParameterNames() //获取所有初始化属性的key的集合,返回值为Enumuration
    
    //3.获取web项目资源
    servletContext.getRealPath("WEB-INF/web.xml") //获取web项目下指定资源的路径
    servletContext.getResourceAsStream(String path) //获取web项目下指定资源的内容,并创建字节输入流
    servletContext.getResourcePaths(String path) //指定路径下的所有内容,返回set集合

    8.request对象

      

    //1.获取请求头
    String getHeader(String name)  //获取指定请求头内容
    long getDateHeader(String name) //同上,返回long类型
    int getIntHeader(String name)  //同上,返回int类型
    Enumeration getHeaders(String name) //适用于多值请求头,返回值的集合
    
    //2.获取请求行内容
    request.getRequestURI();  //项目名称+Servlet名称
    request.getRequestURL();  //完整请求地址,不包含请求参数
    request.getProtocol();   //获取协议和版本 ,如HTTP/1.1
    request.getScheme(); //获取协议,HTTP
    request.getServerName(); //获取主机名
    request.getServerPort();  //获取端口号
    request.getContextPath(); //获取发布后的项目名称
    request.getServletPath(); //获取Servlet路径
    request.getQueryString(); //获取请求参数
    request.getRemoteAddr(); //获取远程主机地址
    
    //3.获取请求方法
    //get请求和post请求获取请求参数方法一致
    String request.getParameter(String)  //获得指定名称的请求参数值。
    String[] request.getParameterValues(String)  //获得指定名称,所有请求参数值。例如:checkbox、select等
    Map<String , String[]> request.getParameterMap()  //获得所有的请求参数
       
    //4.请求转发
    
    
    特点:服务器进行的转发,浏览器中的url不会变,只能跳转到同一web项目的其他页面

    path:转发后跳转的页面,以web项目根开始,只需要填项目根后面的即可
    request.getRequestDispatcher(String path).forward(request,response);

    9.response对象

      

    response.setStatus(int code)   //设置响应的状态码
    response.setHeader(String name,String value); //设置响应头
    
    //重定向1
    response.setStatus(302);  //302,重定向
    response.setHeader("Location","http://www.baidu.com")  //Location头包含新的地址
    //重定向2
    response.sendRedirect("http://www.baidu.com") //直接重定向
    /*重定向没有任何局限,可以重定向web项目内的任何路径,也可以访问别的web项目中的路径,并且这里就用"/"区分开来,
    如果使用了"/"开头,就说明我要重新开始定位了,不访问刚才的web项目,自己写项目名,如果没有使用"/"开始,那么就
    知道是访问刚才那个web项目下的servlet,就可以省略项目名了。就是这样来区别。
    */
    作者:LearnAndGet
    如果觉得阅读本文没有浪费您的时间,请点击推荐支持~
    本文部分内容参考自互联网,如有侵权,请及时联系本人删除
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.
  • 相关阅读:
    时间单位的档案
    Linux中表示“时间”的结构体和相关函数
    linux 下如何给用户添加权限
    C++中虚函数的作用浅析
    C语言中strstr函数
    测试环境下将centos6.8升级到centos7的操作记录(转)
    CURL常用命令(转)
    Centos7管理selinux及使用firewalld管理防火墙
    UML类图几种关系的总结
    linux下面覆盖文件,如何实现直接覆盖,不提示
  • 原文地址:https://www.cnblogs.com/LearnAndGet/p/9476109.html
Copyright © 2011-2022 走看看