【石家庄校区】JavaWeb阶段总结# web13 #
Response
* 通过response设置状态码:setStatus(int status);
* 通过response设置响应头:setHeader(String name,String value);,setIntHeader(String name,int value),setDateHeader(String name,long date);
* 通过response设置响应体:getOutputStream(),getWriter();
* response的其他的API:
* sendRedirect(String path);
* response输出中文的乱码问题:
* 字节流输出中文:
* 设置浏览器的字符集编码. response.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
* 设置输出内容的字节数组的字符集编码. “”.getBytes(“UTF-8”);
* 字符流输出中文:
* 设置浏览器字符集编码. response.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
* 设置response的缓冲区的编码. response.setCharacterEncoding(“UTF-8”);
* response完成了文件下载功能:需要设置两个头一个流
* response响应体的的设置:getOutputStream、getWriter
setContentType("text/html;charset=UTF-8")---> setHeader("Context-Type","text/html;charset=UTF-8 ") setCharaterEnconding("UTF-8");
Request
* 使用request获得客户机的信息. getRemoteAddr(),getMethod(),getRequestURI(),getRequestURL()
* 获得请求参数:getParameter(),getParameterValues(),getParameterMap()
* 作为域对象存取数据:setAttribute(),getAttribute(),removeAttribute();
* 接收参数的中文乱码的处理:
* GET :new String(“”.getBytes(“ISO-8859-1”),”UTF-8”)
* POST :request.setCharacterEncoding(“UTF-8”);
* request何时创建和销毁的?
* 创建:从客户端向服务器发送请求.那么服务器创建一个request对象.
* 销毁:服务器为这次请求作出了响应之后,服务器就会销毁request对象.
* 作用范围:一次请求.
* 转发和重定向区别?
* 转发是一次请求一次响应,重定向两次请求和两次响应.
* 转发地址栏不变,重定向会变化.
* 转发的路径不需要加工程名,重定向需要加工程名.
* 转发只能在本网站内部,重定向可以定向到任何网站.
* Web中路径的编写:
* 浏览器端如果想直接访问Servlet的话
* 路径的编写:使用: /工程名/servlet的虚拟路径
* 浏览器如果想要直接访问.html.jsp或者其他静态资源
* 路径的编写:使用: /工程名/资源所在的路径
* servlet A想要跳转其他servlet B
* 重定向
* 路径的编写:使用: /工程名/B对应的虚拟路径
* 请求转发
* 路径的编写:使用: /B对应的虚拟路径
* servlet A想要跳转到 .html或者.jsp
* 重定向
* 路径的编写:使用: /工程名/.jsp或者.html所在的子路径
* 请求转发
* 路径的编写:使用: /.jsp或者.html所在的子路径
* servlet想要读取项目下文件
* 需要用ServletContext的对象来读取
* ServletContext.getResouceAsStream("资源路径(不用再加工程名)")
* ServletContext.getRealPath("资源路径(不用再加工程名)")
# web14 #
Cookie:就是将数据保存到客户端浏览器的会话技术.
* 从浏览器获得Cookie :request.getCookies();
* 向浏览器回写Cookie :response.addCookie(Cookie cookie);
* Cookie的相关的API :
* setPath(String path); -- /day11 /day11/aaa
* setMaxAge(int time); -- 有效时长.
* setDomain(String domain);
* Cookie的分类:
* 会话级别Cookie:会话级别关闭浏览器的时候Cookie就销毁了.默认的
* 持久级别Cookie:设置有效时长的Cookie,关闭浏览器的时候不会销毁的.
Session:就是将数据保存到服务器端的会话技术.基于Cookie回写SessionID的.
* Session存取数据:
* setAttribute(String name,Object value);
* getAttribute(String name);
* Session作用域:
* session的作用范围:一次会话.(多次请求)
* session生命周期:
* 创建:第一次调用getSession的时候创建session。
* 销毁:
* 非正常关闭服务器.
* session过期
* 手动调用invalidate方法的时候
# web15 #
JSP :html + java + 内置对象 + 指令 + 动作标签
* JSP的概述:
* JSP:Java Server Pages.
* JSP的运行原理:翻译成Servlet,编译成Class进行执行.
* JSP的脚本元素:
* <%! %>:成员位置
* <% %>:service方法内部
* <%= %>:输出语句,不能有分号
* JSP的注释:
* JSP的三个指令:
* page:
* ContextType---->设置浏览器默认打开的编码
pageEnconding --->用来设置JSP生成servlet的保持时用的编码
import ---->用来导包的,可以出现多个,也不用我们担心
* include:
* 能够将其他页面包含进来
file --->用的相对路径
* taglib <%@ 指令名称 属性=”属性值”%>
* JSP的内置对象:
* pageContext:
* 1.获取其他八个内置对象
2.可以向四个域中存储东西
requestScope
sessionScope
applicationScope
pageScope
3.findAttribute --->从小范围开始找
* request:
* 1.作为域对象 2.获取客户机相关的信息(请求方式,请求路径,请求的id地址,请求头)
* session:
* 1.作为域对象--->会话技术
注意:需要使用一把钥匙才能打开session,这个钥匙其实就是Cookie这个cookie的名字是JSESSIONID
* application:
* 1.获取全局参数 2.获取mime类型 3.作为全局域对象 4. 读取web的资源文件
* page:他代表的就是jsp生成Servlet的对象,他是单例的
* response:
* 1.设置响应头
2.设置响应体
3.设置状态码
* out:
* JSPWriter 和 response.getWriter()是有区别的
response.getWriter()才能真正的设置响应体
* config
* exception:exception.printStackTrice();
* JSP的四个作用范围
* PageScope :当前页面
* RequestScope :一次请求范围.
* SessionScope :一次会话
* ApplicationScope :整个应用范围.
* JSP的动作标签:用来简化我们的书写
* <jsp:forward>:用于转发
* <jsp:include>:用于包含
* 静态包含和动态包含的区别
:静态包含相当于复制原码(相当于多个jsp在同一个类中)
:动态包含只要运行结果(多个jsp分别在不同类中)
* <jsp:param>:一般和有路径结合使用,携带参数
* <jsp:useBean>:
* <jsp:setProperty>
* <jsp:getProperty>
# web16 #
EL:
* EL的概述
* EL:Expression Language:表达式语言
* EL的作用:
* 获取数据${ 属性名|变量名 }
* 执行运算(逻辑运算,关系运算,三元运算...)
* 操作web开发中常用的对象${param }:
* 1.四个域 pageScope requestScope sessionScope applicationScope
2.一对专门用来接受参数: param paramValues
3.获取请求头的一对: header headerValues
4.获取全局参数: initParam
5.获取cookie: cookie.库克的名称
6.pageContext: 可以获取jsp中其他八个内置对象
获取工程名: pageContext.request.contextPat
* 调用Java中方法:需要自定义标签库
JSTL
* JSTL的概述:
* JSTL:JSP 标准标签库.
* 标签库需要引入<%@ taglib uri ="地址" prefix="缩写"%>
* JSTL标签库:core,fmt,sql,xml,fn
* JSTL的核心标签库:1.0和1.1,1.2.其中1.1,1.2是支持el表达式
* c:if 可以条件的筛选
c:set(了解)
c:out(了解一下)
c:forEach
var --->遍历出的元素的变量名
items--->要遍历的对象
begin
end
step
varStatus
* JSTL的函数库:处理字符串相关的东西
* ${fn:}
|
|