当前位置: 首页 > news >正文

河南网站建设yipinpai国内seo排名

河南网站建设yipinpai,国内seo排名,网络营销资格证网络营销证书,网页制作三巨头一、概念 request对象和response对象是通过Servlet容器(如Tomcat)自动创建并传递给Servlet的。 Servlet容器负责接收客户端的请求,并将请求信息封装到request对象中,然后将request对象传 递给相应的Servlet进行处理。类似地&…

 一、概念

       request对象和response对象是通过Servlet容器(如Tomcat)自动创建并传递给Servlet的。

Servlet容器负责接收客户端的请求,并将请求信息封装到request对象中,然后将request对象传

递给相应的Servlet进行处理。类似地,Servlet容器会创建一个response对象,并将其传递给

Servlet,用于生成响应并发送给客户端。

     总的来说,request对象是来获取请求消息,response对象是来设置响应消息

二、Request

        在Servlet的service()方法被调用时,Servlet容器会创建一个包含请求信息的HttpServletRequest对象,并将其作为参数传递给Servlet的service()方法。类似地,Servlet容器还会创建一个HttpServletResponse对象,并将其作为参数传递给Servlet的service()方法。

1、Request功能

(1)获取请求行数据

        请求行的数据有:请求方式  请求url 请求协议/协议版本号

             ①获取请求方式:getMethod()

             ②获取虚拟目录:getContextPath()

             ③获取servlet路径:getServletPath()

             ④获取get方式请求参数:getQueryString()

             ⑤获取请求URI:统一资源定位符:getRequestURI()

                                        统一资源标识符:getRequestURL()

             ⑥获取协议及版本: getProtocol()

             ⑦获取客户机的IP地址:getRemoteAddr()

  代码示例:

@WebServlet("/requestDemo1")
public class RequestDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1获取请求方式String method=request.getMethod();System.out.println(method);//2获取虚拟目录String contextPath = request.getContextPath();System.out.println(contextPath);//3获取servlet路径String servletPath = request.getServletPath();System.out.println(servletPath);//4获取请求参数String queryString = request.getQueryString();System.out.println(queryString);//5获取请求URIString requestURI = request.getRequestURI();System.out.println(requestURI);StringBuffer requestURL = request.getRequestURL();System.out.println(requestURL);//6获取请求协议及版本号String protocol = request.getProtocol();System.out.println(protocol);//7获取客户机的ip地址String remoteAddr = request.getRemoteAddr();System.out.println(remoteAddr);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}

(2)获取请求头数据

     方法:getHeader(String name):通过请求头的名称获取请求头的值

                 getHeaderNames():获取所有的请求头名称

@WebServlet("/requestDemo2")
public class RequestDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//演示获取请求头数据//获取所以请求头数据Enumeration<String> headerNames = request.getHeaderNames();//遍历while(headerNames.hasMoreElements()){String s = headerNames.nextElement();//根据名称获取请求头的值String header = request.getHeader(s);System.out.println(s+"......"+header);}//演示获取请求头数据:user-AgentString header = request.getHeader("user-agent");//判断agent的浏览器版本System.out.println(header);}

(3)获取请求体数据

      只有post请求有请求体

步骤:①获取流对象
                     BufferedReader getReader():获取字符输入流,只能操作字符数据
                    ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据

           ② 再从流对象中拿数据

@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求消息体--请求参数//1、获取字符流BufferedReader reader = request.getReader();//2、读取数据String line=null;while((line=reader.readLine())!=null){System.out.println(line);}System.out.println("-------------------------------------");}

 2、其他功能

(1)获取请求参数(不区分post和get方法)

       ①根据参数名称获取参数值:getParameter(String name)

       ②根据参数名称获取参数值数组:getParameterValues(String name)

       ③获取所有请求的参数名称:getParameterNames()

       ④获取所有参数的map集合:getParameterMap()

@WebServlet("/requestDemo4")
public class RequestDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//解决中文乱码问题request.setCharacterEncoding("utf-8");//根据请求参数的名称获取请求参数值String username = request.getParameter("username");System.out.println(username);System.out.println("post");System.out.println();//根据参数名称获取请求参数数组String[] parameterValues = request.getParameterValues("hobby");for (String hobby:parameterValues) {System.out.println(hobby);}System.out.println();//根据所以请求参数名称Enumeration<String> parameterNames = request.getParameterNames();while(parameterNames.hasMoreElements()){String s = parameterNames.nextElement();System.out.print(s);String parameter = request.getParameter(s);System.out.println(parameter);}System.out.println();//获取所以参数的map集合Map<String, String[]> parameterMap = request.getParameterMap();Set<String> strings = parameterMap.keySet();for(String name:strings){String[] strings1 = parameterMap.get(name);System.out.print(name);for(String value:strings1){System.out.println(value);}}}
}

(2)请求转发

          在服务器内部的资源跳转方式

       步骤:

            通过request对象获取请求转发器对象:getRequestDispatcher(String path)。

            使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response) 。

      特点:

          浏览器地址栏不发生改变

          只能转发到当前服务器内部资源中

          转发是一次请求

(3)共享数据

         域对象:一个有作用范围的对象,可以在范围内共享数据
         request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
         方法:
                ①setAttribute(String name,Object obj):存储数据
                ②getAttitude(String name):通过键获取值
                ③ void removeAttribute(String name):通过键移除键值对
          注意:这个放于forward方法的上面,不然响应太快会导致无法获取信息!

   代码示例

@WebServlet("/requestDemo5")
public class RequestDemo5 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo5被访问了");request.setAttribute("ttt","hhhh");//转发到demo6request.getRequestDispatcher("/requestDemo6").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}@WebServlet("/requestDemo6")
public class RequestDemo6 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Object ttt = request.getAttribute("ttt");System.out.println(ttt);System.out.println("demo6被访问了");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}

(4)获取ServletContext对象 :getServletContext()

三、Response

 response:设置响应消息

1、设置响应行方法

(1)设置响应行状态码方法:setStatus();

(2)设置响应头:setHeader(String name,String value)

(3)设置响应体:

              使用步骤:

                         ①获取输出流
                                  字符输出流:PrintWriter getWriter()

                                 字节输出流:ServletOutputStream getOutputStream()

                        ② 使用输出流,将数据输出到客户端浏览器

2、重定向: 一种资源跳转的方式

      (1)方法:sendRedirect()

     (2) 重定向的特点:redirect
            ① 地址栏发生变化
            ② 重定向可以访问其他站点(服务器)的资源
            ③ 重定向是两次请求。不能使用request对象来共享数据

@WebServlet( "/responseDemo1")
public class responseDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo1");//设置状态码为302response.setStatus(302);/* //设置响应头locationresponse.setHeader("location","/servlet/responseDemo2");*///获取当前应用程序的上下文路径String contextPath = request.getContextPath();//简单的重定向方法response.sendRedirect(contextPath+"/responseDemo2");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request,response);}
}@WebServlet("/responseDemo2")
public class responseDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo2");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request,response);}
}

(3)服务器输出字符数据到浏览器

         步骤:
                 获取字符输出流
                 输出数据

@WebServlet("/responseDemo3")
public class responseDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {/*//获取流对象之前,设置流的默认编码:ISO-8859-1设置为:浏览器默认编码response.setCharacterEncoding("utf-8");//告诉浏览器服务器发送的消息体数据的编码,建议浏览器使用改编码解码response.setHeader("content-type","text/html;charset=utf-8");*/response.setContentType("text/html;charset=utf-8");//解决乱码问题//获取字符输出流PrintWriter writer = response.getWriter();//输出数据writer.write("牛牛牛");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request,response);}
}

(4)服务器输出字节数据到浏览器
          步骤:
                 获取字节输出流
                 输出数据

@WebServlet("/responseDemo4")
public class responseDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取字节输出流ServletOutputStream outputStream = response.getOutputStream();//输出数据outputStream.write("你好".getBytes());}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request,response);}
}

三、ServletContext对象

1、概念

       ServletContext 实例代表了整个 Web 应用程序的上下文环境,可以在整个应用程序中访问和共享,可以和服务器来通信。

2、获取

      方式一:

              通过request对象获取:request.getServletContext();

     方式二:

              通过HttpServlet获取:this.getServletContext();

3、功能

(1)获取MIME类

             MIME类型:在互联网通信过程中定义的一种文件数据类型
             格式: 大类型/小类型   text/html        image/jpeg

        获取方法:getMimeType(String file)  

   代码示例

@WebServlet("/ContextDemo1")
public class ContextDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取Context对象的方式// ServletContext servletContext = request.getServletContext();ServletContext servletContext1 = this.getServletContext();//定义文件名称String filename="a.jpg";//获取MIME类型String mimeType = servletContext1.getMimeType(filename);System.out.println(mimeType  );}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request,response);}
}

(2)域对象:共享数据

        ① setAttribute(String name,Object value)
        ② getAttribute(String name)
        ③removeAttribute(String name)

         ServletContext对象范围:所有用户所有请求的数据


@WebServlet(name = "ContextDemo2", value = "/ContextDemo2")
public class ContextDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {ServletContext servletContext1 = this.getServletContext();servletContext1.setAttribute("n","hello");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request,response);}
}@WebServlet(name = "ContextDemo2", value = "/ContextDemo2")
public class ContextDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {ServletContext servletContext1 = this.getServletContext();Object n = servletContext1.getAttribute("n");System.out.println(n);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request,response);}
}

(3) 获取文件的真实(服务器)路径

         方法:String getRealPath(String path)

http://www.hkea.cn/news/773575/

相关文章:

  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口
  • 在线教育网站用什么做百度搜索的优势
  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训
  • 南宁网站建设接单陕西省人民政府
  • wordpress网站价格seo域名综合查询
  • 支付网站怎么做的网络自动推广软件
  • js做网站统计品牌关键词优化
  • 微信公众号管理平台官网谷歌seo建站
  • 鲜花购物网站源码企业网站营销的优缺点
  • 表白网站制作在线日照网站优化公司
  • 企业网站建设策划书 前言徐州关键词优化排名
  • 一级a做爰片视频网站全国新闻媒体发稿平台
  • 唐山网站建设哪家专业高德北斗导航
  • wordpress 地址 .html企业网站seo贵不贵
  • 提供网站制作公司哪家好网络软文范文
  • 做原型网站枣庄网络推广seo
  • 品牌网站开发设计外贸网站平台
  • 网站做留言板网站推广在线
  • 长春服务好的网络营销seo网站推广的主要目的
  • 搜索引擎优化和关键词竞价广告的区别宿州百度seo排名软件
  • 一搜同志网站建设电话青岛网站seo优化