Servlet
基本概念
Servlet是基于Java语言的Web服务器端编程技术,按照Java EE规范定义,Servlet是运行在Servlet容器中的Java类,它能处理Web客户的HTTP请求,并产生HTTP响应。
Servlet的声明周期
实例化——>初始化——>处理服务——>销毁
HttpServletRequest
- 获取参数信息
1 | request.getParameter("参数名") ; |
- 获取报头信息
1 | request.getHeader(); |
- 指定请求字符编码(解决post请求乱码问题)
1 | request.setChracterEnCoding("utf-8"); |
- 获取请求链接
1 | request.getRequestURI(); |
2 | //为使用Servlet里的service方法做基础。 |
- 保存数据
1 | request.setAttribute(); |
- 获取数据
1 | request.getAttribute(); |
- 删除数据
1 | request.removeAttribute(); |
get和post的区别
- 地址栏
get将参数显示在地址栏中,post地址栏不可见参数,将参数带在请求数据中 - 安全性
get请求(查阅)<post请求(新增、删除、修改) - 效率
get请求>post请求 - 编码方式
get默认编码格式是ISO-8859-1,post请求报头默认编码格式是ISO-8859-1,请求数据体编码格式是页面的编码格式 - 传递参数大小
get请求,2kb;post请求默认不限制,通常在服务器中使用代码限制。
单例模式
==这一块东西有点多以后补充吧==
基本概念
在内存中仅存一个对象,只能new一次。
优点
- 优点
web层共享数据的范围
应用对象:ServletContext application
使用范围:同一服务器,不同客户端,均可以共享对象里的数据,当服务器重启时,数据失效。(使用场景:查看当前在线人数等)会话对象:HttpSession session
使用范围:同一服务器,同一客户端,均可以共享该对象里的数据,当浏览器关闭时失效。(使用场景:保存当前登录用户信息,购物车信息等)请求对象:HttpServletRequest request
使用范围:同一服务器,同一客户端,共享该对象中的数据,当发起请求时,数据失效。(使用场景:登录等页面信息,也可以保存校验信息)页面对象:PageContext page
适用范围:同一服务器,同一客户端,同一个页面中,共享该对象数据,一旦页面刷新或跳转,数据失效。(使用场景:较少)
JSP
本质还是servlet。
JSP的声明周期
编译阶段(编译为servlet)——初始化阶段(初始化servlet)——执行阶段——销毁阶段
JSP脚本元素
- 声明
定义成员变量和成员方法,全局变量
1 | <%! int i=100; %> |
- 注释
不被翻译,不被编译,没啥用
1 | <%-- hello --%> |
被翻译,不被编译,原原本本发到客户端
1 | < !-- hello --> |
被翻译,不编译,不在相应文件内容中
1 | <%/* hello */%> |
表达式(注意结尾不要有分号)
1
<%= %>
脚本段(里面写Java代码)
1 | <%int a=1; %> |
三大指令
- page
- 定义了脚本语言的类型:language=”java”
- 告诉浏览器对html页面的内容采用哪种编码格式:
- 告诉浏览器复渠段返回的内容的编码格式:contentType
include
组合JSP页面1
<%@include file="/page/index.jsp"%>
taglib
在我们查询用户信息时,我们用来遍历数据库中查询出来的多条记录,要jstl.jar包
1 | <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> |
九大内置对象
- application
同一服务器,不同客户端,均可以共享对象里的数据,当服务器重启时,数据失效。 - session
同一服务器,同一客户端,均可以共享该对象里的数据,当浏览器关闭时失效。
session有效期设置
1 | <session-config> |
2 | <session=timeout>30</session=timeout> <!--默认以秒为单位--> |
3 | </session-config> |
- request
同一服务器,同一客户端,共享该对象中的数据,当发起请求时,数据失效。 - pageContext
同一服务器,同一客户端,同一个页面中,共享该对象数据,一旦页面刷新或跳转,数据失效。 - out
1 | out.print:字符 |
2 | our.write:字节码 |
- config
与当前JSP页面的Servlet对应的ServletConfig对象。 - exception
其他地方抛出的Throwable对象,仅当<%@pageisErrorPage=”True”%>时有效。 - page
指向页面自身的方式,相当于this关键字。 - response
当前响应对象。 - Cookie
不安全、保存在磁盘、有效期自己设定。
设置步骤:
- 获取Cookie
- 设置Cookie的有效期
- 设置保存项目路径
- 返回Cookie信息给客户端
- 获取Cookie
- 清除session和cookie
EL表达式
用法感觉有点像jquery,${…}
==详细请参考网络,我就写一些常用的==
作用
- 访问作用域对象(pageContext,request,session,application)
- 简单的计算。,输出到浏览器
注意:
当我们访问的内容不存在时,输出一个空字符串:””,jsp中输出null;
Set不能通过下标值获取,因为其没有下标值
关系运算符
关系运算符 | 说明 |
---|---|
==或eq | 等于 |
!=或ne | 不等于 |
<或lt | 小于 |
>或gt | 大于 |
<=或le | 小于等于 |
>=或ge | 大于等于 |
逻辑运算符 | 说明 |
---|---|
&&或and | 与 |
or | 或 |
!或not | 非 |
c标签
导入jstl.jar包
常见标签
- <c:out>
用于在JSP中显示数据,就像<%= … > - <c:set>
用于保存数据 - <c:remove>
用于删除数据 - <c:if>
和平时if一样,不过没有else - <c:forEach>
基础迭代标签,接受多种集合类型