秒秒pk10走势 _Java匹马行天下之JavaWeb核心技术——Servlet

  • 时间:
  • 浏览:1
  • 来源:云南生活网_云南人的网上生活家园

Servlet是在服务器上运行的小线程池池运行,也什么都我五个Java类,但比较特殊,不须要new,自动就还须要运行。都不 创建、垃圾回收和销毁过程。Servlet是JavaWeb的三大组件之一(Servlet、Filter、Listener),它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常须要:

  • 接收请求数据;
  • 处理请求;
  • 完成响应。

类似于于客户端发出登录请求,机会输出注册请求,那此请求都应该由Servlet来完成处理。Servlet须要朋友自己来编写,每个Servlet须要实现javax.servlet.Servlet接口。Servlet对象驻留在服务器内存中。

1、编写五个Servlet线程池池运行

       写五个java类,实现Servlet接口,实现了该接口,该类就都不 普通的类了。

package servletdemo;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/servlet")
public class servletDemo implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("Hello Servlet");

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

部署应用到tomcat服务器。

实例化-->初始化-->服务->销毁

      出生:(实例化-->初始化)第一次访问Servlet就出生了(默认请况下)。(说明让你 改变它的出生时机,比如让servlet在服务器启动时就创建)

      活着:(服务)应用活着,servlet就活着。(Servlet是单实例,其中的service()最好的妙招是线程池池池运行的。)

      死亡:(销毁)应用被卸载了,servlet就销毁了。

package servletdemo;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/servlet")
public class servletDemo implements Servlet {

    //Servlet生命周期的最好的妙招:实例化最好的妙招(new 对象,无参构造)
    //在servlet第一次被访问时调用
    public servletDemo() {
        System.out.println("*******servletDemo执行了");
    }

    //Servlet生命周期的最好的妙招:初始化最好的妙招
    //在servlet第一次被访问时调用
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("*********init执行了");

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    //Servlet生命周期的最好的妙招:服务最好的妙招
    //每次访问时一定会被调用
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("*******service执行了");
    }


    @Override
    public String getServletInfo() {
        return null;
    }

    //Servlet生命周期的最好的妙招:销毁最好的妙招
    //当应用被卸载时调用
    @Override
    public void destroy() {
        System.out.println("*******destroy执行了");
    }
}

实现Servlet有你這個 最好的妙招:

  •  实现javax.servlet.Servlet接口;
  • 继承javax.servlet.GenericServlet类;
  • 继承javax.servlet.http.HttpServlet类;

自定义Servlet类的继承行态,如下图:

 1、实现javax.servlet.Servlet接口(参见:编写五个servlet线程池池运行)

 2、继承javax.servlet.GenericServlet类(抽象类)(适配器模式)

    GenericServlet类(抽象类)机会实现了Servlet接口,朋友用哪个最好的妙招就调用哪最好的妙招,过多再再去完整性实现了,哪怕是完整性的空实现。

3、继承javax.servlet.http.HttpServlet(抽象类)(模板最好的妙招设计模式)

    模板是HttpServlet类中的私有service()最好的妙招(开发中常用最好的妙招)

    HttpServlet类(抽象类)继承了GenericServlet类(抽象类)

package servletdemo;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/servlet1")
public class servlet extends HttpServlet {
    //具体实现1
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("******MydoGet*******");
        System.out.println(req.getRemoteAddr());
    }

    //具体实现2
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("*******MydoPost******");
    }

}

  

     注意: 不须重写父类Httpservlet中的service()最好的妙招,机会该最好的妙招会调用Httpservlet中私有的service()最好的妙招,

          而该私有的service()最好的妙招会根据不同的提交表单的最好的妙招,会调用相应的doGet()、doPost()、doHead()等最好的妙招。

          朋友去重写那此不同的表单提交的最好的妙招即可。

       Servlet(接口) --> GenericServlet(抽象类/适配器) --> HttpServlet(功能抽象类/模板) --> (继承HttpServlet,具体实现类,重写其功能)

4、公牛表白的故事

此故事纯属自己脑洞虚构

故事内容:草原上有一头公牛喜欢一头母牛,倘若公牛不敢直接向母牛表白,有一天公牛找到一头小牛,想让小牛把他想对母牛说句子说给母牛听,小牛答应了,剧情很鸡血,就曾经,看我用servlet实现

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h2>公牛表白准备</h2>
<a href="/servlet2">去表白</a>
</body>
</html>

  

package com.demo.servlet;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/servlet2")
public class ServletDemo2 extends GenericServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("我是草原上的公牛");
        System.out.println("我让小牛把我对母牛的爱传给她");
        System.out.println("该说句子我给小牛说了,小牛听到了给我回复收到,并把朋友说句子传给母牛");
        ServletContext application = this.getServletContext();
        application.setAttribute("name","母牛");
        application.getRequestDispatcher("/servlet3").forward(req,res);
        
    }
}

  

package com.demo.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/servlet3")
public class ServletDemo3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doPost(req,resp);
        System.out.println("我是小牛");
        //设置输出格式和字符编码
        resp.setContentType("text/html;charset=utf-8");
        //向页面输出内容
        PrintWriter out = resp.getWriter();
        out.println("<h1>我是小牛</h1>");
        ServletContext application = this.getServletContext();
        String name = (String) application.getAttribute("name");
        System.out.println("收到的名字:"+name);
        out.println("收到的名字:"+name);
        System.out.println("小牛收到");
        application.setAttribute("love","公牛说他爱你");
        application.getRequestDispatcher("/servlet4").forward(req,resp);

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("我是dopost");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();
        out.println("<h1>我是servlet33</h1>");
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.service(req, resp);
        System.out.println("我是service333");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();
        out.println("<h1>我是servlet333</h1>");
    }
}

  

package com.demo.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/servlet4")
public class Servlet4 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
        System.out.println("我是母牛");
        String love = (String) this.getServletContext().getAttribute("love");
        System.out.println(love);
        resp.setContentType("text/html;charset=utf-8");
        //向页面输出内容
        PrintWriter out = resp.getWriter();
        out.println("收到的表白:"+love);
        System.out.println("母牛收到");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

  5、servlet的映射细节

      1、servlet的映射细节一:

五个servlet还须要配置多个映射路径(机会说:多个映射路径还须要指向同五个servlet),只什么都我name是一样的就行

                     2、servlet的映射细节二:     

 通配符代表任意字符串

        url-pattern*.xxx     .xxx结尾的请求都还须要访问  注:不须加/

        url-pattern/*        任意字符串结尾的请求都还须要访问

        url-pattern/xxxx/*   /xxxx/开头的请求都还须要访问

6、对servlet配置有你這個 最好的妙招

1、在web.xml中对servlet进行配置

2、利用注解进行配置

     在servlet类的上边写入注解@WebServlet("/hello")

7、实例一——在web.xml中配置

1、在Web.xml中配置路径和参数

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>Servletdemo1</servlet-name>
    <servlet-class>com.demo.servlet.Servletdemo1</servlet-class>
    <init-param>
      <param-name>name</param-name>
      <param-value>tom</param-value>
    </init-param>
    <init-param>
      <param-name>password</param-name>
      <param-value>1234</param-value>
    </init-param>

  </servlet>
  <servlet-mapping>
    <servlet-name>Servletdemo1</servlet-name>
    <url-pattern>/servlet</url-pattern>
  </servlet-mapping>

  <context-param>
    <param-name>k</param-name>
    <param-value>xxxxxxxx</param-value>
  </context-param>
</web-app>

  

2、在servlet中获取参数和值

package com.demo.servlet;

import javax.servlet.*;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;


public class Servletdemo1 implements Servlet {
    private  ServletConfig servletConfig;

    @Override
    public void init(ServletConfig config) throws ServletException {
        servletConfig=config;
        System.out.println("init调用了");

    }

    @Override
    public ServletConfig getServletConfig() {
        return servletConfig;
    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        //设置输出格式和字符编码
        res.setContentType("text/html;charset=utf-8");
        //向页面输出内容
        PrintWriter out = res.getWriter();
        out.println("我是service"+"<br>");
        System.out.println("我是service");

        //最好的妙招一
        String name = servletConfig.getInitParameter("name");
        String password = servletConfig.getInitParameter("password");

        System.out.println("在控制台输出信息:");
        System.out.println("name:"+name+"password:"+password);

        out.println("name:"+name+" "+"password:"+password+"<br>");

        //最好的妙招二
        Enumeration<String> en = servletConfig.getInitParameterNames();
        while (en.hasMoreElements()){
            String names = en.nextElement();
            String values = servletConfig.getInitParameter(names);

            System.out.println("在控制台输出信息:");
            System.out.println(names+" "+values);
            out.println(names+" "+values+"<br>");
        }

        String k = servletConfig.getServletContext().getInitParameter("k");
        System.out.println("在控制台输出信息:");
        System.out.println("k:"+k+"<br>");
        out.println("k"+k);
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

8、实例二——利用注解配置

package com.demo.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/hello")
public class Servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
        ServletContext servletContext = this.getServletContext();
        servletContext.setAttribute("user","Tom");
        String user = (String)servletContext.getAttribute("user");

        //从请求的地址栏或表单中获取信息
        String user2 = req.getParameter("user");

        System.out.println("获取Context容器中的信息:"+user);
        System.out.println("在控制台输出从访问的地址栏获取的信息:"+user2);
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");

        PrintWriter out = resp.getWriter();
        out.append("<!DOCTYPE html>")
                .append("<html><head></head><body>")
                .append("用户是"+user)
                .append("</body></html>");

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

  

    整个生命周期是单实例,每次访问时为线程池池池运行。

      一:单实例变成多实例,但过时了,机会耗费资源多,服务器压力大。

      二:加线程池池运行锁,但数据会重复出显(这么 同步机制),且运行速率低。

      三:处理线程池池运行安全问题报告 的最佳最好的妙招:不须写全局变量,而写局部变量(即改变变量的作用域)。

    ServletContext: 代表的是整个应用。五个应用只五个ServletContext对象。单实例。

五个项目只五个ServletContext对象,服务器会为每个应用创建五个ServletContext对象,朋友还须要在N多个Servlet中来获取你這個 唯一的对象,使用它还须要给多个Servlet传递数据,与Tomcat同生同死。

  • ServletContext对象的创建是在服务器启动时完成的;
  • ServletContext对象的销毁是在服务器关闭时完成的。

ServletContext对象的作用是在整个Web应用的动态资源直接共享数据。类似于于在AServlet中向ServletContext对象中保存五个值,倘若在BServlet中就还须要获取你這個 值,这什么都我数据共享。

1、获取ServletContext

在Servlet中获取ServletContext对象:

  •  在void init(ServletConfig config)中:

ServletContext context = config.getServletContext();

public class DemoServlet implements Servlet {

    public void init(ServletConfig config) throws ServletException {

       ServletContext context = config.getServletContext();

    }

}
  • GenericServlet类有getServletContext()最好的妙招,什么都还须要直接使用this.getServletContext()类获取。 在GenericServlet或HttpServlet中获取ServletContext对象:
public class HttpServletDemo extends HttpServlet {

    @Override

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)

           throws ServletException, IOException {

       ServletContext context = this.getServletContext();

    }

}
  •   HttpSession中也还须要通过getServletContext()最好的妙招来获得

2、域对象的功能

ServletContext是JavaWeb四大域对象之一:

  •  PageContext
  •  ServletRequest
  •  HttpSession
  •  ServletContext

所有域对象都不 有存取数据的功能,机会域对象实物五个Map,用来存储数据,下面是ServletContext对象用来操作数据的最好的妙招:

  •  void setAttribute(String name,Object val):用来存储五个对象,也还须要成为存储五个域,参数分别为域的属性名和属性值,机会多次调用该最好的妙招,倘若使用相同的name,这么 就会覆盖上一次的值,你這個 行态与Map类似于于。
  •  Object getAttribute(String name):用来获取ServletContext中的数据,当前在获取很久须要先存储。
  •  void removeAttribute(String name):用来移除ServletContext中的域属性,机会参数name不指在,这么 该最好的妙招那此都不 做。
  •  Enumeration getAttributeNames():获取所有域属性的名称。

2获取全局配置信息:

 最好的妙招:public String getInitParamenter(String name) // 根据配置文件中的key得到value

3、读取简单的资源文件(即只中有 key=value的形式):

    最好的妙招:public String getRealPath(String path)// 根据资源名称得到资源的绝对路径,还须要得到当前应用任何位置的任何资源。

public class AServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//获取中有

盘符的路径
		String path = this.getServletContext().getRealPath("/a.txt");
		
		//获取资源路径后,再获取输入流对象
		InputStream is = this.getServletContext().getResourceAsStream("/a.txt");
		
		//获取当前路径下的所有资源路径
		Set<String> paths = this.getServletContext().getResourcePaths("/WEB-INF");
		
	}
}

4、Servlet的转发与重定向

 转发和重定向都能让浏览器获得另外五个URL所指向的资源,但两者的实物运行机制有着很大的区别。

1、转发:有你這個 最好的妙招获得转发对象(RequestDispatcher):你這個 是通过HttpServletRequest的getRequestDispatcher()最好的妙招获得,你這個 是通过ServletContext的getRequestDispatcher()最好的妙招获得;

     很久的request范围中存放的变量过多再失效,就像把五个页面拼到了同時 。 类似于于:

request.getRequestDispatcher (“demo.jsp"). forward(request, response);//转发到demo.jsp

     详解:假设浏览器访问servlet1,而servlet1想让servlet2为客户端服务。此时servlet1调用forward()最好的妙招,将请求转发给servlet2。倘若调用forward()最好的妙招,对于浏览器来说是透明的,浏览器并告诉我为其服务的Servlet机会打上去Servlet2,它只知道发出了五个请求,获得了五个响应。浏览器URL的地址栏不变。

2、重定向:HttpServletResponse的sendRedirect()最好的妙招。

     服务器根据此请求寻找资源并发送给客户,它还须要重定向到任意URL,这么 共享request范围内的数据。类似于于:response.sendRedirect(“demo.jsp");//重定向到demo.jsp

     详解:假设浏览器访问servlet1,而servlet1想让servlet2为客户端服务。此时servlet1调用sendRedirect()最好的妙招,将客户端的请求重新定向到Servlet2。接着浏览器访问servlet2,servlet2对客户端请求作出反应。浏览器URL的地址栏改变。

3、主要区别:

(1)sendRedirect()最好的妙招不但还须要在指在同五个主机上的不同Web线程池池运行运行之间进行重定向,倘若还须要将客户端重定向到有些服务器上的Web线程池池运行运行资源。而forward()最好的妙招这么 将请求转发给同一Web应用的组件。

(2)sendRedirect()最好的妙招这么 转发到“/WEB-INF/”路径下的jsp页面资源,而getRequestDispatcher().forword()还须要重定向到“/WEB-INF/”路径下的jsp页面资源。如 request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);

(3)转发:浏览器URL的地址栏不变。

        重定向:浏览器URL的地址栏改变。

5、实现Servlet的请求转发:

    最好的妙招:public RequestDispatcher getRequestDispatcher(String path) //参数表示要跳转到哪去

6、依赖和关联

      机会是通过参数传过来的对象,就叫依赖。

     通过最好的妙招得到的对象,就叫关联。

1、HTTP请求常用最好的妙招

Cookie[] getCookies()

返回五个数组,中有 客户端发送该请求的所有的 Cookie 对象。

Enumeration getAttributeNames()

返回五个枚举,中有 提供给该请求可用的属性名称。

HttpSession getSession()

返回与该请求关联的当前 session 会话,机会机会请求这么 session 会话,则创建五个。

HttpSession getSession(boolean create)

返回与该请求关联的当前 HttpSession,机会机会这么 当一定会话,且创建是真的,则返回五个新的 session 会话。

String getRequestedSessionId()

返回由客户端指定的 session 会话 ID。

Object getAttribute(String name)

以对象形式返回已命名属性的值,机会这么 给定名称的属性指在,则返回 null。

String getCharacterEncoding()

返回请求主体中使用的字符编码的名称。

String getContentType()

返回请求主体的 MIME 类型,机会告诉我类型则返回 null。

String getContextPath()

返回指示请求上下文的请求 URI 帕累托图。

String getQueryString()

返回中有 在路径后的请求 URL 中的查询字符串。

String getRemoteUser()

机会用户已通过身份验证,则返回发出请求的登录用户,机会机会用户未通过身份验证,则返回 null。

int getParameterMap()

将参数封装成 Map 类型。

2、设置HTTP响应头的最好的妙招

void reset()

清除缓冲区中指在的任何数据,包括请况码和头。

void resetBuffer()

清除响应中基础缓冲区的内容,不清除请况码和头。

void setCharacterEncoding(String charset)

设置被发送到客户端的响应的字符编码(MIME 字符集)类似于于,UTF-8。

void setStatus(int sc)

为该响应设置请况码。

void setIntHeader(String name, int value)

设置五个中有 给定的名称和整数值的响应报头。

HTTP Header 响应实例:

//导入必需的 java 库
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Refresh")
//扩展 HttpServlet 类
public class Refresh extends HttpServlet {
    // 处理 GET 最好的妙招请求的最好的妙招
      public void doGet(HttpServletRequest request,
                        HttpServletResponse response)
                throws ServletException, IOException
      {
          // 设置刷新自动加载时间为 5 秒
          response.setIntHeader("Refresh", 5);
          // 设置响应内容类型
          response.setContentType("text/html;charset=UTF-8");
         
          //使用默认时区和语言环境获得五个日历  
          Calendar cale = Calendar.getInstance();  
          //将Calendar类型转打上去Date类型  
          Date tasktime=cale.getTime();  
          //设置日期输出的格式  
          SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
          //格式化输出  
          String nowTime = df.format(tasktime);
          PrintWriter out = response.getWriter();
          String title = "自动刷新 Header 设置 - 菜鸟教程实例";
          String docType =
          "<!DOCTYPE html>\n";
          out.println(docType +
            "<html>\n" +
            "<head><title>" + title + "</title></head>\n"+
            "<body bgcolor=\"#f0f0f0\">\n" +
            "<h1 align=\"center\">" + title + "</h1>\n" +
            "<p>当前时间是:" + nowTime + "</p>\n");
      }
      // 处理 POST 最好的妙招请求的最好的妙招
      public void doPost(HttpServletRequest request,
                         HttpServletResponse response)
          throws ServletException, IOException {
         doGet(request, response);
      }
}

  以上测试实例是指在 TomcatTest 项目下,对应的 web.xml 配置为:

<?xml version="1.0" encoding="UTF-8"?>  
<web-app>  
  <servlet>  
     <!-- 类名 -->  
    <servlet-name>Refresh</servlet-name>  
    <!-- 所在的包 -->  
    <servlet-class>com.runoob.test.Refresh</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>Refresh</servlet-name>  同上边的类名
    <!-- 访问的网址 -->  
    <url-pattern>/TomcatTest/Refresh</url-pattern>  
    </servlet-mapping>  
</web-app> 

  现在,调用上边的 Servlet,每隔 5 秒会显示当前系统时间。

3、HTTP请况码

404:服务器无法找到所请求的页面。

403:禁止访问所请求的页面。

401:所请求的页面须要用户名和密码。

405:在请求中指定的最好的妙招是不允许的。

2007:所请求的页面机会临时转移到五个新的 URL。

2000:未完成的请求。服务器遇到了五个意外的请况。

  下面的最好的妙招可用于在 Servlet 线程池池运行中设置 HTTP 请况码。那此最好的妙招通过 HttpServletResponse 对象可用。

public void setStatus ( int statusCode )

该最好的妙招设置五个任意的请况码。setStatus 最好的妙招接受五个 int(请况码)作为参数。机会您的反应中有 了五个特殊的请况码和文档,请确保在使用 PrintWriter 实际返回任何内容很久调用 setStatus。

public void sendError(int code, String message)

该最好的妙招发送五个请况码(通常为 404),连同五个在 HTML 文档实物自动格式化并发送到客户端的短消息。

// 设置错误代码和原因
response.sendError(407, "Need authentication!!!" );

4、Servlet接口&访问最好的妙招介绍

  Servlet是实现了javax.servlet.Servlet接口的类,你這個 接口规定了特定的最好的妙招来处理特定的请求,朋友只须要实现Servlet相关的最好的妙招,Servlet规范是建立在HTTP协议上的,http1.1规范支持OPTIONS/GET/POST/HEAD/PUT/DELETE/TRACE等7种访问最好的妙招。下面朋友重点介绍Get/Post。

1、GET:表示查询信息,URL中附带几瓶参数信息,URL总长度不超过25五个字符,参数一定会在浏览器的地址栏中显示

2、POST:表示提交信息,一般用于提交大数据信息机会文件,提交的内容不收长度限制,什么都我会在地址栏中显示。

4、OPTIONS /PUT /DELETE /TRACE:是被声明了但还这么 被使用web访问最好的妙招,几乎过多再。

猜你喜欢

2分pk10平台网址_想吃薯片?自己动手只需10分钟

想吃薯2分pk10平台网址片,去哪几种超市!手脚麻利的,随手削三个马铃薯切薄片,花几分钟炸或烤至香香脆脆,加带调味就可不还都都可以 开吃啦~~马铃薯三个,油,盐,玉米淀粉2勺

2020-02-25

分分三分快三倍投_严重失信会计人员将被列入“黑名单”

财政部日前印发《关于加强会计人员诚信建设的指导意见》,以加强会计诚信建设,建立健全会计人员守信联合激励和失信联合惩戒机制,推动会计行业进一步提高诚信水平。“会计人员诚信建设是社

2020-02-25

10分时时彩代理_夏进牛奶:品质与口感俱佳才是好牛奶!

 自然清新的发酵乳、好喝柔润的酸奶、麦香浓郁的燕麦味、还有健康健脑的枸杞、核桃牛奶……夏进乳业的每一款牛奶都能为你带来无限惊喜,让人在营养与美味之外,体验品质生活。黄金牧场提供

2020-02-25

5分彩游戏_比达:母婴中高端市场持续增长 宝宝树孕育和亲宝宝月活用户领先

伴随母婴市场进入成熟期图片 是什么的句子的句子的句子的句子是什么 是什么图片 的句子期,中国母婴市场发展步入新阶段,其中电商领域发展放缓,中高端市场持续增5分彩游戏长。比

2020-02-25

分分pk10官方邀请码 _ 水对皮肤的重要性

1、清晨慎补分分pk10官方邀请码 水一些女孩子把起床后饮水视为每日的功课分分pk10官方邀请码 ,图它润肠通便,降低血粘度,让整我该人看上去水灵灵的。不过消瘦,肤白,体质寒凉

2020-02-25