JSP基础

Java Server Page:Java 服务器端网页,在 HTML 页面中编写 Java 代码的页面。JSP 是 Servlet 编写的一种技术,它将 Java 代码和 HTML 语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用 Java 代码来编写,而对固定不变的静态内容采用普通静态 HTML 页面的方式编写。

1. 新建一个JSP页面,在body节点内的 <% %>便签中即可编写Java代码。

<body>
<% 
  Date date = new Date();
  System.out.print(date); 
%></body>

① JSP表达式:<%= expr %>。

② JSP脚本片段:<% java code %> 同一个JSP页面中的多个JSP片段中的代码可以相互访问。

③ JSP声明:<%! statement %> 形同为当前JSP页面对应的servlet类声明类级变量(即成员变量)。 

④ JSP注释的格式:<%-- JSP 注释 --%> <!-- HTML 注释 --> 区别: JSP 注释可以阻止 Java 代码的执行。

 

2. JSP页面可以放置在WEB应用程序中的除了WEB-INF及其子目录外的任何其他目录中,JSP页面的访问路径与普通的HTML页面的访问路径形式完全一样。

 

3.JSP的运行原理:JSP 本质上是一个 Servlet。 

每个JSP 页面在第一次被访问时,JSP 引擎将它翻译成一个 Servlet 源程序,接着再把这个 Servlet 源程序编译成 Servlet 的 class 类文件,然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。 

 

4. JSP的9大内置对象

即9个隐含的、没有声明即可在JSP页面内使用的对象:request、response、pageContext、session、application、config、out、page、exception。

复制代码
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
​
//...
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
​
//...
}
复制代码

如上代码片段,可以在任意JSP页面对应的servlet源文件的service方法中查看这些内置对象。(对于Eclipse,源文件位置在[工程项目目录]\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\[对应具体项目名]\)。

关于这九大内置对象的说明:

①. request:HttpServletRequest的实例。

②. response:HttpServletResponse的实例(在JSP页面中几乎不会调用它的任何方法)。

③. pageContext:PageContext的实例,页面上下文,可从它获取到其它8个隐含对象,也可以从中获取当前页面的其它信息,自定义标签用的较多。

④. session:HttpSession的实例,代表浏览器和服务器的一次会话。

⑤. application:ServletContext实例,代表当前Web应用。

⑥. config:当前JSP对应的Servlet的ServletConfig对象对象(几乎不使用)。若需要访问当前 JSP 配置的初始化参数,需要通过映射的地址才可以。 

复制代码
<!-- 映射 JSP -->
<servlet>
  <servlet-name>hellojsp</servlet-name>
  <jsp-file>/hello.jsp</jsp-file>
  <init-param>
    <param-name>test</param-name>
    <param-value>testValue</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>hellojsp</servlet-name>
  <url-pattern>/hellojsp</url-pattern> 
</servlet-mapping>
复制代码

⑦. out:JspWriter的实例。

⑧. page:指向当前 JSP 对应的 Servlet 对象的引用,但为 Object 类型,只能调用 Object 类的方法(几乎不使用)。 

⑨. exception:在声明了 page 指令的 isErrorPage="true" 时,才可以使用:<%@ page isErrorPage="true" %>。

pageContext, request, session, application(对属性的作用域的范围从小到大);out, response, config, page;exception。

 


 

posted @   少司命  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示