JSP详解(包括Session和Cookie)

# JSP

JSP本质上就是一个Servlet,JSP主要负责与用户交互,将最终的界面呈现给用户,HTML+JS+CSS+Java的混合文件。

当服务器接收到一个后缀是jsp的请求时,将该请求交给JSP引擎去处理,每一个JSP页面第一次被访问时,JSP引擎会将它翻译成一个Servlet文件,再由Web容器来调用Servlet完成响应。

单纯从开发的角度来看,JSP就是在HTML中嵌入Java程序。

具体的嵌入方式有3种:
1、JSP脚本:执行Java逻辑代码

<% 
	String str = "Hello World"; 
	System.out.println(str);
%>

2、JSP声明:用来定义Java方法

<%!
	public String test()  {
    
    
		return "Hello World!";
	}
%>

3、JSP表达式:把Java对象直接输出到HTML页面中

<%=
	要输出的Java变量
%>
<%!
	public String test() {
    
    
		return "Hello World!"
	}
%>

<%
	String str = test();
%>

<%=str%>

JSP内置对象9个

1、request:表示一次请求,HttpServletRequest(对应类,下同)。
2、response:表示一次相应,HttpServletResponse。
3、pageContext:页面上下文,获取页面信息,PageContext。
4、session:表示一次会话,保存用户信息,HttpSession。
5、application:表示当前Web应用,全局对象,保存所有用户共享信息,ServletContext。
6、config:当前 JSP 对应的 Servlet 的 ServletConfig 对象,获取当前 Servlet 的信息,ServletConfig。
7、out:向浏览器输出数据,JspWriter。
8、page:当前 JSP 对应的 Servlet 对象,Servlet。
9、exception:表示JSP页面发生的异常,Exception

部分定义
会话:客户端与服务器建立的一次连接。就像打电话可能会说10句话,这10句话都属于本次会话,挂电话后会话结束。

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

request常用方法:
1、String getParameter(String key) 服务器获取客户端传来的参数
2、void setAttribute(String key, Object value) 服务器通过键值对的形式来保存数据
3、Object getAttribute(String key) 服务器通过key取出value
4、RequestDispatcher getRequestDispatcher(String path) 返回一个RequestDispatcher对象,该对象的forward方法用于请求转发
5、String[] getParameterValues() 获取客户端传来的多个同名参数
6、void setCharacterEncoding(String charset) 指定每个请求的编码(中文乱码使用UTF-8即可)

状态码:
200:正常
404:资源找不到
400:请求类型不匹配(指定请求类型为GET而使用POST访问则报400)
500:程序抛出异常

response常用方法:
1、sendRedirect(String path) 重定向,页面之间的跳转
转发:getRequestDispatcher
重定向:sendRedirect
转发和重定向的区别:
转发是将同一个请求传给下一个页面,
重定向是创建一个新的请求传给下一个页面
(剩下待补)


Session(用户会话)

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

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

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

实现会话有两种方式:

  • session 作用于服务端
  • cookie 作用于客户端

属于同一次会话的请求都有一个相同的标识符,sessionID
session 常用方法:
String getId() 获取sessionID
void setMaxInactiveInterval(int interval) 设置session的失效时间,单位为秒
int getMaxInactiveInterval() 获取当前session的失效时间
void invalidate() 设置session立即失效
void setAttribute(String key, Object value) 通过键值对的形式来存储数据
Object getAttribute(String key) 通过键来获取对应的数据
void removeAttribute(String key) 通过键来删除对应的数据

Cookie

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

Guess you like

Origin blog.csdn.net/weixin_43900869/article/details/117237032