大三下学期,我们开设了JSP这门课程,期末需要做一个大作业,学的不怎么样,只能网上找点速成教程了。
从b站上搜了一些视频看,提取了一些知识点,这里就简单的罗列一下。
一、注释
我们不可避免的要给编写的代码一个解释,这些对于jsp来说,不同的文件是不一样的。
Html注释 可以被客户 通过浏览器查看源码
Java注释 // /**/
Jsp注释<%-- --%>
二、JSP九大内置对象
所谓内置对象就是自带的,不需要new 也能使用的对象
Out: 输出对象,向客户端输出内容
Request: 请求对象,存储“客户端向服务器端发送的请求信息”
page: 对象代表正在运行的由jsp文件产生的类对象
session: 对象代表服务器与客户端所建立的会话
application: 对象负责提供应用程序中运行时的一些全局信息
response: 对象代表的是对客户端的响应
config: 对象提供一些配置信息
pageContext: 页面上下文对象 当前页面运行的一些属性
exception: 对象代表了jsp文件运行时所产生的例外对象
Request 对象的常见方法:
String getParameter(String name) :=根据请求的字段名key,返回字段值value
String[] getParameterValues(String name):=根据请求的字段名key 返回多个字段值value
Void setCharacterEncoding(“编码格式utf-8”): 设置请求编码
GetRequestDispatcher(“b.jsp”).forward(request,response)=; : 请求转化的方式跳转页面 A->B
getServerContext():=获取项目的ServletContext对象
Response:响应对象
提供的方法:
Void addCookie(Cookie cookie); 服务端向客户端增加cookie对象。
Void sendRedirect(String location) throws IOException; 页面跳转的一种方式
Void setContextType(String type); 设置服务端响应的编码
三、请求转发和重定向
1.请求转发和重定向的区别
请求转发 | 重定向 | |
---|---|---|
地址栏是否改变 | 不变 | 改变 |
是否保留第一次请求时的数据 | 保留 | 不保留 |
请求和响应的次数 | 1 | 2 |
四、Cookie
Cookie(客户端 不是内置对象):Cookie是由服务端产生的,再发送给客户端保存。
相当于 本地缓存的作用:客户端->服务端
作用:提高访问服务器的效率,但是安全性较差。
Cookie:key= value
Public Cookie(String name,String value)
String getName()
String getValue()
Void setMaxAge(int expiry) 最大有效期 (秒)
服务端准备Cookie:
Respinse.addCookie(Cookie cookie)
页面跳转(转发,重定向)
客户端获取cookie: request.getCookies()
使用Cookie实现 记住用户名 功能。
五、Session
Session:会话
浏览网站:从开始到关闭 称为一次会话。
Session机制:
客户端第一次请求服务端时,服务端会产生一个session对象(用于保存该客户的信息)
并且每个session对象都会有一个唯一的sessionID(用于区分其他session)
服务端由会产生一个cookie,并且该cookie的name = JSESSIONID,value=服务端sessionID的值。然后服务端会在响应客户端的同时 将该cookie发送给客户端,至此,客户端就有了一个cookie(JSESSIONID);因此,客户端的cookie就可以和服务端的session一一对应、
客户端第二/n次请求服务端时:服务端会先用客户端的cookie的JSESSIONID,去服务端的session中匹配session。
Session方法:
String getID():获取sessionID
Boolean isNew(): 判断是否是新用户
Void invalidate(): 使session失效(退出登录、注销)
setAttribute();
getAttribute()
Void setMaxInactiveInterval(秒) :设置最大有效 非活动时间
六、Application
Application: 全局对象
String getContextPath() 虚拟路径
String getRealPath(String path) 绝对路径(虚拟路径对应的绝对路径)