• jsp笔记1(基本原理与语法)


    web.xml文件配置管理的范围:
      1.配置jsp
      2.配置和管理Servlet
      3.配置和管理Listener
      4.配置和管理Filter
      5.配置标签库
      6.配置jsp属性
      7.配置和管理JAAS授权认证
      8.配置和管理资源引用
      9.web应用首页
      10.Servlet3.0规范中,增了metadata-complete:true或false,当为true,不会加载注解配置的Web组件(如Servlet,Listener,Filter等)



    JSP基本原理:

      1.jsp的本质是Servlet,web应用中的每个jsp页面都会由Servlet容器编译成对应的Servlet,然后Servlet使用输出流来动态生成HTML页面。        

      2.jsp页面的内容组成:

        1.静态部分:不受java程序控制的,比如标准的html标签、静态的页面内容
        2.动态部分:受java程序控制的内容

      3.当一个jsp页面被编译成Servlet时,此时的文件存放在tomcat的work路径下面,会生成Servlet对应的两个文件,一个java,一个class文件,在java文件中主要包含三个方法(去除方法名中的_jsp前缀,再将首字母小写)
        1.init():初始化jsp/Servlet的方法
        2.service():对用户请求生成响应的方法
        3.destroy():销毁jsp/Servlet之前的方法

      4.jsp页面工作原理:

      



    jsp的4种基本语法:
      
    1.jsp注释:<%-- jsp注释 --%>
    对比html的注释<!--html注释-->,区别在于,html的注释是可以通过查看源代码查看到的,但jsp的注释就看不到,这说明jsp注释不会被发送到客户端。

      2.jsp声明:<%! 声明部分 %>,jsp页面的声明部分将转为Servlet的成员变量或成员方法

      3.输出jsp表达式:<%=表达式 %>,可用jsp的输出表达式来替换out.println()来进行结果的输出;

      4.jsp脚本:<% java代码部分 %>,jsp脚本部分的代码会转换成Serlvet里service()方法的代码,故在jsp脚本里面可以声明变量,对应着Servlet方法中的局部变量,但是jsp脚本中不能定义方法,因为java语法中不允许在方法里定义方法

      脚本示例:连接数据库与执行数据库操作

    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.Statement" %>
    <%@ page import="java.sql.ResultSet" %><%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2018/1/4
      Time: 16:46
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>数据库连接与操作</title>
    </head>
    <body>
        <%
            //1.注册数据库驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取数据库连接
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
            //3.创建Statement
            Statement statement = connection.createStatement();
            //4.执行查询
            ResultSet rs = statement.executeQuery("select * from user");
    
        %>
        <table width="300" border="1" bgcolor="#9999dd">
            <%
                while(rs.next()){
            %>
                <tr>
                    <td><%=rs.getString(1)%></td>
                    <td><%=rs.getString(2)%></td>
                    <td><%=rs.getString(3)%></td>
                </tr>
            <%    }
            rs.close();
            statement.close();
            connection.close();
            %>
        </table>
    </body>
    </html>

      由于操作了数据库,故还要导入mysql驱动的jar包,这步不能忘记。  

      运行截图:

  • 相关阅读:
    善用js 异步引入,大幅提升vue站点加载速度,媲美大厂流畅性
    react hooks useState 赋值优化解决方案
    vue hash模式下的微信授权详解
    图片之间没加空格有间隙的解决方案
    React 父组件重新渲染,子组件不需要渲染的三种性能优化方式(PureComponent,memo,shouldComponentUpdate);
    uniapp历史模式history配置
    vue下请求数据地址的封装
    h5 下ios适配底部小黑条,简单解决方案,只需一步
    overflow:hidden 失效问题
    h5下数字,字母不换行的解决方案
  • 原文地址:https://www.cnblogs.com/eleven258/p/8195579.html
Copyright © 2020-2023  润新知