JSP java server page
本质就是servlet.
JSP的构成
HTML+JSP脚本(JAVA)+标签
HTML代码 => 使用 out.write()输出. out.println();
jsp中的脚本
<% %> ==> 中可以写java代码 .该脚本中写的java代码会生成到jsp对应类中的service方法中.
<%= %> ==> 编译之后的代码: out.print(i );
<%! int i = 0; %> ==> 编译之后,脚本中的代码会出现在类中. 可以使用该脚本定义全局变量和方法.
<%-- --%> ==> 被注释掉的内容不会参与编译. 搞清楚和<!-- --> html注释的区别.
request 对象
一:获得信息
getMethod
原理区别
一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交
GET一般用于获取/查询 资源信息,而POST一般用于更新 资源信息
getContextPath
getRequestURI
getRequestURL
getServletPath
getParameter 获得参数
getParameterNames 获得所有key
getParameterValues 根据key获得值(数组)
getParameterMap 获得封装参数的map
二:转发,包含
转发: 将请求和响应继续向下传递到另一个servlet(jsp).
功能: servlet中处理逻辑, 把显示的功能交给另一个servlet(jsp)来做.
转发和重定向对比:
1.转发不会改变地址栏,重定向会.
2.转发是请求一次,重定向请求两次.
3.转发过程中只有一个request对象产生,重定向是两个.
4.转发不能转发到站外,重定向可以发送到站外.
5.重定向的第2个请求的请求方式是什么,get. 转发中第2个servlet(jsp)是什么请求方式?第一个servlet是什么第2个就是什么.
包含: 两个servlet(jsp)共同完成响应.
功能: 将页面重复内容封装.使用包含功能引用重复内容封装的页面.
三:域对象
request域.
一般使用在转发时. servlet处理完逻辑,将处理结果放到request域中,在jsp中取出显示.
应用于保存数据对象
关于域对象的操作:
setAttribute
getAttribute
removeAttribute
getAttributeNames
response
响应首行
setStatus(int)
sendError(int,String)
响应头
setHeader
addHeader
响应空行
响应正文
字符流 getWriter //PrintWriter out = response.getWriter();
字节流 getOutputstream //
输出中文时,保证两端编码一致即可.
编码控制:
字符流:
1.response.setCharacterEncoding("UTF-8");
2.response.setContentType("text/html;charset=utf-8");
字节流:
string.getBytes("UTF-8");
浏览器解码控制:
1.response.setHeader("Content-Type","text/html;charset=utf-8");
2.response.getWriter().print("<meta http-equiv="Content-Type" content="text/html;charset=utf-8">");
3.response.setContentType("text/html;charset=utf-8");
jsp页面的包含
<%@include file="common.jsp"%>