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

电子商务网站建设侧重点怎么建立公司网站

电子商务网站建设侧重点,怎么建立公司网站,做任务挣钱的网站,asp网站开发参考文献目录 一、概述 二、Request对象 1.Request继承体系 2.Request获取请求数据 ①获取请求行数据 ②获取请求头数据 ③获取请求体数据 ④获取请求参数 3.Request请求转发 三、Response 1.Response设置响应数据功能 ①响应行 ②响应头 ③响应体 2.请求重定向 3.路径问…

目录

一、概述

二、Request对象

1.Request继承体系

2.Request获取请求数据

①获取请求行数据

②获取请求头数据

③获取请求体数据

④获取请求参数

3.Request请求转发

三、Response

1.Response设置响应数据功能

①响应行

②响应头

③响应体

2.请求重定向

3.路径问题

4.Response响应字符数据

5.Response响应字节数据


一、概述

Request是请求对象,Response是响应对象

request:获取请求数据
浏览器会发送HTTP请求到后台服务器[Tomcat]
HTTP的请求中会包含很多请求数据[请求行+请求头+请求体]
后台服务器[Tomcat]会对HTTP请求中的数据进行解析并把解析结果存入到一个对象中
所存入的对象即为request对象,所以我们可以从request对象中获取请求的相关参数
获取到数据后就可以继续后续的业务,比如获取用户名和密码就可以实现登录操作的相关业务

response:设置响应数据
业务处理完后,后台就需要给前端返回业务处理的结果即响应数据
把响应数据封装到response对象中
后台服务器[Tomcat]会解析response对象,按照[响应行+响应头+响应体]格式拼接结果
浏览器最终解析结果,把内容展示在浏览器给用户浏览

二、Request对象

1.Request继承体系

 Request的继承体系为ServletRequest-->HttpServletRequest-->RequestFacade

Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法

2.Request获取请求数据

HTTP请求数据总共分为三部分内容,分别是请求行、请求头、请求体

①获取请求行数据

请求行包含三块内容,分别是请求方式、请求资源路径、HTTP协议及版本

获取请求方式: GET

String getMethod()


获取虚拟目录(项目访问路径): /request-demo

String getContextPath()


获取URL(统一资源定位符): http://localhost:8080/request-demo/req1

StringBuffer getRequestURL()


获取URI(统一资源标识符): /request-demo/req1

String getRequestURI()


获取请求参数(GET方式): username=zhangsan&password=123

String getQueryString()

②获取请求头数据

String getHeader(String name)

③获取请求体数据

浏览器在发送GET请求的时候是没有请求体的,所以需要把请求方式变更为POST

获取字节输入流,如果前端发送的是字节数据,比如传递的是文件数据,则使用该方法

ServletInputStream getInputStream()

获取字符输入流,如果前端发送的是纯文本数据,则使用该方法

BufferedReader getReader()

④获取请求参数

请求参数是请求数据中的部分内容

如果是GET请求,请求参数在请求行中

如果是POST请求,请求参数一般在请求体中

GET方式

String getQueryString()

POST方式

BufferedReader getReader();

统一获取GET和POST请求参数的方式 

方法一:

//示例,直接使用POST调用GET方法,提高代码复用率
@WebServlet("/req1")
public class RequestDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取请求方式String method = req.getMethod();//获取请求参数String params = "";if("GET".equals(method)){params = req.getQueryString();}else if("POST".equals(method)){BufferedReader reader = req.getReader();params = reader.readLine();}//将请求参数进行打印控制台System.out.println(params);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req,resp);}
}

方法二:

获取所有参数Map集合

Map<String,String[]> getParameterMap()

根据名称获取参数值

String[] getParameterValues(String name)

根据名称获取参数值(单个值)

String getParameter(String name)
@WebServlet("/req2")
public class RequestDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//GET请求逻辑System.out.println("get....");//1. 获取所有参数的Map集合Map<String, String[]> map = req.getParameterMap();for (String key : map.keySet()) {// username:zhangsan lisiSystem.out.print(key+":");//获取值String[] values = map.get(key);for (String value : values) {System.out.print(value + " ");}System.out.println();}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}
@WebServlet("/req2")
public class RequestDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//GET请求逻辑//...System.out.println("------------");String[] hobbies = req.getParameterValues("hobby");for (String hobby : hobbies) {System.out.println(hobby);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}
@WebServlet("/req2")
public class RequestDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//GET请求逻辑//...String username = req.getParameter("username");String password = req.getParameter("password");System.out.println(username);System.out.println(password);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}

POST只需要采用GET的方法即可

public class RequestDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//采用request提供的获取请求参数的通用方式来获取请求参数//编写其他的业务代码...}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req,resp);}
}

3.Request请求转发

请求转发(forward):一种在服务器内部的资源跳转方式

(1)浏览器发送请求给服务器,服务器中对应的资源A接收到请求
(2)资源A处理完请求后将请求发给资源B
(3)资源B处理完后将结果响应给浏览器
(4)请求从资源A到资源B的过程就叫请求转发

请求转发的实现方式

req.getRequestDispatcher("资源B路径").forward(req,resp);

请求转发资源间共享数据:使用Request对象

存储数据到request域[范围,数据是存储在request对象]中

void setAttribute(String name,Object o);

根据key获取值

Object getAttribute(String name);

根据key删除该键值对

void removeAttribute(String name);

请求转发的特点

浏览器地址栏路径不发生变化

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

一次请求,可以在转发资源间使用request共享数据

三、Response

Response:使用response对象来设置响应数据

Reponse的继承体系和Request的继承体系也非常相似:

1.Response设置响应数据功能

HTTP响应数据总共分为三部分内容,分别是响应行、响应头、响应体

①响应行

 设置响应状态码:

 void setStatus(int sc);

②响应头

 设置响应头键值对:

void setHeader(String name,String value);

③响应体

对于响应体,是通过字符、字节输出流的方式往浏览器写

获取字符输出流:

PrintWriter getWriter();

获取字节输出流

ServletOutputStream getOutputStream();

2.请求重定向

(1)浏览器发送请求给服务器,服务器中对应的资源A接收到请求
(2)资源A现在无法处理该请求,就会给浏览器响应一个302的状态码+location的一个访问资源B的
路径
(3)浏览器接收到响应状态码为302就会重新发送请求到location对应的访问地址去访问资源B
(4)资源B接收到请求后进行处理并最终给浏览器响应结果,这整个过程就叫重定向

重定向的实现方式:

resp.setStatus(302);
resp.setHeader("location","资源B的访问路径");

重定向简化:

resposne.sendRedirect("资源B的访问路径");

重定向的特点:

浏览器地址栏路径发送变化
当进行重定向访问的时候,由于是由浏览器发送的两次请求,所以地址会发生变化

可以重定向到任何位置的资源(服务内容、外部均可)
因为第一次响应结果中包含了浏览器下次要跳转的路径,所以这个路径是可以任意位置资源。

两次请求,不能在多个资源使用request共享数据
因为浏览器发送了两次请求,是两个不同的request对象,就无法通过request对象进行共享数

Request和Response重定向的对比 

3.路径问题

转发的时候路径上没有加/request-demo而重定向加了
浏览器使用:需要加虚拟目录(项目访问路径)
服务端使用:不需要加虚拟目录

4.Response响应字符数据

通过Response对象获取字符输出流: PrintWriter writer = resp.getWriter();
通过字符输出流写数据: writer.write("aaa")

①可以返回简单字符串

②可以返回一串html字符串并且可以被浏览器解析

③可以返回中文字符串,需要注意设置响应数据的编码为utf-8

//设置响应的数据格式及数据的编码
response.setContentType("text/html;charset=utf-8");

5.Response响应字节数据

通过Response对象获取字节输出流:ServletOutputStream outputStream =
resp.getOutputStream();
通过字节输出流写数据: outputStream.write(字节数据);

//1. 读取文件
FileInputStream fis = new FileInputStream("d://a.jpg");
//2. 获取response字节输出流
ServletOutputStream os = response.getOutputStream();
//3. 完成流的copy
byte[] buff = new byte[1024];
int len = 0;
while ((len = fis.read(buff))!= -1){os.write(buff,0,len);
}
fis.close();


文章转载自:
http://organotropic.c7630.cn
http://sbc.c7630.cn
http://partridge.c7630.cn
http://visakhapatnam.c7630.cn
http://intraswitch.c7630.cn
http://annealing.c7630.cn
http://roar.c7630.cn
http://rerecording.c7630.cn
http://immoral.c7630.cn
http://phospholipide.c7630.cn
http://biggity.c7630.cn
http://hydrostatical.c7630.cn
http://cilium.c7630.cn
http://foliiferous.c7630.cn
http://dichasially.c7630.cn
http://migronaut.c7630.cn
http://unwise.c7630.cn
http://irreformable.c7630.cn
http://chital.c7630.cn
http://monthly.c7630.cn
http://languish.c7630.cn
http://participialize.c7630.cn
http://rimption.c7630.cn
http://chromatron.c7630.cn
http://gerontogeous.c7630.cn
http://imagination.c7630.cn
http://ddk.c7630.cn
http://inferiority.c7630.cn
http://bedeck.c7630.cn
http://physiognomy.c7630.cn
http://flory.c7630.cn
http://hague.c7630.cn
http://valletta.c7630.cn
http://matsumoto.c7630.cn
http://bullish.c7630.cn
http://guileful.c7630.cn
http://hemispheroidal.c7630.cn
http://zeugma.c7630.cn
http://sentencehood.c7630.cn
http://frenchmen.c7630.cn
http://vivid.c7630.cn
http://bioflick.c7630.cn
http://shrivel.c7630.cn
http://campcraft.c7630.cn
http://sprinkling.c7630.cn
http://larboard.c7630.cn
http://prejudgment.c7630.cn
http://sheepberry.c7630.cn
http://microfluorometry.c7630.cn
http://kalpa.c7630.cn
http://outstation.c7630.cn
http://injury.c7630.cn
http://drumfish.c7630.cn
http://suitcase.c7630.cn
http://unreaped.c7630.cn
http://hammerless.c7630.cn
http://fipple.c7630.cn
http://miasmatic.c7630.cn
http://hirundine.c7630.cn
http://horus.c7630.cn
http://missile.c7630.cn
http://palatial.c7630.cn
http://philosophize.c7630.cn
http://gula.c7630.cn
http://rantankerous.c7630.cn
http://nickeliferous.c7630.cn
http://liberian.c7630.cn
http://geoelectric.c7630.cn
http://fasciately.c7630.cn
http://filamentous.c7630.cn
http://indicative.c7630.cn
http://auditory.c7630.cn
http://tholepin.c7630.cn
http://cheerfulness.c7630.cn
http://laminaria.c7630.cn
http://nanometer.c7630.cn
http://accrete.c7630.cn
http://latticing.c7630.cn
http://applicability.c7630.cn
http://maximize.c7630.cn
http://weald.c7630.cn
http://vox.c7630.cn
http://pronucleus.c7630.cn
http://naled.c7630.cn
http://extrasensory.c7630.cn
http://disassimilate.c7630.cn
http://isotopy.c7630.cn
http://csia.c7630.cn
http://issueless.c7630.cn
http://unspeakable.c7630.cn
http://rhombic.c7630.cn
http://subroutine.c7630.cn
http://houseful.c7630.cn
http://gigawatt.c7630.cn
http://sceptical.c7630.cn
http://depigmentize.c7630.cn
http://fruitive.c7630.cn
http://jerusalemite.c7630.cn
http://irq.c7630.cn
http://squeaky.c7630.cn
http://www.zhongyajixie.com/news/75442.html

相关文章:

  • 娱乐彩票网站建设制作百度怎么推广自己的视频
  • 公司网站怎么做实名认证成都专门做网站的公司
  • 什么网站做的好看又便宜华与华营销策划公司
  • 成都网站制作网站seo站长工具是什么
  • 高端营销网站媒体公关公司
  • 有没有免费的网站推销产品最新收录查询
  • 网站目录扫描搜索引擎营销的主要方式有
  • 社交网站的优点和缺点seo运营招聘
  • 网站建设狼雨做网站的网络公司
  • 网站建设公司好bt磁力猪
  • 厦门做网站多百度一下就知道官网
  • 国内坚持做正品的网站网络推广的概念
  • jsp网站开发的环境要求自助建站平台
  • 新闻类网站模板sem广告投放是做什么的
  • 公司网站建设维护合同外汇交易平台
  • 咖啡网站源码什么平台推广效果最好
  • 宁波专业做网站网站排名提高
  • 朝阳周边网站建设宁波seo快速优化公司
  • 如何建立个人免费网站湖南网站建设效果
  • 厦门网站开发公企业产品推广策划方案
  • 哈尔滨网页制作搜索引擎优化seo专员
  • 如何检查网站是否做cdn加速网站推广优化
  • 四川省住房和城乡建设厅官方网站优化营商环境心得体会个人
  • 服务器网站建设教程视频教程成都爱站网seo站长查询工具
  • 建设银行网站首页个人网站推广怎么做
  • 网站首页效果图怎么设计新东方教育机构官网
  • 浙江省住房和城乡建设厅网站首页seo基础培训教程
  • 做网站公司排行整站优化报价
  • 赌博 网站 建设长沙专业网站制作
  • 免费的企业网站免费视频网站推广软件