第一个JSP程序(JSP入门)

在web根目录新建index.jsp文件

<%@ page language="java" contentType="text/html; charset=GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
当前系统时间
<%out.println(new java.util.Date()); %>
</body>
</html> 

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app> 

启动tomcat

浏览器显示输出

当前系统时间 Tue Jun 30 20:35:20 CST 2015

查看jsp对应的java类文件

在D:\apache-tomcat-7.0.62\work\Catalina\localhost\ServletStudy\org\apache\jsp可以找到index_jsp.java文件,文件内容如下

/*
 * Generated by the Jasper component of Apache Tomcat
 * Version: Apache Tomcat/7.0.62
 * Generated at: 2015-06-30 12:35:20 UTC
 * Note: The last modified time of this file was set to
 *       the last modified time of the source file after
 *       generation to assist with modification tracking.
 */
package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final javax.servlet.jsp.JspFactory _jspxFactory =
          javax.servlet.jsp.JspFactory.getDefaultFactory();

  private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;

  private javax.el.ExpressionFactory _el_expressionfactory;
  private org.apache.tomcat.InstanceManager _jsp_instancemanager;

  public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
    return _jspx_dependants;
  }

  public void _jspInit() {
    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
    _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
  }

  public void _jspDestroy() {
  }

  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException {

//JSP隐含对象有以下对象
    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;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;

    try {
      response.setContentType("text/html; charset=GBK");
      pageContext = _jspxFactory.getPageContext(this, request, response,
                null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write("\r\n");
      out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
      out.write("<html>\r\n");
      out.write("<head>\r\n");
      out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");
      out.write("<title>Insert title here</title>\r\n");
      out.write("</head>\r\n");
      out.write("<body>\r\n");
      out.write("当前系统时间\r\n");
out.println(new java.util.Date());
      out.write("\r\n");
      out.write("</body>\r\n");
      out.write("</html>");
    } catch (java.lang.Throwable t) {
      if (!(t instanceof javax.servlet.jsp.SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          try {
            if (response.isCommitted()) {
              out.flush();
            } else {
              out.clearBuffer();
            }
          } catch (java.io.IOException e) {}
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
        else throw new ServletException(t);
      }
    } finally {
      _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }
}

总结

  • org.apache.jasper.runtime.HttpJspBase实现了javax.servlet.Servlet接口
  • index_jsp类实现了javax.servlet.Servlet接口
  • 从以上可以看出,jsp文件会被Servlet容器(tomcat)翻译成一个Servlet类文件,然后再编译成class文件
  • JSP本质上是Servlet的实现。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 15:46:19

第一个JSP程序(JSP入门)的相关文章

一个简单的jsp程序

<%@ page contentType="text/html;charset=GB2312"%> <HTML> <BODY BGCOLOR=cyan> <FONT Size=1> <p>这是一个简单的JSP页面 <% int i,sum=0; for( i=1;i<=100;i++){ sum=sum+i; } %> <p>1到100的连续和是: <BR> <%=sum %&g

jsp——学习篇:建立第一个jsp程序

耽搁了这么久,终于要开始我们的正题!下来我们开始新建我们的第一个JSP程序!这里我将过程写成了百度经验啦,本来是一篇,木有想到百度经验对篇幅有限制,辛苦了好几个小时,不想努力白白浪费,就改成两篇啦! 这里是百度经验链接地址! 第一篇:Eclipse开发web项目的配置,链接地址是:http://jingyan.baidu.com/article/546ae185021daa1148f28c11.html 第二篇:Eclipse开发web项目,链接地址是:http://jingyan.baidu.

MyEclipse配置Tomcat 并编写第一个JSP程序

安装myeclipse之后配置tomcat服务器,在window里选择servers 选择tomcat的文件夹路径(我的是从别人那里考过来的文件夹) 选中上enable即可 出现了这个界面 在这里可以打开或关闭服务器 打开服务器之后可以打开浏览器看看 tomcat服务器有没有打开 网址为http://localhost:8080/ 然后新建一个网络工程叫 myJsp 然后就有以下这些 Open with 可以打开图形化的开发拖拽界面 然后右键new servlet程序 Jsp是显示界面 view

Tomcat环境设置及第一个JSP程序实现

Tomcat环境配置及第一JSP程序实现 配置Tomcat坏境配置 1.JAVA_HOME:只为JAVA JDK的安装目录(bin目录的上一层目录) F:\JDK7 2.CATALINA_HOME:值为Tomcat的安装目录 G:\Tomcat\apache-tomcat-7.0.79 第一个JSP程序 准备工作 1.下载安装Myeclipse,将原来eclipse的配置转移到Myeclipse上 eclipse:File-->Export-->General-->Preferences

Servlet&amp;JSP学习笔记:第一个Servlet程序

第一个Servlet程序代码如下,接着根据这个小程序逐步讲解. import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletReq

SpringMVC基础入门,创建一个HelloWorld程序

ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!--configure the setting of springmvcDispatcherServlet and configure the ma

Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门

这些年免费帮同学或同学的朋友做过的毕设还是有一些了,我的博客基本都是基于我做过的项目相关的,而里面又有三分之一都是自己做的毕设或别人的毕设的做后感.毕设其中就包括MFC图像处理..Net安全软件.C#聊天软件字典软件.Android百度地图随手拍.php网站..Net图书管理系统等等.其实我回过头来想想啊!这些知识对我的帮助和提高还是非常大的,虽然比不上公司实际上线项目,但是帮帮同学对我挺好的,当然很大程度也是害了一些同学,但他们很多都从事了非软件相关的专业. 很显然,大部分的毕设都是基于XXX

一个Java程序猿眼中的前后端分离以及Vue.js入门

松哥的书里边,其实有涉及到 Vue,但是并没有详细说过,原因很简单,Vue 的资料都是中文的,把 Vue.js 官网的资料从头到尾浏览一遍该懂的基本就懂了,个人感觉这个是最好的 Vue.js 学习资料 ,因此在我的书里边就没有多说.但是最近总结小伙伴遇到的问题,感觉很多人对前后端分离开发还是两眼一抹黑,所以今天松哥想和大家聊一下前后端分离以及 Vue.js 的一点事,算是一个简单的入门科普吧. 前后端不分 后端模板:Jsp.FreeMarker.Velocity 前端模板:Thymeleaf 前

JSP概述《JSP程序开发》

P1 什么是JSP? 和java相关的技术,可以开发出动态的,高性能的Web应用程序,的一门开发语言 P1 优点即特点,那么jsp的优点有哪些呢? JSP实现的Web应用,a.其动态页面和静态页面是分离的,b.已脱离硬件平台的束缚,c.且是编译后运行的.=====P1 JSP的编译后执行和ASP的脚本级执行,各自有什么优缺点?   p2 JSP引擎是什么? JSP应用完成后搭建在服务器上,服务器有多个Web项目,显然服务器上得有一个管理类型的程序来管理多个Web程序,这个管理JSP程序的程序就是