zoukankan      html  css  js  c++  java
  • 从asp.net到jsp:3分钟看透Jsp&Servlet

    零:JSP是谁?

    话说故事的开头是这样的:JSP全名为Java Server Pages,其根本是一个简化的Servlet设计;后来的详细事情有请各位自便。
    美女→找→谷哥 or 帅哥→找→度娘 

    插播:如果还想精简继续提速;只需在目录导航中找点击实心五角星★标记的3个部分(内置对象和作用域、JavaBean、EL表达式)

    一、Jsp凉菜

    1、page 指令

    Language : 用来定义要使用的脚本语言;在这里java是惟一默认合法的值,记住就行。
    contentType:定义JSP字符的编码和页面响应的MIME 类型;
    pageEncoding:Jsp页面的字符编码;
    import:定义此JSP网页要使用哪些Java API或类;

    示例:

    <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
    

    2、scriptlet 标签

    通过scriptlet标签我们可以在Jsp里嵌入Java代码,主要以下三种:
    ① <%! %>  可以在里面定义全局变量、方法、类;
    ② <% %> 可以在里面定义局部变量、编写语句;
    ③ <%= %> 可以在里面输出一个变量或一个具体内容;

    3、Jsp 注释

    主要以下4种方式:
    ① <!--  Html 注释客户端可见 --> 
    ② <%-- Jsp 注释客户端不可见 --%> 
    ③ // java 单行注释
    ④ /* java 多行注释  */ 

    4、Jsp 包含指令

    ① <%@ include file=”要包含的文件”%> 静态包含先包含,后编译处理;
    ② <jsp:include page=”要包含的文件”> 动态包含先编译处理,后包含;

    实际开发中一般都采用第二种动态包含的方式。

    5、Jsp 跳转指令

    <jsp:forward>
    <jsp:param value=”” name=””>
    </jsp:forward>
    

    服务器内部跳转,可带参数。

    二、★JSP内置对象和作用域

    2.1 九大内置对象

    在Jsp开发中,Jsp提供了9个内置对象,这些内置对象将由容器为用户进行实例化,用户直接使用即可。分别是:pageContext,request,response,session,application,config,out,page,exception;常用的是前面5个,需要熟练掌握;

    Response内置对象和request 内置对象是相对应的,response 内置对象用于响应客户请求,向客户端输出信息;
    javax.servlet.HttpServletResponse 接口
    ① 自动刷新应用;
    ② 页面重定向应用:客户端跳转;
    ③ 操作cookie应用:post/get方法比较:post放数据包里,get放url后面;get数据量小,而且不安全;
    ④ cookie和session 的比较:cookie信息存在客户端,session信息存在服务器;

    pageContext内置对象是一个比较特殊的对象。它相当于页面中所有对象功能的集合,即使用它可以访问到本页面中所有对象。pageContext 内置对象由Jsp 容器创建并初始化,pageContext 对象提供了对JSP 页面所有对象及控件的访问。

    Config内置对象是JSP 页面通过JSP 容器进行初始化时被传递的对象。javax.servlet.ServletConfig 。在Servlet初始化的时候,JPS 引擎通过config 向它传递信息。这种信息可以是属性名和属性值匹配的参数,也可以是通过ServletContext 对象传递的服务器的有关信息;

    Out内置对象主要用来向客户端输出各种类型的数据,同时还可以管理应用服务器上的输出缓冲区。所以out 内置对象的方法是向客户端输出数据和管理缓冲区; 底层javax.servlet.jsp.JspWriter 抽象类。

    Exception内置对象用来处理JSP 文件在执行时发生的所有异常,它是java.lang.Throwable 类的一个对象。

    2.2 四大作用域

    此外,在Jsp 开发中为了可以保存数据,Jsp提供了四种数据保存范围;分别是:page,request,session,application。

    Page:只在一个页面中保存数据; javax.servlet.jsp.PageContext(抽象类)
    Request:只在一个请求中保存数据; javax.servlet.http.HttpServletRequest(接口)
    Session:在一次会话范围中保存数据,仅供单个用户使用;javax.servlet.http.HttpSession(接口)
    Application:在整个服务器上保存数据,所有用户共享;javax.servlet.ServletContext(接口)

    三、★JavaBean

    JavaBean是使用Java语言开发的一个可重用的组件,在JSP 开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。

    创建javabean
    <jsp:useBean id="实例化对象名称" scope="保存范围" class="类完整名称"/>
    Scope有page,request,session和application 4个属性范围,默认是page;

    设置javabean属性值
    <jsp:setProperty property="属性名称" name="实例化对象的名称" value="属性值" param="参数名称"/>
    Property=”*” 自动匹配所有

    获取javabean属性值
    <jsp:getProperty property="属性名称" name="实例化对象的名称"/>

    javabean保存范围
    Javabean 的保存范围有page,request,session,application;默认是page;

    删除javabean
    Page 范围:pageContext.removeAttribute(“javaBean Name”);
    request 范围:request.removeAttribute(“javaBean Name”);
    session 范围:session.removeAttribute(“javaBean Name”);
    application 范围:application.removeAttribute(“javaBean Name”);

    四、☆Servlet

    Servlet生命周期:简单分为四步:servlet 类加载→实例化→服务→销毁。

    客户端/服务器端 跳转
    ① 在Servlet 中获取session,application
    ② 客户端跳转response.sendRedirect("目标地址");
    ③ 服务器跳转:RequestDispatcher rd=request.getRequestDispatcher("目标地址"); rd.forward(request, response);

    五、★EL表达式

      表达式内置对象 说明
    1 pageContext 表示javax.servlet.jsp.PageContext对象
    2 pageScope 表示从page属性范围查找输出属性
    3 requestScope 表示从request属性范围查找输出属性
    4 sessionScope 表示从session属性范围查找输出属性
    5 applicationScope 表示从application属性范围查找输出属性
    6 param 接收传递到本页面的参数
    7 paramValues 接收传递到本页面的一组参数
    8 header 取得一个头信息数据
    9 headerValues 取出一组头信息数据
    10 cookie 取出cookie中的数据
    11 initParam 取得配置的初始化参数

    寻找值的顺序:page→request→session→application

    EL表达式运算符操作还包括:算数运算符,关系运算符,逻辑运算符;三目运算符;Empty关键字;

    六、Jsp标准标签库

    JSTL核心标签库
    c:out 内容输出标签;
    c:set 用来设置4 中属性范围值的标签;
    c:remove 用来删除指定范围中的属性;
    c:catch 用来处理程序中产生的异常;
    c:if 用来条件判断;
    c:choose、c:when、c:otherwise 用来多条件判断;
    c:forEach 用来遍历数组或者集合;
    c:fortokens 分隔输出;
    c:import 导入页面;
    c:url 生成一个url 地址;
    c:redirect 客户端跳转

    JSTL SQL标签库
    Sql:setDataDource 设置JDBC 连接;
    sql:query 数据库查询操作;
    Sql:update 数据库添加,修改,删除操作;
    Sql:transaction 数据库事务;

    JSTL XML标签库
    x:parse 解析xml;
    x:out 输出xml 文件的内容;
    x:set 把xml 读取的内容保存到指定的属性范围;
    x:if 判断指定路径的内容是否符合判断的条件;
    x:choose x:when x:otherwise 多条件判断;
    x:forEach 遍历

  • 相关阅读:
    转载 轻松搞定面试中的二叉树题目
    关于AVplayer 缓冲问题的处理
    关于iOS接收到推送消息后跳转问题
    iOS 黑魔法
    UITableView的优化
    OC是动态运行时语言是什么意思?什么是动态识别,动态绑定?
    iOS深复制和浅复制
    iOS内存管理(ARC,MRC)
    iOS数据持久化
    详解KVO,KVC
  • 原文地址:https://www.cnblogs.com/iPragmatic/p/Jsp-Servlet.html
Copyright © 2011-2022 走看看