一、jsp介绍:

  jsp是servlet的一种包装。是html+js+css+servlet。

  jsp文件无需配置,如果修改了jsp文件不需要reload应用。

  jsp访问方法:直接访问文件名.jsp文件

  jsp是一种动态网页技术。

二、语法:

  注释:<%-- --%>

  1、指令元素:

    (1)page指令:

        

           

            <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  pageEncoding="ISO-8859-1"%>

        (2)include指令:

            用法:<%@include file="filename" %>

  2、脚本元素:

     

    (1)表达式:

        java片段:

         <%=100%>

        <%= %> //相当于out.println()

    (2)声明:

      <%! int i=90;%>

      声明变量:

        <%! public int i;%>

      声明函数:

        <%! public int info(){} %>

    (3) 动作元素:

      跳转元素:<jsp:forward page="/he.jsp"></jsp:forward>

      动态引入:<jsp:include file=''></jsp:include>

      与静态引入区别:静态引入是将两个jsp文件翻译成一个servlet,所以被引入的文件不要包含<body><html>等标签。

            但动态引入不同,把两个jsp文件分别编译,所以被引入的可以包含<html>等标签。

  3、开发规范:开发的jsp页面不能放在web-root下,而是应该放到web-inf文件夹下去(Tomcat会对web-inf文件夹进行保护)因此用一个入口页面的                         jsp:forward方法来访问。

三、jsp的编译指令:

  1、page指令:

  2、include指令:

    <%@include file="" %>

  用于静态引用其他的文件。

四、动作指令:

  1、jsp:forward :用于执行页面跳转。

五、jsp九大内置对象:

  1、application 是javax.servlet.ServletContext的实例。

    

  2、config:用得少,可以不用了解。

  3、exception:

  4、out:javax.servlet.jsp.JspWriter()的实例,代表jsp页面的输出流。

  5、request:HttpServletRequest的实例。

    

 getparameter(String paramatername) //获取其中一个参数的值
getParameterMap() //获取所有的参数的键值对

  

 getRequestDispatcher("/a.jsp").include(request,response) //将a.jsp页面include到本页面

 getRequestDispatcher("/a.jsp").forward(request,response) //将本页面请求forward到a.jsp页面,执行跳转操作

  6、response:HttpServletResponse的实例。

     (1)执行重定向操作:

        一般情况下重定向操作是在控制器中执行的。

        sendRedirect(String path)

     (2)增加cookie信息:

        

1 //服务器端代码

 2 Cookie c=new Cookie("cookiename",name); //新建cookie,名字,值

 c.setMaxAge(24*3600);
response.addCookie(c);

//客户端代码 //获取浏览器访问访问服务器时传递过来的cookie数组
Cookie[] cookies = request.getCookies();
//如果用户是第一次访问,那么得到的cookies将是null
if (cookies!=null) {
out.write("您上次访问的时间是:");
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
if (cookie.getName().equals("lastAccessTime")) {
Long lastAccessTime =Long.parseLong(cookie.getValue());
Date date = new Date(lastAccessTime);
out.write(date.toLocaleString());
}
}
}else {
out.write("这是您第一次访问本站!");
}

  7、session:HttpSession的实例,代表了一次会话。

    (1)一次会话:指客户端浏览器连接服务器开始,到客户端浏览器与服务器断开连接为止,就是一次会话。

    (2)  常用方法:

setAttribute(String name,Object value)

getAttribute(String name)

      (3)注意:

          session存在的目的主要是说为了保存与用户会话状态相关的信息。如果仅仅为了两个页面之间交换信息的话,可以将数据保存在request中进行传递。

          而且要求session的属性值必须是序列化的对象,否则保存会出现错误。

   

jsp (1)的更多相关文章

  1. Servlet+JSP(三):第一个Web程序

    Servlet+JSP(三):第一个Web程序在学习了服务器并成功安装后,我们知道当浏览器发送请求给服务器后,服务器会调用并执行对应的逻辑代码进行请求处理.逻辑代 码是由程序员自己编写然后放进服务器进 ...

  2. Jsp(3):内置对象和四种域对象的理解

    由来:在jsp开发中,会频繁使用到一些对象 .例如HttpSession,ServletContext,ServletContext,HttpServletRequet.所以Sun公司设计Jsp时,在 ...

  3. JavaWeb学习笔记之JSP(二)

    1.1.  JSP的指令: 1.   什么是JSP 指令? JSP 指令: JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出, 而只是告诉引擎如何处理JSP页面中的 ...

  4. JavaWeb学习笔记之JSP(一)

    1. JSP: 1.1. 为什么需要 JSP ? 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,但是其中的静态网页内容也需要程序员使用Java语言来进行输出,这就造成了大量代码的冗余 ...

  5. JSP(一)

    开宗明义:JSP本质上就是一个Servlet scriplet JSP 变量和函数的声明 局部变量 <% int a = 3;> 全局变量和函数 <%! int a = 3;> ...

  6. Java基础——JSP(一)

    一.JSP的由来 在很多动态网页中,绝大多部分内容是不变的,只有局部内容需要动态产生和改变.例如, 一个新闻的浏览次数,只有这个次数是动态改变的,而Servlet程序返回客户端的代码全是java程序动 ...

  7. 什么是JSP (转)

    http://blog.csdn.net/javaloveiphone/article/details/7937170 一.什么是JSP(JavaServer Pages),原来是没有jsp的,只有s ...

  8. Java Web学习总结(8)JSP(二)

    一,JSP中的九个内置对象 名称 类型 描述 out javax.servlet.jsp.JspWriter 用于页面输出 request javax.servlet.http.HttpServlet ...

  9. Java Web学习总结(7)JSP(一)

    一,JSP基础语法 1,JSP模板元素 JSP页面中的HTML内容称之为JSP模版元素. JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 2,JSP脚本片段 JSP脚本片断(scrip ...

随机推荐

  1. 启动Tomcat的时候8080被占用

    异常来源:启动Tomcat服务器报错: Several ports (8080, 8009) required by Tomcat v7.0 Server at localhost are alrea ...

  2. babel (二) update to v7

    一.rootmode In 7.1, we've introduced a rootMode option for further lookup if necessary. 二.Remove prop ...

  3. Day 3-5 装饰器

    开放-封闭原则: 封闭:已实现的功能代码块不应该被修改. 开放:对现有功能的扩展开放. 装饰器: 定义:在符合'开放-封闭'的原则下,给程序扩展其他的功能! 例:在不更改tokyo函数的情况下.给to ...

  4. RedHat Enterprise Linux 6.4使用yum安装出现This system is not registered to Red Hat Subscription Management

    我虚拟机安装的系统是RedHat Enterprise Linux 6.4-i686,是32位的.使用yum命令安装软件时候出现以下错误: This system is not registered ...

  5. 莫烦theano学习自修第一天【常量和矩阵的运算】

    1. 代码实现如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ # 导入numpy模块,因为numpy是常用的计算模块 import numpy as ...

  6. 洛谷P3389 【模板】高斯消元法

    P3389 [模板]高斯消元法 题目背景 Gauss消元 题目描述 给定一个线性方程组,对其求解 输入输出格式 输入格式: 第一行,一个正整数 n 第二至 n+1行,每行 n+1 个整数,为a1​,a ...

  7. linux-shell系列5-统计

    #!/bin/bashshow=$(service --status-all 2>/dev/null | grep -E "is running|正在运行"|awk '{pr ...

  8. base64URL处理

    加密 String str="hello world"; String encode= Base64.getUrlEncoder().encodeToString(str.getb ...

  9. ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接

    socket服务端在接收socket客户端时抛出异常 ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接. socket服务端代码 ...

  10. 【XSY2707】snow 线段树 并查集

    题目描述 有\(n\)个人和一条长度为\(t\)的线段,每个人还有一个工作范围(是一个区间).最开始整条线段都是白的.定义每个人的工作长度是这个人的工作范围中白色部分的长度(会随着线段改变而改变).每 ...