黑马程序员技术交流社区
标题:
【石家庄校区】JavaWeb阶段总结
[打印本页]
作者:
Miracle22
时间:
2018-2-4 15:39
标题:
【石家庄校区】JavaWeb阶段总结
【石家庄校区】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:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2