JSP第一天

jsp:java server pages
使用java语言开发的运行在服务器端得页面

html+javaScript---运行在客户端的页面

客户端----》html---->Servlet--->DAO--->DB

servlet的优缺点:
 处理业务逻辑
 展现页面 out.println("<javaScript><css><html>");
  编写时没有语法检测
  调试时依赖于web容器
 ===》Java代码中嵌套了Html+JavaScript
 解决:
 在Html+JavaScript代码中嵌入java代码===jsp

jsp本质上就是servlet

jsp的运行调用流程:
 1 客户端首次访问时,由web容器把jsp翻译为Servlet,同时编译,然后调用其中方法
 _jspService。在_jspService方法中内容主要都是out.write("静态信息");
 2 第一次访问之后,只要页面内容没有发生改变,则web容器直接调用_jspService方法
 3 第一次访问之后,页面中内容发生改变,则web容器则先编译后调用_jspService方法

注意:
 开发过程中,只要是页面(html/jsp),改变内容之后,只需刷新页面即可

java代码如何嵌入到html中的语法:<%%>
 声明 <%! %>
  被翻译为servlet中的成员变量
  声明中的代码必须以;结尾
  同一个jsp页面中的声明变量,不能重名

 注释 <%-- --%> 标准的jsp注释
   只存在于jsp的源代码中,给jsp程序员调试使用
  <!-- -->  标准的html注释
   被翻译为out.write()中的静态信息,原封不动发给客户端浏览器解析
  <%   //  /* */  /****/  %> 纯java注释
   被翻译为_jspService方法内部的注释,客户端源码中没有该注释

 表达式 <%= %>
  将表达式的运算结果在页面中替换当前标签显示
  表达式中的内容结尾必须不能写;

 代码段 <%  %>
  被翻译为_jspService方法中的信息
  结尾必须写分号
============================
上述jsp语法结构不能嵌套书写
============================

package com;
import java...    --指令

public class Test{ 
 //
 int i = 100;   --声明
 public void show(){
  int i = 20;
  //对i进行计算  --注释
  i+= 30;   --表达式
  System.out.println(i); --代码段
 }
}
class A{

}

 
练习:
 在jsp页面中使用jsp语法结构显示99乘法表

  

jsp--->servlet--->dao--->db

jsp语法---指令:<%@ %>
 page指令:<%@page 属性名=属性值...%>
  *1)contentType="text/html;charset=gbk"
  ===>
  response.setContentType("text/html;charset=gbk");
  
  2)pageEncoding="gbk"
  ==>setCharacterEncoding("gbk");
  
  3) language = "java"
   默认可以不写,为了兼容以后出现的其他语言所预留的接口
  4) session = "true/false"
   设置访问当前jsp页面,该页面是否创建session
   默认值为true
  5) buffer
   设置当前页面输出信息时缓冲区的大小,默认为8k
   如果设置为none,则表示不适用缓冲区,直接输出每条信息给客户端页面
  6) autoFlush
   设置缓冲区满了之后是否自动刷新信息到客户端页面上
   默认值为true,即自动刷新
  7) isThreadSafe = "true/false"
   设置当前页面是否经过线程安全控制
   默认为true,即线程安全
   如果设置为false,则客户端多线程必须顺序访问该页面
  *8) import
   给当前页面引入lang包以外的其他类路径
  *9) errorPage
   指定当前jsp页面如果出现异常,则跳转的页面路径
   ===》
   try{

   }catch(Exception e){
     ....
    //resp.sendRedirect("error.jsp");
    req.setAttribute("exception",e);
    req.getRequestDispatcher("error.jsp").forward(req,resp);
   }

  *10 isErrorPage
   指定当前error.jsp页面,是一个特殊用于处理异常的专属页面
   在本页面中可以获取异常跳转之前页面中的异常对象信息
   ==>
   Exception e = req.getAttribute("exception");

 include指令:<%@include file=""%>
  引入其他jsp页面中的信息
  静态引入:
   所有的页面先合并源码,统一编译执行

动作:<jsp:标签名></jsp:标签名>
 include动作:<jsp:include page=""></jsp:include>
  动态引入:
   先编译获取每个页面的执行结果,然后合并结果显示
 param动作:依赖于include动作存在
  <jsp:include page="foot.jsp">
   <jsp:param name="copyName" value="@_@"></jsp:param>
  </jsp:include>
  获取参数:
  <%=request.getparameter("copyName")%>

 forward动作:
  <jsp:forward page="">
 
jsp内置对象
 request  ---javax.servlet.http.HttpServletRequest
 response ---javax.servlet.http.HttpServletResponse
 exception ---java.lang.Throwable
 out  ---javax.servlet.jsp.JspWriter
 session  ---javax.servlet.http.HttpSession
 application ---javax.servlet.ServletContext


web项目中的中文乱码:
 1 jsp必须头部设置指令<%@page contentType="text/html;charset=gbk"%>
 2 添加CharacterEncodingFilter
 
http://localhost:8088/myJsp/include/static/content.jsp
==>../../basic/date.jsp
http://localhost:8088/myJsp/basic/date.jsp

===========================
注意:
 在jsp页面中注释代码
 信息,必须使用<%-- --%>
===========================

 


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值