Servlet入门

作者: Scalelength | 来源:发表于2018-08-09 19:35 被阅读0次

    Servlet简介


    Servlet(Servlet Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容

    Servlet路径

    request.getScheme():获取协议

    request.getServerName():获取IP地址

    request.getServerPort():获取端口号

    request.getServletContext().getContextPath():获取工程名动态获取协议、IP、端口号、工程名

    String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/"+request.getServletContext().getContextPath()+"/";静态的协议、IP、端口号、工程名http://localhost:8080/imook_servlet1/loginServlet

    Servlet生命周期

    生命周期:

    1.初始化阶段调用init()方法init只有第一次打开网页的时候被调用

    2.响应客户请求阶段调用service()方法可以被访问多次

    3.终止阶段调用destroy()方法当工程从服务器中移出,才会调用。不是关闭服务器

    原理:

    Servlet作用

    请求与响应 

    浏览器对服务器的一次访问被称之为一次请求,请求用HttpServletRequest对象来表示

     服务器给浏览器的一次反馈称之为一次相应,相应用HttpServletResponse对象来表示 

    ServletContext与ServletConfig

     Java是一门面向对象的语言,万事万物皆对象。整个JavaWeb工程也可以用一个对象来表示,这个对象就是ServletContext类型。 我们可以在web.xml文件中给某一个Servlet配置一些配置信息,当服务器被启动的时候,这些配置信息就会被封装到某一个ServletConfig对象中去,因此ServletConfig表示的是某一个Servlet的配置文件。 

    常用方法:

     // 获取代表某一个JavaWeb工程的ServletContext对象

    // Context对象是一个域对象,可以往某一个域对象中存放数据,并且还可以取出存放的数据ServletContext context = this.getServletContext();

    // 往context域对象中存放数据

    //context域对象中的数据可以从其他文件中提取

    context.setAttribute("username", "张三");

    // 取出context域对象中的数据

    Object result = context.getAttribute("username");

    // 打印取出的结果:张三

    System.out.println(result);

    //首先获取ServletConfig对象

    ServletConfig sc = this.getServletConfig();

    //获取sc这个对象中封装的信息String encoding=sc.getInitParameter("encoding");System.out.println("encoding="+encoding);

    XML文件中配置参数

    <servlet>

    <servlet-name>Demo3Servlet</servlet-name><!--这个东西相当于变量-->

    <servlet-class>cn.java.servlet.Demo3Servlet</servlet-class>

    <init-param>

    <!-- 配置encoding参数,启动时自动封装到Demo3Servlet的ServletConfig对象中去 -->

    <param-name>encoding</param-name>

    <param-value>utf-8</param-value>

    </init-param>

    </servlet>

    转发与重定向的区别


    实现转发调用的是HttpServletRequest对象中的方法,实现重定向调用的是HttpServletResponse对象中的方法

    转发时浏览器的URL地址栏不会发生改变,重定向时浏览器中的URL地址会发生改变

    转发时浏览器只请求一次服务器,重定向时浏览器请求两次服务器

    转 发:

    request.setAttribute("username","内容");

    request.getRequestDispatcher("/文件名.jsp").forward(request,response);

    接收:

    request.getAttribute("");

    重定位:

    ServletContext sc=request.getServletContext();

    sc.setAttribute("变量","内容");

    response.sendRedirect("/工程名/文件名");

    接收:

    application.getAttribute("变量");

    相关文章

      网友评论

        本文标题:Servlet入门

        本文链接:https://www.haomeiwen.com/subject/epwcbftx.html