JSP代码块

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代码

[plain]  view plain  copy
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  2. <html>  
  3. <head>  
  4.     <title>我的网页</title>  
  5. </head>  
  6. <body>  
  7. <%  
  8.     int i=0;  
  9.     out.print(i);  
  10. %>  
  11. <%=i+3  
  12. %>  
  13. <%!  
  14.     public class Student  
  15.     {  
  16.         int age;  
  17.         String name;  
  18.   
  19.         public Student(String name,int age) {  
  20.             this.age = age;  
  21.             this.name = name;  
  22.         }  
  23.   
  24.         public int getAge() {  
  25.             return age;  
  26.         }  
  27.   
  28.         public void setAge(int age) {  
  29.             this.age = age;  
  30.         }  
  31.   
  32.         public String getName() {  
  33.             return name;  
  34.         }  
  35.   
  36.         public void setName(String name) {  
  37.             this.name = name;  
  38.         }  
  39.   
  40.         @Override  
  41.         public String toString() {  
  42.             return "Student{" + "age=" + age + ", name='" + name + '\'' + '}';  
  43.         }  
  44.     }  
  45. %>  
  46.   
  47. <%  
  48.     Student me = new Student("神奇的我", 12);  
  49.     out.println(me.toString());  
  50. %>  
  51. </body>  
  52. </html>  

生成的index_jsp.java  代码 (具体可以在Tomcat的work下找到)

[java]  view plain  copy
  1. /* 
  2.  * Generated by the Jasper component of Apache Tomcat 
  3.  * Version: Apache Tomcat/9.0.1 
  4.  * Generated at: 2017-12-03 14:54:33 UTC 
  5.  * Note: The last modified time of this file was set to 
  6.  *       the last modified time of the source file after 
  7.  *       generation to assist with modification tracking. 
  8.  */  
  9. package org.apache.jsp.web;  
  10.   
  11. import javax.servlet.*;  
  12. import javax.servlet.http.*;  
  13. import javax.servlet.jsp.*;  
  14.   
  15. public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase  
  16.     implements org.apache.jasper.runtime.JspSourceDependent,  
  17.                  org.apache.jasper.runtime.JspSourceImports {  
  18.   
  19.   
  20.     public class Student  
  21.     {  
  22.         int age;  
  23.         String name;  
  24.   
  25.         public Student(String name,int age) {  
  26.             this.age = age;  
  27.             this.name = name;  
  28.         }  
  29.   
  30.         public int getAge() {  
  31.             return age;  
  32.         }  
  33.   
  34.         public void setAge(int age) {  
  35.             this.age = age;  
  36.         }  
  37.   
  38.         public String getName() {  
  39.             return name;  
  40.         }  
  41.   
  42.         public void setName(String name) {  
  43.             this.name = name;  
  44.         }  
  45.   
  46.         @Override  
  47.         public String toString() {  
  48.             return "Student{" + "age=" + age + ", name='" + name + '\'' + '}';  
  49.         }  
  50.     }  
  51.   
  52.   private static final javax.servlet.jsp.JspFactory _jspxFactory =  
  53.           javax.servlet.jsp.JspFactory.getDefaultFactory();  
  54.   
  55.   private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;  
  56.   
  57.   private static final java.util.Set<java.lang.String> _jspx_imports_packages;  
  58.   
  59.   private static final java.util.Set<java.lang.String> _jspx_imports_classes;  
  60.   
  61.   static {  
  62.     _jspx_imports_packages = new java.util.HashSet<>();  
  63.     _jspx_imports_packages.add("javax.servlet");  
  64.     _jspx_imports_packages.add("javax.servlet.http");  
  65.     _jspx_imports_packages.add("javax.servlet.jsp");  
  66.     _jspx_imports_classes = null;  
  67.   }  
  68.   
  69.   private volatile javax.el.ExpressionFactory _el_expressionfactory;  
  70.   private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;  
  71.   
  72.   public java.util.Map<java.lang.String,java.lang.Long> getDependants() {  
  73.     return _jspx_dependants;  
  74.   }  
  75.   
  76.   public java.util.Set<java.lang.String> getPackageImports() {  
  77.     return _jspx_imports_packages;  
  78.   }  
  79.   
  80.   public java.util.Set<java.lang.String> getClassImports() {  
  81.     return _jspx_imports_classes;  
  82.   }  
  83.   
  84.   public javax.el.ExpressionFactory _jsp_getExpressionFactory() {  
  85.     if (_el_expressionfactory == null) {  
  86.       synchronized (this) {  
  87.         if (_el_expressionfactory == null) {  
  88.           _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();  
  89.         }  
  90.       }  
  91.     }  
  92.     return _el_expressionfactory;  
  93.   }  
  94.   
  95.   public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {  
  96.     if (_jsp_instancemanager == null) {  
  97.       synchronized (this) {  
  98.         if (_jsp_instancemanager == null) {  
  99.           _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());  
  100.         }  
  101.       }  
  102.     }  
  103.     return _jsp_instancemanager;  
  104.   }  
  105.   
  106.   public void _jspInit() {  
  107.   }  
  108.   
  109.   public void _jspDestroy() {  
  110.   }  
  111.   
  112.   public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)  
  113.       throws java.io.IOException, javax.servlet.ServletException {  
  114.   
  115.     final java.lang.String _jspx_method = request.getMethod();  
  116.     if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {  
  117.       response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD");  
  118.       return;  
  119.     }  
  120.   
  121.     final javax.servlet.jsp.PageContext pageContext;  
  122.     javax.servlet.http.HttpSession session = null;  
  123.     final javax.servlet.ServletContext application;  
  124.     final javax.servlet.ServletConfig config;  
  125.     javax.servlet.jsp.JspWriter out = null;  
  126.     final java.lang.Object page = this;  
  127.     javax.servlet.jsp.JspWriter _jspx_out = null;  
  128.     javax.servlet.jsp.PageContext _jspx_page_context = null;  
  129.   
  130.   
  131.     try {  
  132.       response.setContentType("text/html;charset=UTF-8");  
  133.       pageContext = _jspxFactory.getPageContext(this, request, response,  
  134.                 nulltrue8192true);  
  135.       _jspx_page_context = pageContext;  
  136.       application = pageContext.getServletContext();  
  137.       config = pageContext.getServletConfig();  
  138.       session = pageContext.getSession();  
  139.       out = pageContext.getOut();  
  140.       _jspx_out = out;  
  141.       out.write("\n");  
  142.       out.write("\n");  
  143.       out.write("<html>\n");  
  144.       out.write("<head>\n");  
  145.       out.write("<title>我的网页</title>\n");  
  146.       out.write("</head>\n");  
  147.       out.write("<body>\n");  
  148.       int i=0;  
  149.       out.print(i);  
  150.       out.write('\n');  
  151.       out.print(i+3);  
  152.       out.write('\n');  
  153.       out.write('\n');  
  154.       out.write('\n');  
  155.       Student me = new Student("神奇的我"12);  
  156.       out.println(me.toString());  
  157.       out.write("\n");  
  158.       out.write("\n");  
  159.       out.write('\n');  
  160.       out.write("\n");  
  161.       out.write("</body>\n");  
  162.       out.write("</html>\n");  
  163.      } catch (java.lang.Throwable t) {  
  164.       if (!(t instanceof javax.servlet.jsp.SkipPageException)){  
  165.         out = _jspx_out;  
  166.         if (out != null && out.getBufferSize() != 0)  
  167.           try {  
  168.             if (response.isCommitted()) {  
  169.               out.flush();  
  170.             } else {  
  171.               out.clearBuffer();  
  172.             }  
  173.           } catch (java.io.IOException e) {}  
  174.         if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);  
  175.         else throw new ServletException(t);  
  176.       }  
  177.     } finally {  
  178.       _jspxFactory.releasePageContext(_jspx_page_context);  
  179.     }  
  180.   }  
  181. }  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是在 JSP 中使用 JDBC 连接 MySQL 的一个示例代码: ``` <%@ page import="java.sql.*" %> <% String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "password"; String sql = "SELECT * FROM users"; try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { out.println(rs.getString("username")); } rs.close(); stmt.close(); con.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } %> ``` 在这段代码中,我们首先导入了 Java SQL 包,然后定义了连接所需的 URL、用户名和密码。接下来,我们尝试加载 MySQL 驱动程序,并使用它来创建数据库连接。 在连接建立之后,我们可以使用 `createStatement` 方法来创建一个 `Statement` 对象,并使用它来执行 SQL 查询。这里我们执行的是一个 `SELECT` 语句,所以我们使用 `executeQuery` 方法来执行这个查询,并获取结果集。 最后,我们在循环中使用 `rs.next` 方法来遍历查询的结果,并使用 `rs.getString` 方法来获取用户名,然后使用 JSP 的 `out.println` 方法将其输出到网页上。 希望这对你有帮助。 ### 回答2: JSP代码与MySQL数据库的JDBC连接如下: 首先,需要导入JDBC驱动程序,将其放入Web应用的lib目录中,并在JSP页面的头部添加如下代码: ```jsp <%@ page import="java.sql.*" %> <% Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载MySQL的JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password"); // 创建Statement对象 stmt = conn.createStatement(); // 执行查询语句 String sql = "SELECT * FROM table_name"; rs = stmt.executeQuery(sql); // 遍历结果集 while (rs.next()) { String column1 = rs.getString("column1"); int column2 = rs.getInt("column2"); // ... // 处理每行数据 } } catch (Exception e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } %> ``` 以上代码中,需要将`database_name`替换为实际的数据库名,`username`和`password`替换为实际的数据库用户名和密码。同时,`table_name`需要替换为实际的表名,`column1`、`column2`等需要替换为实际的字段名。 以上代码会执行一个简单的查询语句,并将结果集遍历输出。你可以根据具体需求进行修改和扩展。 ### 回答3: JDBC(Java Database Connectivity)是Java连接数据库的一种标准接口。下面是一个连接MySQL数据库的JSP代码: <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %> <% Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 注册JDBC驱动 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名", "用户名", "密码"); // 创建SQL语句 String sql = "SELECT * FROM 表名"; // 创建Statement对象 stmt = conn.createStatement(); // 执行SQL语句 rs = stmt.executeQuery(sql); // 处理查询结果 while(rs.next()) { out.println("ID: " + rs.getInt("id") + "<br>"); out.println("姓名: " + rs.getString("name") + "<br>"); out.println("年龄: " + rs.getInt("age") + "<br>"); } } catch(Exception e) { e.printStackTrace(); } finally { // 关闭连接和释放资源 if(rs != null) { try { rs.close(); } catch(Exception e) { e.printStackTrace(); } } if(stmt != null) { try { stmt.close(); } catch(Exception e) { e.printStackTrace(); } } if(conn != null) { try { conn.close(); } catch(Exception e) { e.printStackTrace(); } } } %> 以上代码首先要导入所需的包,然后在try-catch-finally块中进行数据库连接、SQL语句的执行以及结果的处理。需要注意的是,代码中的"localhost:3306/数据库名"需要改成你自己的MySQL数据库地址和数据库名,"用户名"和"密码"需要改成你自己的数据库用户名和密码。通过循环处理结果集,可以将查询到的数据在JSP页面进行展示。 这是一个简单的JDBC连接MySQL的JSP代码示例。实际应用中,还需要进一步封装和优化代码,增加异常处理和安全控制等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值