1.jsp脚本 (3种代码块)
1.<% JAVA代码块 %>
2.<%= JAVA变量或者表达式%>
3.<%! JAVA代码块%>
方法1:<% java代码 %>
特点:内部的java代码直接翻译到Servlet方法内部
如图所示:
jsp窗口:
jsp生成的Servlet窗口:
方法2:<%= java变量或者表达式 %>
特点:相当于out.print(java变量或者表达式)
jsp窗口:jsp生成的Servlet窗口:
方法3:<%! java代码 %>
特点:存放在Servlet方法块里
jsp窗口:
jsp生成的Servlet窗口:
index.jsp代码
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>我的网页</title>
- </head>
- <body>
- <%
- int i=0;
- out.print(i);
- %>
- <%=i+3
- %>
- <%!
- public class Student
- {
- int age;
- String name;
- public Student(String name,int age) {
- this.age = age;
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Override
- public String toString() {
- return "Student{" + "age=" + age + ", name='" + name + '\'' + '}';
- }
- }
- %>
- <%
- Student me = new Student("神奇的我", 12);
- out.println(me.toString());
- %>
- </body>
- </html>
生成的index_jsp.java 代码 (具体可以在Tomcat的work下找到)
- /*
- * Generated by the Jasper component of Apache Tomcat
- * Version: Apache Tomcat/9.0.1
- * Generated at: 2017-12-03 14:54:33 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.web;
- 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,
- org.apache.jasper.runtime.JspSourceImports {
- public class Student
- {
- int age;
- String name;
- public Student(String name,int age) {
- this.age = age;
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Override
- public String toString() {
- return "Student{" + "age=" + age + ", name='" + name + '\'' + '}';
- }
- }
- 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 static final java.util.Set<java.lang.String> _jspx_imports_packages;
- private static final java.util.Set<java.lang.String> _jspx_imports_classes;
- static {
- _jspx_imports_packages = new java.util.HashSet<>();
- _jspx_imports_packages.add("javax.servlet");
- _jspx_imports_packages.add("javax.servlet.http");
- _jspx_imports_packages.add("javax.servlet.jsp");
- _jspx_imports_classes = null;
- }
- private volatile javax.el.ExpressionFactory _el_expressionfactory;
- private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
- public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
- return _jspx_dependants;
- }
- public java.util.Set<java.lang.String> getPackageImports() {
- return _jspx_imports_packages;
- }
- public java.util.Set<java.lang.String> getClassImports() {
- return _jspx_imports_classes;
- }
- public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
- if (_el_expressionfactory == null) {
- synchronized (this) {
- if (_el_expressionfactory == null) {
- _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
- }
- }
- }
- return _el_expressionfactory;
- }
- public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
- if (_jsp_instancemanager == null) {
- synchronized (this) {
- if (_jsp_instancemanager == null) {
- _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
- }
- }
- }
- return _jsp_instancemanager;
- }
- public void _jspInit() {
- }
- 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 {
- final java.lang.String _jspx_method = request.getMethod();
- if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
- response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD");
- return;
- }
- 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=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("\n");
- out.write("\n");
- out.write("<html>\n");
- out.write("<head>\n");
- out.write("<title>我的网页</title>\n");
- out.write("</head>\n");
- out.write("<body>\n");
- int i=0;
- out.print(i);
- out.write('\n');
- out.print(i+3);
- out.write('\n');
- out.write('\n');
- out.write('\n');
- Student me = new Student("神奇的我", 12);
- out.println(me.toString());
- out.write("\n");
- out.write("\n");
- out.write('\n');
- out.write("\n");
- out.write("</body>\n");
- out.write("</html>\n");
- } 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);
- }
- }
- }