JSP
JSP 本质上就是⼀个 Servlet,JSP 主要负责与⽤户交互,将最终的界⾯呈现给⽤户, HTML+JS+CSS+Java 的混合⽂件。
当服务器接收到⼀个后缀是 jsp 的请求时,将该请求交给 JSP 引擎去处理,每⼀个 JSP ⻚⾯第⼀次被访 问的时候,JSP 引擎会将它翻译成⼀个 Servlet ⽂件,再由 Web 容器调⽤ Servlet 完成响应。 单纯从开发的⻆度看,JSP 就是在 HTML 中嵌⼊ Java 程序
嵌入的方式
<% Java代码 %>
<%!
声明 Java ⽅法
%>
`<%=Java变量 %>``
JSP内置对象
1、request:表示⼀次请求,HttpServletRequest。
2、response:表示⼀次响应,HttpServletResponse。
3、pageContext:⻚⾯上下⽂,获取⻚⾯信息,PageContext
4、session:表示⼀次会话,保存⽤户信息,HttpSession。
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) 指定每个请求的编码。
response 常⽤⽅法:
sendRedirect(String path) 重定向,⻚⾯之间的跳转。
HTTP 请求状态码
200:正常
404:资源找不到
400:请求类型不匹配
500:Java 程序抛出异常
转发 getRequestDispatcher 和重定向 sendRedirect 的区别:
转发:同⼀个请求在服务器之间传递,地址栏不变,也叫服务器跳转。
重定向:由客户端发送⼀次新的请求来访问跳转后的⽬标资源,地址栏改变,也叫客户端跳转。
转发:同一请求
重定向:不同请求
JSP 内置对象作⽤域
4个:
page、request、session、application
4个作用域对应的方法:
setAttribute、getAttribute
作用域
page 作⽤域:对应的内置对象是 pageContext。
request 作⽤域:对应的内置对象是 request。
session 作⽤域:对应的内置对象是 session。
application 作⽤域:对应的内置对象是 application。
范围:
page < request < session < application
page 只在当前⻚⾯有效。
request 在⼀次请求内有效。
session 在⼀次会话内有效。
application 对应整个 WEB 应⽤的
小测试:
网站访问量统计
<%
Integer count = (Integer) application.getAttribute("count");
if(count == null){
count = 1;
application.setAttribute("count",count);
}else{
count++;
application.setAttribute("count",count);
}
%>
您是当前的第<%=count%>位访客