1.JSP注释
1./........./ Java代码注释,页面不显示,客户端不可见
2<!-- ..... --> HTML注释,页面不显示,但是会发送到客户端
3.<%-- ..... --%> JSP注释,页面不显示,也不会发送到客户端
2.JSP的脚本scriptlet
1.<%=...%>表示在页面上打印数据
2.<%!...%>声明,全局变量
3.<%....%>局部变量,java语句
3.JSP的四个域对象
1.pageContext:当前页面内有效
2.request:当前请求内有效
3.session:当前的会话内有效(浏览器不关闭一直有效)
4.application:当前服务器生命周期内有效(项目不重启一直有效)
4.JSP的@指令
1.page:contentType 设置页面的编码和格式
pageEncoding 设置页面的编码
import 引包
errorPage 当前页面出现错误跳转的页面
isErrorPage 这是一个错误页面
2.include:包含页面
3.taglib:引入第三方标签库
5.动态标签
格式:<jsp: include..... >、<jsp:forword .........>
include:用于包含其他文件(同时存在)
forword:用于重定向文件、页面跳转(覆盖)
Param:用于参数传递
useBean:用于调用JavaBean
setProperty:用于设置JavaBean的属性值
getProPerty:用于访问Bean的属性
plugin:用于Applet的嵌入操作元素
6.九大内置对象
*request 封装用户提交的消息
*response 向客户端发送数据
*session 用来保存每一个用户的信息
*application 表示所有用户的共享信息
out 页面输出信息
page jsp页面本身
*pageContext JSP的页面容器
config 服务器配置信息,可以取得初始化参数
exception 显示异常信息
7.修改代码
一般而言,修改web.xml、配置文件、java需要重新启动tomcat服务。
修改jsp、html、css、js不需要重启服务
8.内置对象中的常用方法
request:
String GetParameter(String name):
根据请求的字段key,返回字段值value
String[ ] GetParameter(String name):
根据请求的字段key,返回多个字段值value(checkbox)
void setCharacterEncoding("编码格式utf-8"):
设置请求编码,不设置则默认(tomcat以前默认ISO-8859-1,tomcat8以后改为了utf-8)
getRequestDisPatcher("b.jsp"):请求转发的方式跳转页面
getServiceContext():获取项目的ServletContext对象
response:响应对象
提供的方法:
void addCookie(Cookie cookie):服务端向客户端增加cookie对象
void sendRedirect(String location) throw IOException:页面跳转的一种方式
void setContetType(String type):设置服务器响应的编码(设置服务器的contentType类型)
页面重定向 response.sendRedirect("success.jsp");属于跳转页面,取不到数据,而且地址会改变,重定向有两次响应
页面请求转发request.getRequestDispatcher("success.jsp").forward(request,response);能够拿到数据,而且地址不会变,请求转发只有一次响应
session:(服务端)
Cookie(客户端,不是内置对象):Cookie是由服务端生成的,再发送给客户端保存。相当于本地缓存。
作用:提高服务端的访问效率,但是安全性较差。
服务端准备Cookie:
response.addCookie(Cookie cookie)
页面跳转(转发、重定向)
客户端获取Cookie:
request.getCookie();
服务器增加Cookie:response对象;
客户端获取对象:request对象
不能直接获取一个单独的对象,只能一次性将全部的cookie拿到
session机制:
客户端第一次请求服务器时,服务端会产生一个人session对象(用于保存该客户的信息);
并且每个session对象,都会有一个唯一的sessionId(用于区分其他session)
服务端又会产生一个cookie,并且该cookie的name=JSESSIONID,value=服务端sessionId的值;
然后服务端会在响应客户端的同时将该cookie发送给客户端,至此,客户端就有了一个人cookie(JSESSIONID);
因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID---sessionID)
cookie保存在客户端,session保存在服务端
session方法:
String getId():获取sessionId
boolean inNew():判断是否是新用户(第一次访问)
void invalidate():使session失效(退出登录、注销)
void setMaxInactiveInterval(秒 ):设置最大有效非活动时间
appliation 全局对象
String getContextPath():虚拟路径
String getRealPath(Strring name):绝对路径
9.四大域对象
小-->大
pageCOntext:当前页面有效(页面跳转后无效)
request:同一次请求有效;其他请求无效(请求转发后有效;重定向后无效)
session:同一次会话有效(无论怎么跳转都有效;关闭/切换浏览器后无效;)
appliation:全局变量;整个项目运行期间都有效(切换浏览器任然有效);关闭服务、运行其他项目无效
以上4个对象共有的方法:
Object getAttribute(String name):根据属性名,获取属性值
void setAttribute(String name,Object obj):设置属性值(新建,修改)
setAttribute("a","b");
如果a对象之前不存在,则新建一个a对象;如果a之前已经存在,则将a的值改为b
void removeAttribute(String name):根据属性名。删除对象
多个项目共享、重启后任然有效:JNDI技术
以上的4个范围对象,通过setAttribute()复制,通过getAttribute()取值;
以上范围对象。尽量使用最小的范围。因为对象的范围越大,造成的性能损耗越多。
网友评论