一.JSP的简介:jsp可以编译为servlet,JSP--->servlet--->class;包含HTML代码;java代码用<% %>包含.
out.println(a);======<%=a%>
jsp 片段中声明的的Java代码都是局部变量;全局变量声明<%! 全局变量 %>
二.与html的区别:
备注不同:html是 // 或者是/**/;
- <!–html注释–>
- <%–jsp注释–%>
三.JSP指令
(1)page 指令
<%@page contextType="text-html;charset="UTF-8" language="java"
<%@ errorPage="error.jsp%>
备注:errorPage可以在web.XML中配置---->设置500(服务器端错误).....设置404(客户端错误)
2)taglib指令
(3)include指令 <% include file="index.jsp" %> ---->相对位置(一个页面包含另一个静态界面)
四.jsp内置对象---->九大内置对象
page
request
基本语法:getRequestURL();----->http://127.0.0.1/westos/city
getRequestURI();------>/westos/city
getServletPath();------->/city
getContextPath();------>上下文地址
getRemoteAdd();-------->固定IP 127.0.0.1
session:浏览器会话
特性:1. 不能跨浏览器访问(共享)
2.在浏览器关闭在打开后,会话失败,重新获取ID
3.同一会话,同一浏览器,不同会话,session共享
基本语法:SetAttribute();存数据
getAttribute();获取数据
removeAttribute();删除数据
getID();获取ID
invalidate();是当前session失效---->关浏览器;换浏览器;超时
isNew();是否是新session
web.xml可设置-------------------/hello; 映射*.do; /; /*;
appication:适用于范围最广
response
基本语法:getWrite().println("输出");
send.redirect(s:"/city");---->服务器跳转
getHeaderNames();
getOuputStream();----->输出流
IO流拷贝:IOUtils(in,os),
cookie:客户端放在浏览器中的访问片段,
pageContext:当pageContext作为域对象,可以获取其他对象的数据
pageContext.setAttribute("name","eric",PAGE_SCOPE);
pageContext.getAttribute("name",PAGE_SCOPE);
config:配置
out out.println====getWriter();
exception throw 抛出异常
五.JSP基本语法
<jsp:forward page="index.jsp(转向页面的URL)" />--------------转发在服务端进行,不会引起客户端的二次访问,地址栏也不变
区别===============<jsp:include page="相对路径" flush="false" /> 指令包含动态文件(缓冲区满了要清,默认为flase)
==================<@% include file="" %>指令包含的文件是静态文件,
<jsp:param name=" " />-----传参数de----------不掌握
eg:
<!-- 使用jsp:include动作元素导入动态文件,使用jsp:param动作元素传递参数 -->
<jsp:include page="要导入的动态文件" >
<jsp:param name="number" value="200" />
</jsp:include>
<!-- 在动态文件中通过如下途径获取<jsp:param>传递的参数 -->
<% String str = request.getParameter("number"); %>
<jsp:useBean id=" ",scope="page" />
六.解决乱码
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
new String(name.getBytes(ISO-8859-1","UTF-8");