JSP九大内置对象

1、request:表示一次请求, HttpServletRequest。

2、response:表示一次响应, HttpServletResponse。

3、pageContext: 页面上下文,获取页面信息,PageContext。

4、session:表示- -次会话,保存用户信息,HttpSession。

5、application: 表示当前Web应用,全局对象,保存所有用户共享信息,ServletContext。

6、config:当前JSP对应的Servlet的ServletConfig对象,获取当前Servlet的信息。

7、out: 向浏览器输出数据,JspWriter。

8、page: 当前JSP对应的Servlet对象,Servlet。

9、exception:表示JSP页面发生的异常,Exception。

常用的是request、response、 session、application、pageContext


request常用方法:

1. String getParameter(String key)获取客户端传来的参数。

2、void setAttribute(String key,0bject value)通过键值对的形式保存数据。

3、Object getAtribute(String key)通过key取出value。

4、RequestDispatcher getRequestDispather(String path)返回-个RequestDispatcher对象,该对象的forward方法用于请求转发。

5、String[] getParameterValues()获取客户端传来的多个同名参数。

6、void setCharacterEncoding(String charset)指定每个请求的编码。


HTTP请求的状态码:

200:正常

404:找不到资源

500:Java代码出现异常

400:请求类型不匹配


response常用方法:

1、sendRedirect(String path)重定向,页面之间的跳转。

转发getRequestDispatcher和重定向sendRedirect的区别:

转发是将同一个请求传给下一个页面,重定向是创建一个新的请求传给下一一个页面,之前的请求结束生命周期。

转发:同一个请求在服务器之间传递,地址栏不变,也叫服务器跳转。

重定向:由客户端发送一次新的请求来访问跳转后的目标资源,地址栏改变,也叫客户端跳转。

如果两个页面之间需要通过request来传值,则必须使用转发,不能使用重定向。


用户登录,如果用户名和密码正确,则跳转到首页(转发),并且展示用户名,否则重新回到登陆页面(重定向)。

Session

用户会话

服务器无法识别每一次HTTP请求的出处(不知道来自于哪个终端),它只会接受到一个请求信号,所以就存在一个问题:将用户的响应发送给其他人,必须有一种技术来让服务器知道请求来自哪,这就是会话技术。

会话:就是客户端和服务器之间发生的一系列连续的请求和响应的过程,打开浏览器进行操作到关闭浏览器的过程。

会话状态:指服务器和浏览器在会话过程中产生的状态信息,借助于会话状态,服务器期够把属于同一次会话的一系列请求和响应关联起来。

实现会话有两种方式:

●session

●cookie

属于同一次会话的请求都有一个相同的标识符,sessionID

session常用的方法:

String getld():获取 sessionID

void setMaxInactiveInterval(int interval):设置session的失效时间,单位为秒

int getMaxInactiveInterval():获取当前 session的失效时间

void invalidate():设置session立即失效

void settribute(String key,Object value):通过键值对的形式来存储数据

Object gettribute(String key):通过键获取对应的数据

void removeAttribute(String key):通过键删除对应的数据


Cookie:

Cookie是服务端在HTTP响应中附带传给浏览器的一个小文本文件,一旦浏览器保存了某个Cookie,在之后的请求和响应过程中,会将此Cookie来回传递,这样就可以通过Cookie这个载体完成客户端和服务端的数据交互。

●创建Cookie

Cookie cookie = new Cookie( ”name"," tom");

response.addCookie( cookie);

●读取Cookie

Cookie[] cookies = request. getCookies();

for (Cookie cookie: cookies){

        out. write( cookie . getName()+":"+cookie . getValue()+"<br/>");

}

cookie的常用方法:

void setMaxAge(int age)    设置Cookie的有效时间,单位为秒。

int getMaxAge()   获取Cookie的有效时间,默认为-1,表示关闭浏览器则失效。

String getName()    获取Cookie的name。

String getValue()    获取Cookie的value。


Session和Cookie的区别

session:

保存在服务器

保存的数据是Object

会随着会话的结束而销毁

保存重要信息

cookie:

保存在浏览器

保存的数据是String

可以长期保存在浏览器中,无会话无关

保存不重要信息


存储用户信息:

session

setAttribute("name'","admin") 

getAttribute("name") 

生命周期: 服务端:只要WEB应用重启就销毁,

                 客户端:只要浏览器关闭就销毁。

退出登录: session.invalidate()

cookie: 

response.addCookie(new Cookie(name,"admin") 

Cookie[] cookies = request . getCookies();

for (Cookie cookie :cookies){

        if(cookie. getName(). equals("name" )){

                out.write(“欢迎回来" +cookie. getValue());

}     

生命周期: 服务端:不随服务端的重启而销毁,

                客户端:默认是只要关闭浏览器就销毁,我们通过setMaxAge()方法设置

有效期: 一旦设置了有效期,则不随浏览器的关闭而销毁,而是由设置的时间来决定。

退出登录: setMaxAge(0)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容