Fork me on GitHub
posts - 148,  comments - 5,  views - 85113

JSP

  简称java服务器页面(java server page),jsp和servlet实现了我们的开发需求。对于jsp技术我们首先需要知道他的组成    HTML+java+jsp内置对象=jsp

jsp的产生

    jsp解决了动态页面使用servlet服务器用response向客户端写代码,这样使得java页面写起来特别麻烦,所以产生了jsp。在HTML中嵌套java代码使得servlet的页面更加干净。但是服务器内部会把jsp页面编译成java文件。这个过程交给服务器去完成大大的节约了开发效率。

jsp的运行过程

    服务器启动--------加载jsp到服务器中

    客户端访问服务jsp页面---服务器会把jsp页面转化为java文件 ,服务器使用java文件通过服务器再写回到浏览器

jsp基本语法

1、JSP模版元素

网页的静态内容。如:html标签和文本。

2、JSP的脚本

2.1、小脚本 <% java代码 %>

2.1、表达式 <%= 2+3 %> 等价于out.print(2+3);

2.3、声明   <%! %> 表示在类中定义全局成员,和静态块。

3、JSP注释

JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量

网页注释:<!-- 网页注释 -->    特点:不安全,费流量

4、3指令

  

1
<%@ page 属性值=属性值 %>

属性:

1、 import 和java代码中的import是一样的

<%@ page import="java.util.Date,java.util.List"%>

或者:

<%@ page import="java.util.Date"%>

<%@ page import="java.util.List"%>

JSP会自动导入以下的包:

import java.lang.*;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

 

2、 session: 是否会自动创建session对象。默认值是true;

3、 buffer: JSP中有javax.servlet.jsp.JspWriter输出字符流。设置。输出数据的缓存大小,默认是8kb.

4 errorPage: 如果页面中有错误,则跳转到指定的资源。

errorPage="/uri" 如果写“/”则代表当前应用的目录下,绝对路径。

如果不写“/”则代表相对路径。

5、 isErrorPage: 是否创建throwable对象。默认是false;

6、 contextType: 等同于response.setContextType("text/html;charset=utf-8");

7、 pageEncoding: 告诉JSP引擎要翻译的文件使用的编码。

<%@ page  pageEncoding="gbk" %>

8、 isELIgnored: 是否支持EL表达式。 默认是false

 

 

5、6动作

1
2
3
4
5
6
<jsp:include > 动态包含
<jsp:forward> 请求转发
<jsp:param> 设置请求参数
<jsp:useBean> 创建一个对象
<jsp:setProperty> 给指定的对象属性赋值
<jsp:getProperty> 取出指定对象的属性值

6、9内置对象

  其中6个内置对象和servlet中的内置对象是一样的

1
2
3
4
5
6
7
8
9
1.request   javax.servlet.http.HttpServletRequest  
2.response  javax.servlet.http.HttpServletResponse 
3.session   javax.servlet.http.HttpSession  由session="true"开关
4.application   javax.servlet.ServletContext   
5.exception java.lang.Throwable 由isErrorPage="false"开关
6.page  java.lang.Object当前对象this    当前servlet实例
7.config  javax.sevlet.ServletConfit
8.out    javax.servlet.jsp.JspWriter    字符输出流,相当于 printWriter对象
9.pageContext    javax.servlet.jsp.PageContext 

 

7、4个域对象(主要作用使用来存储值得)

1
2
3
4
ServletContext   javax.servlet.SerlvetContext
request---javax.servlet.Http.HttpServletRequest
Session---javax.servlet.http.httpsession
pageContext---javax.servlet.jsp.PageContext 

  前三个已经在servlet中介绍了

pageContext     javax.servlet.jsp.PageContext

    1.           创建:页面加载时就会创建pageContext对象
    2.      销毁:界面访问完成就会销毁
    3.    写入值:pageContext.setAttribute(String name,Object value);
    4.    读取值:pageContext.getAttrubute(String name);
    5.    作用范围:当前jsp页面

 8:jsp中的EL表达式

    el表达式是为了简化java代码,主要体现在获取值得时候。el表达式是的整个jsp页面更加简洁。使得开发者节约开发时间

  el表达式获取域对象值:

    servletContextScope.name获取ServletContext中名字为name的值

     sessionScope.name获取session中名字为name的值

    requestScope.name获取session中名字为named的值

  特殊获取域对象中的值的方法(findAttribute)

    通过pageContext对象来获取(pageContext.findAttribute(name))。

      实现方式:通过查找的方式进行找域对象中的存储值

      查询顺序:request域---->session域---->servletContext域

    el表达式的内置对象(11个) 

1
2
3
4
5
6
7
8
9
10
11
pageContext javax.servlet.jsp.PageContext   pageContext 一样的<br>
pageScope   java.util.Map<String,Object>  没有对应的   pageContext范围中存放的数据,页面范围
<br>requestScope    java.util.Map<String,Object>  没有对应的   请求范围数据
<br>sessionScope    java.util.Map<String,Object>  没有对应的   会话范围数据
<br>applicationScope    java.util.Map<String,Object>  没有对应的   应用范围数据
<br>param   java.util.Map<String,String>  没有对应的   一个请求参数
<br>paramValues java.util.Map<String,String[]>    没有对应的   重名请求参数
<br>header  java.util.Map<String,String>  没有对应的   一个请求消息头
<br>headerValues    java.util.Map<String,String[]>    没有对应的   重名请求消息头
<br>initParam   java.util.Map<String,String>  没有对应的   web.xml中全局参数
<br>cookie  java.util.Map<String,Cookie>  没有对应的   key:cookie对象的name值

  

      el表达式还可以进行运算,和java中的运算相似 ,el表达式主要是为了获取值使用,对于运算我就不做过多的解释了

     9:jstl  javaServicePage standard tag library java服务器页面标准标签库

        主要提供了jsp页面的逻辑处理eg:循环

注意事项:使用时必须进行导包

1
jstl.jar    jstl标签包<br>standard.jar  国际化包

  常使用的jstl标签有:

通用标签: set、 out、 remove

条件标签:if  choose

迭带标签:foreach

使用方法  http://www.runoob.com/jsp/jstl-core-out-tag.html;

    

    

    

 

posted on   TopTime  阅读(329)  评论(0编辑  收藏  举报
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示