Response的元数据(比如http的status code,headers,cookies等,都被i封装到一个叫Response的对象中,并传给浏览器. status code:status code控制着浏览器的表现行为,其缺省值为200 OK 在大部分场景,我们不需要手工去设置status, Response中的headers(比如Cache-Control和Location等都可以在Response.set_header()中设置.这个方法有2个参数,一个是name一个是value…
在纯粹的 WSGI中,你的应用能返回的数据类型是十分有限的,你必须返回可迭代的字符串,你能返回字符串是因为字符串是可以迭代的,但是这导致服务器将你的内容按一字符一字符的传送,这个时候,Unicode 字符将不允许被返回了,这是肯定不行的. Bottle 则支持了更多的数据类型,它甚至添加了一个 Content-Length 头信息,并且自动编码 Unicode 数据,下面列举了 Bottle 应用中,你可以返回的数据类型,并且简单的介绍了一下这些数据类型的数据都是怎么被 Bottle 处理的:…
http协议的响应部分 格式: HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 101 Date: Wed, 06 Jun 2018 07:08:42 GMT <html> <head> <title>$Title$</title> </head> <body> hello , response </body> </html&…
from bottle import error @error(404) def error404(error): return 'Nothing here, sorry' 上述代码,是对404的定义,这里注意,有一个HTTPError, HTTPError uses a predefined HTML template to build the body of the response. Instead of using HTTPError you can use response with…
参考: FormData 对象的使用 - Web API 接口 | MDN…
为什么使用bottle?因为简单,就一个py文件,和其他模块没有依赖,3000多行代码. http://www.bottlepy.org/docs/dev/ 既然开始学习,就安装它吧. pip3 install bottle ok 第一个代码: from bottle import route,run,template @route('/hello/<name>') def index(name): return template('<b>Hello {{name}}</b&…
1.文件上传 如果要完成文件上传,则需要对上文的form做一点改动,具体如下: <form action="/upload" method="post" enctype="multipart/form-data"> Category: <input type="text" name="category" /> Select a file: <input type="f…
1.诸如:forum?id=1&page=5这样的,在bottle里,可以通过request.query来访问这些值,举例如下: from bottle import Bottle,run,request,template app=Bottle() @app.route('/forum') def display_forum(): formid=request.query.id pageid=request.query.page ' return template('Forum ID:{{id}…
我们知道,http request有多个方法,比如get,post,delete,patch,put等.对用的,bottle都定义了相应的装饰器,目前定义了五个: get(),post(),put(),delete(),patch() post主要用于form的submit等,这里举例如下,先定义get: from bottle import Bottle,run,template,request @app.get('/login') def login(): return '''<form a…
静态文件(比如css啊,需要下载的各位文件等),需要通过static_file来操作,首先记得要在import中导入 @route('/static/<filename>') def server_static(filename): return static_file(filename, root='/path/to/your/static/files')…
相关资料:<21天学通Java Web开发> response对象 实现页面自动跳转1.可以通过response对象的addHeader()方法添加一个标题为Refresh的标头,并指定页面跳转时间及跳转页面,从而实现页面自动跳转. ResponseDemo3.jsp <%@ page language="java" contentType="text/html;charset=gb2312" %> <html> <head…
相关资料:<21天学通Java Web开发> response对象 实现页面自动刷新1.可以通过response对象的addIntHeader()方法添加一个标题为Refrsh的标头,并指定刷新间隔时间,从而实现页面自动刷新. ResponseDemo2.jsp <%@ page language="java" contentType="text/html;charset=gb2312" %> <html> <head>…
相关资料:<21天学通Java Web开发> response对象 实现页面跳转1.可以通过response对象的sendRedirect()方法设置页面重定向,从而实现页面跳转.2.这种跳转将改变浏览器地址栏信息,所以也称为客户端跳转. ResponseDemo.jsp <%@ page language="java" contentType="text/html;charset=gb2312" %> <html> <he…
相关资料:<21天学通Java Web开发> response对象1.response对象用来给客户端传送输出信息. 方法                                                             返回值       方法说明addCookie(Cookie cookie)                          void           添加cookieaddDateHeader(String name,long date)    …
Response响应对象: 当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式 如果返回的是一个合法的响应对象,它会从视图直接返回. 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建. 如果返回的是一个元组,且元组中的元素可以提供额外的信息.这样的元组必须是(response, status, headers) 的形式,且至少包含一个元素. status 值会覆盖状态代码, headers 可以是一个列…
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6427759.html>,在此仅供学习参考之用. 一.JSP 1.什么是JSP? JSP(Java Server Pages):是以Java语言为基础的动态网页开发技术, 特点: Servlet特点:在Java源码中嵌入html源码 JSP特点:在html源码中嵌入java代码 JSP就是Servlet 1.tomcat获得JSP文件后,先将JSP转成servlet…
这两天气温逐渐升高,好想把自己泡在冰块里······ 恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽.......今天阅读到了这本书的第四章-JSP基本语法.经过第一天的阅读,我们明白JSP技术是Java Web开发技术之一,Servlet技术的前身,基于Java的服务器动态网页. JSP页面中包含了模板元素和JSP元素.模板元素是指不需要经过JSP容器特殊处理,直接发送到客户端的所有非JSP元素的其他内容.如:HTML,JavaScript和CSS等.JSP元素是直接由JSP引擎直接处理的部分,这一部分必须…
教程目录 一:python基础(略,基础还是自己看书学吧) 二:bottle基础 python bottle web框架简介 python bottle 框架环境安装 python bottle 框架基础教程:路由(url定义) python bottle 框架基础教程:HTTP 请求方法 python bottle 框架基础教程:模板使用 python bottle 框架基础教程:模板语法 python bottle 框架基础教程:模板继承 python bottle 框架基础教程:静态资源…
上一篇讲了Servlet: 1)什么是Servlet[servlet本身就是一种Java类,这种Java类提供了web形式的方法,只要实现了servlet接口的类,都是一种servlet资源.] 2)三种方式创建Servlet(继承HTTPServlet使我们使用的) 3)Servlet的生命周期[通过三个成员方法体现] 一:ServletConfig对象 ServletConfig对象被称作应用/servlet上下文. 生命周期: 启动tomcat服务器被创建 关闭tomcat服务器被销毁[每…
我目前用得最顺手的python web框架是bottle,简单方便. bottle有一个开发用的http服务器,效率不高,单线程,阻塞. 所以,得找个别的服务器来部署. 根据bottle官方的文档,发现paste和cherrypy是比较方便的,但是paste官方不FQ上不去,所以先看了cherrypy. 发现这个也是相当的简单,只需pip install cherrypy后在bottle的run方法里指定一下server参数即可,连import cherrypy都不用. 类似这样: from b…
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者springMVC这样的框架,而不是使用servlet加jsp这样的技术呢?特别是现在我们web的前端页面都是使用velocity这样的模板语言进行开发,抛弃了jsp,这样的选择又会给我们java的web开发带来什么…
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletResponse对象代表服务器的响应.这个对象中封装了向客户端发送数据.发送响应头,发送响应状态码的方法. 1.向客户端输出中文数据(字节) package cn.lsl.response; import java.io.IOException; import javax.servlet.Servle…
使用node进行web开发 用户上网流程: 表面上看:打开浏览器--输入网址--跳转--上网. 背后的过程是什么呢? http请求网址到指定的主机--服务器接收请求--服务器响应内容到用户浏览器--浏览器接收到数据,并根据接收到的信息进行处理,渲染出用户看到的界面. 名词解释: 客户端--用户浏览器: 服务端--服务端 现在再精简下描述: 由客户端发送一个http请求到服务端,服务端接收并处理请求,返回数据到客户端. 搭服务器 收发数据遵循一定的规则----一般是http规则. 搭建服务器,处理…
1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图文件 在编写第一个页面之前,我们首先要在mysite目录下创建一个名称为views.py的文件.当然,命名是没有要求的,你也可以命名为a.py,b.py... ... 根据自己的喜好命名就行.在已创建好的views.py中写入如下代码,并保存: from django.http import HttpResp…
续上篇<Web开发基本准则-55实录-Web访问安全>. Web开发基本准则-55实录-缓存策略 郑昀 创建于2013年2月 郑昀 最后更新于2013年10月26日 提纲: Web访问安全 缓存策略 存储介质连接池 业务降级 并发请求的处理 关键词: 会话串号,Cache-Control头域,缓存穿透,缓存集体失效,缓存重建,缓存雪崩,缓存永不过期,缓存计数器,   二,缓存策略   这里的“缓存”概念不只限于服务器端的“缓存”.   2.1.防会话串号   如果你收到一个投诉,说访问“我的个…
正常整合Servlet和Spring没有问题的 public class UserServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ApplicationContext applicationContext = new ClassPathXmlApplicat…
一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前…
Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从这个剥离出来的基础做起,让开发者更关注更具体的业务问题,而不是Web的请求和响应的控制. 框架很多,但套路基本类似,帮你隐藏很多关于 HTTP 协议细节内容,专注功能开发. 但对一个初学者来说,过早的接触框架往往是事倍功半!同样一个问题,换一种框架你可能需要从头开始研究. 下面是针对初学 Java…
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对不上) 前面已经创建完项目了,那么下面一个步骤就是逐一新建在MVC框架中负责V(视图).C(控制器).M(模型)的对应文件. 第一步:创建项目(已完成) 第二步:新建负责V(视图)的JSP文件 在文件夹Web-Root下新建名为MyJsp.jsp的JSP文件,代码如下: <%@ page langu…
首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发.相信这是一个比较好的学习模式和过程.由于这本书是2012年出的,书中的一个web教学项目是开发一个微博.从2012到现在,node.js及其生态环境发生了很大改变,所以关于该书的学习如果照着书本显然是过于陈旧的.到目前为止,node.js的web开发框架已经升级到了Express4.12.1,对于Mong…