JSP基础

Jsp基础

1)Jsp的执行过程 :

  • tomcat服务器完成 :
    • jsp文件->翻译成java文件->编译成class字节码文件-> 构造类对象-> 调用方法

2)Jsp语法

  • jsp表达式: <%=变量或表达式%> 向浏览器输出变量或表达式计算的结果
  • jsp脚本: <% java代码 %> 执行java代码 原理:翻译到_jspService()方法中
  • jsp声明: <%! 变量或方法 %> 声明jsp的成员变量或成员方法
  • jsp注释: <%!-- jsp注释 --%> 用于注释jsp代码, 不会翻译到java文件中, 也不会执行
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>Jsp语法</title>  
  </head>

  <body>
    <!-- jsp表达式  -->
    <%
        //变量
        String name = "eric";
        int a = 10;
        int b =20;
     %>
    <%=name %>  
    <br/>
    <%=(a-b) %>  
    <hr/>
    <!-- jsp脚本  -->
    <%
        //生成随机数
        Random ran = new Random();
        float num = ran.nextFloat();
     %>
     随机小数:<%=num %>
     <hr/>
     <!-- 穿插html代码 -->
     <%
        for(int i=1;i<=6;i++){  
      %>
        <h<%=i %>>标题<%=i %></h<%=i %>>
     <%
      }
      %>
      <hr/>
      <!-- 练习: 使用脚本和html代码显示99乘法表 -->
     <%
        for(int i=1;i<=9;i++){//行
            for(int j=1;j<=i;j++){//公式
     %>         
            <%=i %> x <%=j %>=<%=(i*j) %> 
        <%          
            }
        %>
           <br/>
        <%  
        }
      %>
      <%
        String age = "20";
        
        /* 脚本中不能声明方法
        public String getAge(){
            return age;
        }
        */
       %>
      
      
      <!-- jsp声明 -->
      <%!
       //变量
        String name = "jacky";
        
        public String getName(){
            return name;
        }
        
        /*jsp声明中不能重复定义翻译好的一些方法
        public void _jspInit(){
        
        }
        */
       %>
       <!-- html注释 -->
      <%-- <jsp:forward page="/01.hello.jsp"></jsp:forward> --%>
       <%-- jsp注释 --%>
       
  </body>
</html>

3)jsp的三大指令

  1. include指令 : 用于包含其他页面 (原理: 先合并再翻译, 叫静态包含)
  <%@include file="common/header.jsp"%>
  1. page指令 : 告诉tomcat服务器如何把jsp文件翻译成java文件
- language : 翻译的动态语言
- import : 类导入
- jsp文件编码问题:
   1. pageEncoding: 告诉tomcat服务器使用什么编码翻译jsp文件(jsp->java文件)
   2. contentType: tomcat服务器发送给浏览器的数据编码(tomcat服务器->浏览器)
<%@ page 
              language="java" 
              import="java.util.*,java.text.*" 
              pageEncoding="utf-8"
    %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
            <head> 
                <title>page指令</title>  
            </head>
            <body>
                <%
                    new Date();
                    new SimpleDateFormat();
                %>
                老王
            </body>
</html>
- 异常错误相关的:
   1. errorPage:  指定当前jsp页面的错误处理页面
   2. isErorrPage:  指定当前页面是否为错误处理页面。false->不是错误处理页面,则不能使用exception内置对象; true->错误处理页面, 可以使用exception内置对象
   - 配置全局的错误处理页面 : 
<!-- 全局错误处理页面配置 -->
  <error-page>
    <error-code>500</error-code>
    <location>/common/500.jsp</location>
  </error-page>
  <error-page>
    <error-code>404</error-code>
    <location>/common/404.html</location>
  </error-page>
- session : 是否开启session功能。false->不能用session内置对象;true->可以使用session内置对象
- buffer : jsp页面的缓存区大小
- isELIgnore : 是否忽略EL表达式
  1. taglib指令

Jsp最佳实践

  • Servlet技术: 开发动态资源。是一个java类,最擅长写java代码
  • jsp技术: 开发动态资源。通过java代码最擅长输出html代码。
  • 在web项目中涉及到逻辑:
    1)接收参数 servlet做
    2)处理业务逻辑,返回结果 servlet做
    3)显示数据到浏览器 jsp做
    4)跳转到其他页面 servlet做
  • servlet+jsp模式 : servlet的数据->jsp页面, 使用域对象 共享数据
    • servlet: 接收参数; 处理业务逻辑; 把结果保存到域对象中; 跳转到jsp页面
    • Jsp : 从域对象取出数据, 把数据显示到浏览器
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容