% 语法:
<% %> :可以在 标签中编写任意代码。
<%= %>:可以在标签中编写表达式,此语法的作用是获取表达式的值。
<%! %>:可以在标签中定义类、全局变量等
缺点:
- java代码和前端代码强耦合在一起。
- 无法分工协作,团队拆分任务困难。
3.无法调试困难。
EL 表达式:Expression language。表达式语言。
Servlet 容器目前是默认支持的。
语法:${表达式} ,可以直接访问域对象中的内容
JSTL: Jsp Standard Taglib Library,jsp 的标准标签库。
- 将 jstl 相关包放到WEB-INF下面的 lib 包中。
- 在jsp页面中,引入jstl标签库,一般情况下,只引入core标签库。包括一些流程控制操
作标签。 - 在jsp页面中,尽量只负责数据的显示,而不要引入其它逻辑。
c:forEach
c:if
c:choose
c:when
c:otherwise
c:set
四大域对象:域 domain,领域,有空间的概念。存储数据使用setAttribute方法,取数据
使用getAttribute方法
- 请求域对象:HttpServletRequest,封装所有跟请求相关的数据。请求结束之后,对象
即销毁。 - 响应域对象:HttpServletResponse,封装所有跟响应相关的数据。响应结束之后,对
象即销毁。不能存取数据。 - 会话域对象:HttpSession,封装一个会话内相关的数据。持续的时间比请求要长。在
会话期内,所有请求共享一个会话域对象。会话结束之后,对象即销毁。 - 应用上下文对象:ServletContext,当项目启动之后,每个项目都会创建唯一的一个应
用上下文对象。一个项目对应一个。所有Servlet共享一个应用上下文对象。
el表达式,会按顺序依次从请求域、会话域、应用上下文域对象中取数据。
经典 MVC 三层架构:在web项目中的应用。
MVC : Model - View - Controller,模型(数据模型,用于封装业务数据) - 视图(用于
数据的展示) - 控制器(用于接收请求,处理数据,响应请求)
Servet容器的一个规范:
在WEB-INF下的jsp或者静态资源文件,无法被外界直接访问(但是内部可以通过存储转
发等进行访问)。
Servlet用作控制器,接受请求,并处理数据,最后将数据响应到视图
jsp用作视图,仅用作数据的展示,不要有过多的逻辑。
自定义bean,用作数据模型,用于封装业务数据,用于数据传递等。
jsp 访问静态资源:通过 c:set 设置一个变量
GET/POST: - get
- post
表单向后台提交参数,如何获取表单参数? - req.getParamter() 获取前端传递的参数
jsp 9大内置对象:
- request
- response
- session
4.application :ServletContext
5.out
6.exception
7.config
8.page
9.pageContext
四大域对象:域 domain,领域,有空间的概念。存储数据使用setAttribute方法,取数据
使用getAttribute方法
- 请求域对象:HttpServletRequest,封装所有跟请求相关的数据。请求结束之后,对象
即销毁。 - 响应域对象:HttpServletResponse,封装所有跟响应相关的数据。响应结束之后,对
象即销毁。不能存取数据。 - 会话域对象:HttpSession,封装一个会话内相关的数据。持续的时间比请求要长。在
会话期内,所有请求共享一个会话域对象。会话结束之后,对象即销毁。 - 应用上下文对象:ServletContext,当项目启动之后,每个项目都会创建唯一的一个应
用上下文对象。一个项目对应一个。所有Servlet共享一个应用上下文对象。
el表达式,会按顺序依次从请求域、会话域、应用上下文域对象中取数据。
经典 MVC 三层架构:在web项目中的应用。
MVC : Model - View - Controller,模型(数据模型,用于封装业务数据) - 视图(用于
数据的展示) - 控制器(用于接收请求,处理数据,响应请求)
Servet容器的一个规范:
在WEB-INF下的jsp或者静态资源文件,无法被外界直接访问(但是内部可以通过存储转
发等进行访问)。
Servlet用作控制器,接受请求,并处理数据,最后将数据响应到视图
jsp用作视图,仅用作数据的展示,不要有过多的逻辑。
自定义bean,用作数据模型,用于封装业务数据,用于数据传递等。
jsp 访问静态资源:通过 c:set 设置一个变量
GET/POST: - get:请求。只要不是post请求,就是get请求。并不严谨。
1.1 在浏览器地址栏输入的地址,是get请求。
1.2 超链接指向的请求,是get请求。
1.3 表单指定method=“get”,是get请求 - post:
2.1 如果表单指定了method=“post”,则为post请求。
2.2 如果使用ajax请求,同时指定了method为post,则为post请求。
二者之间的区别: - get请求的参数只能定在请求路径的后面。语法:xxx?
username=zhangsang&password=123456
缺点:
1.明文参数,不安全。敏感数据不适合使用get请求传输。
2.参数长度有限。不能传输很长的参数,也无法传输文件。
3.某些字符是关键字,不能传输。
post无上述缺点。 - 不会进行明文传输。
2.可以传输近乎无限制大小的参数,包括文件。
表单向后台提交参数,如何获取表单参数? - req.getParamter() 获取前端传递的参数
2.req.getSerlvetPath() 获取Servlet路径。
3.req.getPathInfo() 获取Servlet路径信息。
jsp 9大内置对象: - request
- response
- session
4.application :ServletContext
5.out
6.exception
7.config
8.page
9.pageContext
存储转发和重定向:
1、语法: req.getRequestDispatcher(“请求路径”).forward(req,resp); - 存储转发属于服务器端转发,可以把请求对象和响应对象转发到下一个请求之中。
- 服务器端转发,不会改变浏览器中地址栏中的请求地址。客户端无感知。
- resp.sendRedirect(“请求路径”); 重定向属于客户端转发,浏览器地址会发生改变。
5.重定向,相当于重新发出一个新的请求,上一个请求的request和response对象都会失
效。
ajax:异步无刷新机制。 - 无刷新。无需重新下载整个页面。节省带宽,提高网络性能。
- 在页面无刷新的情况下,使用js动态改变dom。用户体验较好。