- <body>
- <%!
- //1、可定义方法
- public String outMethod(){
- return "outMethod";
- }
- //2、可定义static方法
- public static String outStaticMethod(){
- return "outStaticMethod";
- }
- //3、可定义static属性
- public static int count = 0;
- //4、不可以使用out对象
- %>
- <%
- //1、不可定义方法
- //2、不可定义static方法
- //3、不可定义static属性
- //可以使用out对象
- out.print(outMethod());
- out.print("<br>");
- out.print(outStaticMethod());
- out.print("<br>");
- out.print(count);
- %>
- </body>
经Tomcat编译后,生成的java文件如下:
- package org.apache.jsp;
- import javax.servlet.*;
- import javax.servlet.http.*;
- import javax.servlet.jsp.*;
- public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase
- implements org.apache.jasper.runtime.JspSourceDependent {
- //1、可定义方法
- public String outMethod(){
- return "outMethod";
- }
- //2、可定义static方法
- public static String outStaticMethod(){
- return "outStaticMethod";
- }
- //3、可定义static属性
- public static int count = 0;
- //4、不可以使用out对象
- 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("<!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=utf-8\">\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.write("\r\n");
- //1、不可定义方法
- //2、不可定义static方法
- //3、不可定义static属性
- //可以使用out对象
- out.print(outMethod());
- out.print("<br>");
- out.print(outStaticMethod());
- out.print("<br>");
- out.print(count);
- out.write("\r\n");
- out.write("</body>\r\n");
- out.write("</html>");
- } 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);
- }
- }
- }
在生成的java文件中,我们可以看到,<%! %>中的代码对应于java类文件的成员方法、静态方法,静态变量,而<% %>中的代码对应于java类文件的_jspService方法中的代码(_jspService对应于servlet中的service方法),这也就是为什么在<% %>中不能声明方法、静态变量的原因了(方法中是不可以
相关推荐
1. 动态与静态:`<jsp:include>` 动态包含,`<%@ include %>` 静态包含。 2. 执行时机:`<jsp:include>` 在请求时,`<%@ include %>` 在编译时。 3. 内容变化:`<jsp:include>` 适合动态内容,`<%@ include %>` 适合...
JSP Scriptlet 有三种形式:<% %>、<%! %>和 <%= %> 2.1 <% %>:标记中可以定义变量、编写程序 例如:scriptletdemo01.jsp 2.2 <%! %>:定义全局变量,编写方法,编写类 例如:scriptletdemo02.jsp、...
- D选项描述的是JSP动作标签的开始与结束标记,如`<jsp:include>`等。 **1.2 jsp代码 `<%=“1+4”%>` 将输出:** - **正确答案:A** - **解析:** 在JSP中,`<%= %>`用于输出表达式的值。这里字符串`"1+4"`被直接...
%>`**:静态地包含另一个文件,与`<jsp:include>`的区别在于包含在编译时完成。 - **`<%@ taglib ... %>`**:引入自定义标签库,指定URI和别名。 ### 4. JSP脚本元素 - **`<%-- ... --%>`**:JSP注释,服务器端...
6. **动作(Actions)** - 如`<jsp:include>`, `<jsp:forward>`, `<jsp:useBean>`, 它们执行特定的操作,如包含其他资源,转发请求,实例化Java对象等。 **JSP生命周期:** 1. **翻译阶段** - JSP页面被转换为一个...
【JAVA/JSP 题库】是JAVA程序员和JSP开发员面试的必备参考资料,尤其适合已经在职场有一定经验的专业人士。以下将详细讲解其中涉及的关键知识点: 1. **异常处理**:在C++和Java中,当程序违反语义规则(如数组下标...
<%@ page import="java.sql.*" %> <html> <body> <% Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl 为 Oracle SID String...
JSP动作包括`<jsp:include>`, `<jsp:forward>`, `<jsp:param>`, `<jsp:useBean>`, `<jsp:setProperty>`, `<jsp:getProperty>` 和 `<jsp:plugin>`。它们用于动态操作,如包含、转发、创建和操作JavaBeans。 6. **...
JSP提供了几种内置的动作标签,如`<jsp:include>`、`<jsp:forward>`、`<jsp:params>`等,它们用于简化页面操作。例如,`<jsp:include>`用于包含其他页面,常用于实现页面布局: ```jsp <jsp:include page="header....
与`<jsp:include>`不同的是,转发后原页面的后续代码不再执行,且客户端浏览器地址栏不会改变。 - **`<jsp:param>`**:用于传递参数给`<jsp:include>`或`<jsp:forward>`。 示例代码展示两种包含方式的区别: ```...
为了重复利用声明,可以将其封装在独立的文件中,然后通过`<%@include%>`或`<jsp:include>`元素引入。 #### 四、表达式 表达式元素用于嵌入Java表达式,其结果将在页面渲染时转换为字符串并显示在页面上。语法为`...
3. **JSP动作**:如`<jsp:include>`, `<jsp:forward>`, `<jsp:params>`等,它们用于控制页面流程和处理数据。 4. **JSP内置对象**:包括`request`, `response`, `session`, `application`, `pageContext`, `out`, `...
5. **转发和重定向**:理解`<jsp:forward>`和`response.sendRedirect()`的区别,以及在什么情况下使用它们。 6. **异常处理**:学习如何使用`page`, `errorPage`, `exception`指令进行错误处理。 在学习过程中,...
而数据库操作是Web应用中不可或缺的一部分,通过JSP可以方便地与各种类型的数据库进行交互。本文将详细介绍如何使用JSP来连接并操作三种常见的数据库:Oracle、SQL Server以及DB2。 #### 二、连接Oracle数据库 ###...
JSP提供了三种指令:`<%@ page %>`, `<%@ include %>`, 和`<%@ taglib %>`。`<%@ page %>`用于设置页面属性,如字符编码、错误页面等;`<%@ include %>`动态包含其他文件,增强代码复用;`<%@ taglib %>`引入自定义...
#### 四、JSP隐藏注释与显示注释的区别 - **隐藏注释**:在服务器端可见,不会发送到客户端,用于添加调试信息或暂时禁用某些代码段。 - **显示注释**:即HTML注释,客户端和服务器端均可看到,可用于注释掉HTML...
3. JSP动作元素(Actions):调用JavaBean或其他Web组件,如`<jsp:useBean>`, `<jsp:setProperty>`, `<jsp:invoke>`. 4. JSP脚本元素:包含Java代码,如`<% %>`(脚本片段)、`<%= %>`(表达式)和`<%! %>`(声明)...
5. **动作元素**:如`<jsp:include>`, `<jsp:forward>`, `<jsp:params>`, `<jsp:useBean>`等,它们用于动态地包含资源、转发请求、传递参数和实例化JavaBean。 6. **JSP内置对象**:包括`request`, `response`, `...
2. **指令元素**:JSP指令用于配置整个JSP页面或特定部分,如`<%@ page %>`, `<%@ include %>`, 和 `<jsp:directive.page>`等,它们告诉服务器如何处理JSP页面。 3. **脚本元素**:包括表达式、Scriptlet和声明,...
5. **动作(Actions)** - 用于控制页面流程,如`<jsp:include>`, `<jsp:forward>`, 和`<jsp:useBean>`。 **JSP内置对象:** 1. **request** - 代表HTTP请求对象,包含客户端发送的所有信息。 2. **response** - ...