精华内容
下载资源
问答
  • Tomcat根据JSP生成Servlet机制解析 JavaServer Pages(JSP) 简介 在传统的网页html文件中加入java程序片段和JSP标签,就构成了JSP网页;java程序片段可以操纵数据库、重新定向网页以及发送邮件,实现建立动态网站所...

    Tomcat根据JSP生成Servlet机制解析

    JavaServer Pages(JSP)

    简介

    在传统的网页html文件中加入java程序片段和JSP标签,就构成了JSP网页;java程序片段可以操纵数据库、重新定向网页以及发送邮件,实现建立动态网站所需要的功能;程序操作都在服务器端执行络上传送给客户端的仅是得到的结果,这样可以大大降低浏览器的要求。

    文件结构及主要标签

    1432532-20180703214928503-409521613.png
    1432532-20180703214942385-1741778114.png

    JSP执行过程

    1432532-20180703214959695-1881688157.png
    1432532-20180703215014237-710051210.png

    JSP语法概述

    1.JSP原始代码中包含了JSP元素和Template(模板)data两类。
    2.Template data指的是JSP引擎不处理的部分,即标记为<% %>以外的部分,例如代码中的HTML的内容,这些数据会直接传送到客户端的浏览器。
    3.JSP元素是指将由JSP引擎直接处理的部分,这一部分必须符合JAVA语法,否则会导致便宜错误。

    转载于:https://www.cnblogs.com/huangzefeng/p/9260815.html

    展开全文
  • 5、Tomcat的JSP生成Servlet机制

    千次阅读 2013-03-28 10:16:15
    JSP——JavaServer Pages ... - Java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。  - 所有程序操作都是在服务器端执行,网络上传送给客户端的仅是

    JSP——JavaServer Pages

    1、JSP介绍

         - 在传统的网页HTML文件(*.htm,*.html)中加入传统java程序片段(scriptlet)和JSP标签,就构成了JSP网页
         - Java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。
         - 所有程序操作都是在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。(结果是静态的html页面)

    2、JSP执行过程:

    更详细的过程分析:

    3、验证jsp编译生成servlet:在Tomcat的安装目录里,有一个work子目录,在其下还有这样的目录:Catalina\localhost\webp1\org\apache\jsp,在这个目录下,我们可以看到很多.java和.class文件,文件名都是我们编写的jsp文件的名字+下划线+jsp+.java,例如我们写的result.jsp,转换成为了result_jsp.java和编译后的result_jsp.class。

    jsp最终都会转换为servlet去执行。

    4、JSP原始代码中包含了JSP元素和Template(模板)data两类;Template data指的是JSP引擎不处理的部分,即标记<%  %>以外的部分,例如代码中的HTML的内容等,这些数据会直接传送到客户端的浏览器;JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JAVA语法,否则就导致编译错误。

    5、JSP语法分为三种不同的类型:

        - 编译器指令(DIRECTIVE)例如:<%@ page import="java.io.*" %>
        - 脚本语法(SCRIPTING)
        - 动作语法(ACTION)例如:<jsp:forward>,<jsp:getProperty>,<jsp:include>

    脚本语法包括:HTML注释:<!--     -->——在客户端查看源代码能看到;隐藏注释(也叫JSP注释):<%--   --%>——源代码中看不见,即不会发送到客户端;

    编译指令包括“包含指令”,“页指令”和“taglib指令”,它们包含在<%@ %>卷标里,两个主要的指令是page与include。

    声明:<%!   %>,<%! int a = 3; %>与脚本段<% int a = 3; %>,举例:

    <body>
        <%! int a = 3; %>
        <% int b = 3; %>
        
        <br>
        <%= a-- %>
        <%= b-- %>
      </body>


    这样的例子,每刷新一次,页面上a的值都将减1,而b的值始终不变,究其原因,声明的变量在jsp转换为servlet后成为成员变量,而脚本段的变量成为_jspService这个方法里的局部变量,而且,对于servlet来说,是单例的,即服务器中只存在此servlet的一个实例(对象),所以成员变量也一份,每个用户都会访问到它,而脚本段中的值则是局部变量,每个用户访问时各有一份,互不影响。

    表达式:<%=   %>

    包含指令:include指令:<%@ include file="relativeURL"    %>

    page指令用于定义JSP文件中的全局属性,import用于导入java包,以下包不需要导入:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*

    6、page指令详解

        - "<%@ page %>"指令作用于整个JSP页面,同样包括静态的包含文件。但是"<%@ page %>"指令不能作用于动态的包含文件,比如“<jsp:include>”
        - 可以在一个页面中用上多个"<%@ page %>"指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为import属性和JAva中的import语句类似,所以此属性就能用多次。
        - 无论把"<%@ page %>"指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。

    7、taglib指令:

    <%@ tablib uri="URIToTaglib" prefix="tagOrefix" %>,用于引入定制标签库

    8、<jsp:forward page=  />指令用于转向页面,在该指令后面的所有代码都没有机会执行了,因为页面流程已经转向了另一个页面了。

     <jsp:include   page=>

       <jsp:param name=”username” value=”rasion”  />

       <jsp:param name=”password” value=”12345”  />

    </jsp:include>

    9、一个页面输入行列数,另一个页面动态生成对应行列表格:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'input.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
        <form action="output.jsp">
        	row:<input type="text" name="row"><br>
        	col:<input type="text" name="col">
        	<input type="submit" value="submit">
        </form>
      </body>
    </html>
    


     

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'output.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
        <%
        	int row = 0;
        	int col = 0;
        try
        {
        	row = Integer.parseInt(request.getParameter("row"));
            col = Integer.parseInt(request.getParameter("col"));
        }
        catch(Exception e)
        {
        	out.println("input digit");
        	return;
        }
            int value = 0;
        %>
        <table width="80%" align="center" border=1>
        <%
        	for(int i = 0;i < row; i++)
        	{
        %>
        <tr>
        	<%
        		for(int j = 0; j < col; j++)
        		{
        	%>
        	<td><%= ++value %></td>
        	<% } %>
        </tr>
        <% } %>
        </table>
      </body>
    </html>
    


     

    展开全文
  • 3、java片段可以操纵数据库、重新定向网页以及发送e-mail等,实现建立动态网页的功能。在里面可以写入所有合法的java代码 4、所有操作都在服务器端进行,网络上传送给客户端的仅仅是得到的结果,这样大

    1、jsp全称java server pag。。java服务器端的页面
    2、在传统的网页html文件(*htm,*html)里面加入了java程序片段和jsp标签,就构成了jsp。
    3、java片段可以操纵数据库、重新定向网页以及发送e-mail等,实现建立动态网页的功能。在<% %>里面可以写入所有合法的java代码
    4、所有操作都在服务器端进行,网络上传送给客户端的仅仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持java,也可以访问jsp页面

    jsp文件结构及主要标签

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <html>
       <body>
       其他html语句
       <%
         符合java语法的java语句
       %>
       其他html语句
       </body>
    </html>

    例如:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <body>
        <%for (int i=0;i<2;i++)
        {
         %>
        hello<br>
        <%} %>
    
      </body>
    </html>
    

    该程序的结果是两行hello
    我们查询该页面的源代码是:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     </head>
    
      <body>
    
        hello<br>
    
        hello<br>
    
    
      </body>
    </html>
    

    可见,jsp中可以用java的思想编写html,这样省去很多繁琐的代码。

    jsp的执行过程

    这里写图片描述
    存在一个jsp,用户发出请求,利用jsp的parser服务器提供的,将jsp转换为一个.java文件,该文件就是一个servlet。有servlet分析器,将其编译为.class文件,执行该class文件,就会出现一个静态的页面结果,由服务器响应给客户端。所有的过程都是在服务器中执行的,只是将最终的结果返回给客户端。客户端只需发出请求,然后等待服务器给他响应结果。

    jsp语法概述

    1、jsp原始代码中包含了jsp元素和template(模板)data两类
    2、template data指的是jsp引擎不处理的部分,即标记<% %>以外的部分,例如代码中的html的内容,这些数据会直接传送到客户端的浏览器
    3、jsp元素则是指将由jsp引擎直接处理的部分,这一部分必须符合java语法,否则会导致编译错误。

    展开全文
  • JAVA程序片段可以操纵数据库,重定向网页以及发送Email等,实现建立动态网页所需要的功能。 所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的服务器的结果,这样大大降低了对客户浏览器的要求, ...

    1:什么是JSP(Java Server Pages):

    在传统的HTML页面中加入JAVA程序片段和JSP标签,就构成JSP网页。

    JAVA程序片段可以操纵数据库,重定向网页以及发送Email等,实现建立动态网页所需要的功能。

    所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的服务器的结果,这样大大降低了对客户浏览器的要求,

    即使客户浏览器不支持JAVA,也可以访问JSP页面。

     

    JSP的文件结构及主要标签:

     

     

     

    在Tomcat的work\Catalina\localhost\目录下,存在许多由JSP文件生成的JAVA及CLASS文件。如下图。

     

    以下是login.jsp文件生成的JAVA代码文件

    package org.apache.jsp;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import java.util.*;
    
    public final class login_jsp extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {
    
      private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();
    
      private static java.util.List _jspx_dependants;
    
      private javax.el.ExpressionFactory _el_expressionfactory;
      private org.apache.AnnotationProcessor _jsp_annotationprocessor;
    
      public Object getDependants() {
        return _jspx_dependants;
      }
    
      public void _jspInit() {
        _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
        _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
      }
    
      public void _jspDestroy() {
      }
    
      public void _jspService(HttpServletRequest request, HttpServletResponse response)
            throws java.io.IOException, ServletException {
    
        PageContext pageContext = null;
        HttpSession session = null;
        ServletContext application = null;
        ServletConfig config = null;
        JspWriter out = null;
        Object page = this;
        JspWriter _jspx_out = null;
        PageContext _jspx_page_context = null;
    
    
        try {
          response.setContentType("text/html;charset=utf-8");
          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("<html>\r\n");
          out.write("  <body>\r\n");
          out.write("    <form action=\"/servletTest/login\" method=\"get\">\r\n");
          out.write("    \tusername:<input type=\"text\" name=\"username\"></input><br>\r\n");
          out.write("    \tpassword:<input type=\"password\" name=\"password\"></input><br>\r\n");
          out.write("    \t<input type=\"submit\" value=\"提交\"></input>&nbsp;&nbsp;&nbsp;\r\n");
          out.write("    \t<input type=\"reset\" name=\"重置\"></input>\r\n");
          out.write("    </form>\r\n");
          out.write("  </body>\r\n");
          out.write("</html>\r\n");
          out.write("\r\n");
        } catch (Throwable t) {
          if (!(t instanceof SkipPageException)){
            out = _jspx_out;
            if (out != null && out.getBufferSize() != 0)
              try { out.clearBuffer(); } catch (java.io.IOException e) {}
            if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
          }
        } finally {
          _jspxFactory.releasePageContext(_jspx_page_context);
        }
      }
    }
    

     

    展开全文
  • Servlet生成动态验证码

    2014-08-31 11:09:32
    Servlet动态生成验证码,运行Tomcat在浏览器输入地址即可。
  • 其主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。 快速...
  • 1.什么是servlet?  ServletServlet Applet),...其主要功能在于交互式的浏览和修改数据,生成动态Web内容。Servlet运行于支持Java的应用服务器中。 2.tomcatservlet的关系?  ServletServlet 容器(to...
  • TomcatServlet类的原理

    2017-08-31 12:47:17
    Tomcat执行的事情为:向服务器发起连接,接受...Servlet是运行在服务器端的Java应用程序,可以生成动态的web。不需要main函数就可以运行,是由于java的反射机制,在Tomcat中应用java的反射机制来生成一个Servlet对象
  • Servlettomcat

    2020-06-08 14:52:14
    是用Java编写的服务器端程序,其主要功能在于交互 式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的 Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet...
  • Tomcat Servlet交互简介

    2018-04-12 14:43:30
    通过使用Java Servlet和JSP API的实现,Tomcat能够接收来自客户端的请求,动态编译容器管理的Java类以处理相关应用上下文中指定的请求,并将结果返回给客户端。这种生成动态内容的方法可实现极其快速,线程化,独立...
  • TomcatServlet之间的关系

    万次阅读 多人点赞 2018-01-17 14:22:28
    Servlet(小服务程序)是一个与协议无关的、跨平台的Web组件,它基于Java技术开  发,由Servlet容器所管理。和运行在客户端浏览器中的... Servlet的主要功能是交互式地浏览和修改数据,生成动态Web内容。  S
  • servlet是什么? Servlet是用Java编写的Server端程序,它与协议和平台无关。 Servlet运行于Java-enabled Web Server中。 Java Servlet可以动态地...Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。
  • Tomcat+servlet+jsp+jdbc

    2020-06-10 21:25:15
    Tomcat+servlet+jsp+jdbc 这些都是啥 jsp(JavaServer Pages): ​ 先说jsp,其实就是一个升级版的html,因为普通的html是不可以与数据交互的,代码写完是什么样就是什么样(比如你不可以定义一个变量a,然后在你想...
  • 1.Tomcat:先配置java环境和tomcat环境 ...work:存放tomcat动态生成的资源 appwebs:存放写的web文件 logs:日志 lib:tomcat要使用的架包 2.创建一个web应用: 静态网站: 第一步:在webapps...
  • JSP的ServletTomcat

    2019-06-04 21:53:34
    概念了解 JAVA EE(j2ee)即Java Web标准。 TomcatServlet的容器,Servlet运行在Tomcat容器当中...Tomcat根据JSP页面生成对应Servlet的Java文件及class文件。 JSP是动态网页技术,出现在Servlet技术之后的,J...
  • [5-04]tomcatservlet

    2017-09-19 13:50:54
    互联网能够访问的web资源,分为两类静态(每次访问内容都一样)和动态(由程序动态生成的) 静态web资源:html,css,js,图片,音频,视频 动态web资源开发技术:asp,php,jsp(sun给出java体系机构,web层提供servlet...
  • 其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持...
  • 【前言】: 这三个,是java web中非常关键的,之所以在学到今天还在讲初期应该讲的,也是因为这三个运用到的地方是显而易见,而且...网页称为动态的,更多是交给Tomcat,它更多时候相当于一个容器来说,contai...
  • 前台和后台的区别 前台:呈现给用户的视觉和基本的操作。 后台:用户浏览网页时,我们看不见的后台...Servlet是一个基于java技术的Web-APi,运行在服务器端,由servlet容器管理,用于生成动态内容。 Tomcat 介绍 Tom
  • JSP(JAVA SERVER PAGE)的缩写,其本身就是servlet的简化,是一种动态网页标准,其特点是在HTML代码中嵌入JAVA代码,JSP标签或用户标签来生成网页。至于它为什么会出现,主要原因在于早期的servlet技术在编写代码时...
  • 文章转自: ... JSP(JAVA SERVER PAGE)的缩写,其本身就是servlet的简化,是一种动态网页标准,其特点是在HTML代码中嵌入JAVA代码,JSP标签或用户标签来生成网页。至于它为什么
  • 浅谈ServletTomcat

    2019-06-12 12:01:17
    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。 狭义的Servlet是指...
  • Servlet是基于Java技术的web组件,容器托管的,用于生成动态内容。像其他基于Java的组件技术一样,Servlet也是基于平台无关的Java类格式,被编译为平台无关的字节码,可以被基于Java技术的webserver动态加载并运行。...
  • Servlettomcat区别

    2020-02-06 16:20:41
    一提到容器,很多新手就会忘文生畏,认为这是很难很高深的东西。...Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,用于生成动态的内容。 Servlet...
  • ServletTomcat

    2016-07-20 08:34:00
    Web应用不仅局限于展示在服务器上的静态页面,更多的是根据用的请求动态生成页面信息,还可以从数据库中提取数据,生成页面返回给用户。 第一种方法:遵循HTTP协议实现一个服务器端软件 第二种方法:利用已...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 505
精华内容 202
关键字:

tomcat动态生成servlet