jsp

1).掌握JSP基础知识
2).掌握JSP文件结构及编写JSP第一杯咖啡
3).掌握JSP工作原理
3).掌握JSP生命周期
4).掌握JSP语法
5).掌握JSP 9大内置对象
1、什么是JSP
       1).JSP全称 java server page,即Java服务端页面,
           是为了简化动态网页开发而出现的。
       2).JSP的底层实现是一种特殊的servlet
            (相当于对servlet进行一个包装)。
       3).JSP是综合技术
           (html+css+javascript+java代码+jsp标签)。
       4).不需要配置,直接使用,如果修改代码不需要
           部署和启动服务器。
2、JSP文件结构
 例题:
注意:(1)在jsp中,所有的代码是写在html页面中的<body></body>中,
      (2)java语言是写在<%  java语言    %>
      (3)导入java包:<%@ page import="java.util.*,java.util.*"   %>
      (4)注释:<%--     注释语句    --%>
       (5)输出语句:<%= 变量名     %>
 <body>
    <%for(int i=0;i<3;i++){%>
    <h1> 你好</h1>
    <%} %>
    <%--注释
    //out是JSP内置对象(9大内置对象)
     out.println("<font color='red'>今天是星期三</font>");
     --%>
  <%@ page import="java.util.*,java.text.*"%>
  <% 
    //显示当前系统的时间
    Date date=new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    String d=sdf.format(date);
  %> 
  <%--输出变量d --%>
  <%= d %>
  
 </body>
3、JSP工作原理
被翻译成java源文件
被编译成.class字节码文件
加载,实例化
初始化
调用方法service
销毁
4、JSP生命周期【面试题】
    (1) 被翻译成java源文件
    (2)被编译成.class字节码文件
    (3)加载,实例化
    (4)初始化
    (5)调用方法service(处理请求)
    (6)销毁
5、JSP语法
1).注释
     Jsp注释的格式:<%-- 注释语句 --%> ,忽略jsp页面被注释的内容
     html注释的格式:<!-- 注释语句 --> 会在servlet中对应生成out.write("<!---->")
2).三大元素
I.指令元素:
(1).page指令
基本语法格式: <%@  属性名=“值” %>
举例: <%@ page language="java"  import="java.util.*" 
                           pageEncoding="utf-8"%>
注意:contentType="text/html;charset=utf-8":指定网页以什么方式显示页面
       pageEncoding="utf-8":指定web服务器以什么方式翻译jsp
(2).include指令
基本语法格式:   <%@指令  属性名="值"%>
举例: <%@ include file=“fileName" %>
注意:1.该指令用于引入一个文件,web服务器会把两个jsp文件翻译成一个servlet文件,因此也称为静态引入。
II.脚本元素—可以理解就是java的片段。
(1).脚本格式: <% java代码  %>
(2).表达式: <%=表达式  %>
(3).变量的声明:<%!  全局变量声明    %>
               例如:<%!count=10%>
     (全局变量放在整个jsp页面中都有效)
III.动作元素
<jsp:forward page="">标签、<jsp:param value="" name="">标签
<jsp:include page="">标签--动态包含
若想错误信息出现在另一个专用的错误页面,就要在.xml页面里写下面信息:
 <error-page>
      <error-code>404</error-code>
      <location>/error.jsp</location>
  </error-page>
   <error-page>
      <error-code>500</error-code>
      <location>/error.jsp</location>
  </error-page>
6、静态包含和动态包含的区别【面试题】
       相同点:都是从一个文件引入到另一个文件
       不同点:
              引入:
               <%@ include file="fileName"%>:是静态引入,把两个jsp翻译成一个servlet,
               <jsp:include>:动态引入,把两个jsp分别翻译,
              
              传值:<%@ include file="fileName"%>:只能用request对象传值,例:                     request.setAttribute()
                     <jsp:include>:可以用   <jsp:param value="上课" name="sk"/>传值
例题1:
   注意:静态包含的用法:即将error.jsp中的错误代码提示显示在另一个页面中(index.jsp)中,即index.jsp页面包含了错误提示
   
(1)要把下面所有路径的代码注释掉
   <%--
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  --%>
(2)要把下面所有路径的代码注释掉
      <base href="<%--=basePath--%>"> 
(3)在index.jsp的页面中<body>里写静态代码指向错误的页面:  
      <%String msg="错误";
  request.setAttribute("msg",msg);%>
    <%@include file="error.jsp" %>
 
 (4)在error.jsp页面中写:
   <h2>404页面,<%=request.getAttribute("msg")%></h2>
就会在index.jsp页面中出现:404页面,错误
例题2:动态包含:会在
   在jspinclude.jsp中: 
         <jsp:include page="include.jsp">
             <jsp:param value="上课" name="sk"/>   注:jsp:param是传递参数值
         </jsp:include>
    
  在include.jsp中:
          <h1>周六</h1>
         <%=request.getParameter("sk") %>
7、补充-实际开发中JSP存放的位置 
在开发JSP的过程中,我们通常把某些jsp放入
WEB-INF目录下,
目的是为了防止用户直接通过URL访问jsp(有效的防止用户非法访问)
问:如何跳转到WEB-INF下的页面
        如果要访问WEB-INF目录下的jsp,必须通过<jsp:forward>标签或者request.getRequestDispatcher(WEB-INF/forwardTo.jsp).forward             (request,response);进行请求转发(服务器跳转)
例题:
    要访问WEB-INF/jsp里的jsp文件:(1)在WebContent文件夹下建一个jspforward.jsp
                                   (2)在jspforward.jsp里的代码如下:
                                       <jsp:forward page="WEB-INF/jsp/jspinclude.jsp">  
                                       <jsp:param value="卖萌" name=""/>
                                       </jsp:forward>
                                   注:jspinclude.jsp就是WEB-INF/jsp里的jsp文件
8、JSP的9大内置对象【重点面试题】
       内置对象               类型                                       作用域
        out             javax.servlet.jsp.JspWriter                   本页面
       request          javax.servlet.ServletRequest                 一次请求中
       response         javax.servlet.HttpServletResponse             本页面(page)
       session          javax.servlet.http.HttpSession                一次回话中(Session) 
       page             java.lang.Object                              本页面
       pageContext      javax.servlet.PageContext                     本页面    
       application      javax.servlet.ServletContext                 整个应用程序中都有效
       exception        java.lang.Trowable                            本页面
       config           javax.servlet.ServletConfig                   本页面  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值