初识 jsp
- jsp的本质是一个servlet,ta会生成一个*_jsp.java文件,继承JspBaise,在里面嵌套了前端与自己写的java代码
- JspBaise 继承了 JspServlet
- JSP 页面的隐含变量:
- request
- response
- PageContext pageContext = null
- HttpSerion session = null
- ServletConfig config = null
- JspWriter out = null
- Object page = this
- ServletContext application = null
八个隐含对象(还有一个exception,九个),没有申明就可以使用
// request
String username = request.getParameter("username");
// response
response.getWriter().println("hello jsp");
// PageContext pageContext
pageContext.getSession().setAttribute("user", "这是一个user");
// HttpSerion session
Object u = session.getAttribute("user");
System.out.println(u);
// ServletConfig config
String name = config.getInitParameter("username");
System.out.println(name);
// ServletContext application
Object user = application.getAttribute("user");
System.out.println(user.toString());
// JspWriter out
out.println("hello worlld");
// page
String s = page.toString();
System.out.println(s);
- JSP 的语言与拼接
- <% java 代码 %> <=% java 代码 %> <!% 定义新的java方法 %>(我们要知道jsp是一个servlet,而
java 代码都是写在 service 的方法里,方法里面怎么能定义新的方法呢?所以第三个是在类中定义新的方法) - 注释:<%-- jsp 注释 --%> jsp 注释可阻止 java 代码执行,而html 注释不能。
- 拼接:java 与 java代码之间可以嵌套 html 代码 用<%%>隔开就好
作用域研究
- pageContext < request < session < application
- pageContext:只能在当前页面访问
- request:请求作用域,就是客户端的一次请求
- session:只能在一次会话中使用,(jsp或servlet),也就是说你当前页面没关就又去开一个浏览器访问
- application:全局都能访问(jsp或serlvt)直到关闭浏览器结束(结束访问)
- 主要方法:
-
setAttribute
-
getAttribute
-
removeAttribute
-
代码:
<%
pageContext.setAttribute("pageContext","this is pageContext");
request.setAttribute("request","this is reequest");
session.setAttribute("session","this is session");
application.setAttribute("application","this is application");
%>
<%
Object pageCon = pageContext.getAttribute("pageContext");
System.out.println(pageCon);
Object req = request.getAttribute("request");
System.out.println(req);
Object sess = session.getAttribute("session");
System.out.println(sess);
//session 在servlet中这样获取
request.getSession().getAttribute("session");
application.getAttribute("application");
%>
- exception 对象:
不能直接使用,必须将该 jsp 定义为错误页面:
<%@ page isErrorPage="true" %>