get和post请求的区别
- GET请求只能URL编码,而POST支持多种编码方式
- GET请求只接受ASCII字符的参数,而POST没有限制
- GET请求的参数通过URL传送,而POST放在Request Body中
- GET相对于POST更不安全,因为参数直接暴露再URL中
- GET请求会被浏览器主动缓存,而POST不会(除非自己手动设置)
- GET请求再URL传参有长度限制,而POST则没有限制
- GET产生的URL地址可以被收藏,而POST不可以
- GET请求的参数会被完整的保留再浏览器的历史记录里,而POST的参数则不会
- GET 在浏览器回退时是无害的,而POST会再次提交要求
转发(Forward)和重定向(Redirect)的区别
转发是服务器行为,重定向是客户端行为
- 从地址栏显示来说:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器。浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址。redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的URL。
- 从数据共享来说:forward,转发页面和转发到的页面可以共享request里面的数据。redirect,不能共享数据。
- 从运用地方来说:forward,一般用于用户登陆的时候,根据角色转发到相应的模块。redirect,一般用于用户注销登陆时返回主页面和跳转到其他的网站等。
- 从效率来说:forward,高。redirect,低。
JSP和Servlet是什么关系
Servlet是一个特殊的Java程序,它运用于服务器的JVM中,能够依靠服务器的支持向浏览器提供显示内容。JSP本质上是Servlet的一种简易形式,JSP会被服务器处理成一个类似于Servlet的Java程序,可以简化页面内容的生成。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在java文件中,并且完全从表示层中的HTML分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
Servlet有哪些作用域
- request(请求作用域):范围是从请求创建到请求结束这段时间,一个请求涉及到的多个跳转都共用一个request对象,也就是在作用域范围内。
- session(会话作用域):范围在客户端和服务器端持续连接的过程,可以理解为打开浏览器访问服务器端资源开始到关闭浏览器的整个过程为一个会话域。
- servletContext(全局作用域):范围是服务器Web项目启动到停止,任何客户端都可以在这个公共内存区域存取数据。
Cookie和Session的区别?
- session在服务器端,cookie在客户端(浏览器)
- session默认被存在服务器的一个文件里(不是内存)
- session的运行依赖session id,而session id是存在cookie中的,也就是说,如果浏览器禁用了cookie,同时session也会失效(但是可以通过其它方式实现,比如在url中传递session id)
- session可以放在文件,数据库,或内存中都可以
- 用户验证这种场合一般会用session
常见的HTTP响应状态码
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的⼀部分,服务器只对请求的部分资源执⾏GET⽅法,相应报⽂中通过 Content-Range 指定范围的资源。
301:永久性重定向
302:临时重定向
303:与 302 状态码有相似功能,只是它希望客户端在请求⼀个 URI 的时候,能通过GET⽅法重定向到另⼀个URI 上
304:发送附带条件的请求时,条件不满⾜时返回,与重定向⽆关
307:临时重定向,与302类似,只是强制要求使⽤ POST ⽅法
400:请求报⽂语法有误,服务器⽆法识别
401:请求需要认证
403:请求的对应资源禁⽌被访问
404:服务器⽆法找到对应资源
500:服务器内部错误
503:服务器正忙
HTML、CSS、JavaScript在WEB开发中的作用
- HTML:Hyper Text Markup Language,超文本标记语言,用来描述网页的一种语言
- CSS:Cascading Style Sheets,层叠样式表,控制如何显示HTML元素
- JavaScript:一种脚本语言,脚本代码无需编译,在浏览器JS容器可以直接解析执行
在页面中
- HTML定义结构
- CSS控制显示样式
- JavaScript给页面加入各种操作和交互动作
如何防止表单重复提交
- 数据库主键唯一
- 提交成功后页面重定向
- 按钮提交后隐藏或不再点击
- 后台生成页面token(标识),页面表单提交携带token,后台进行校验