一 JSP

JSP 是Java Server Pages的缩写,在传统的网页HTML文件中加入 Java 程序片段和JSP标签就构成了JSP网页.

1 JSP与Servlet的生成方式

  Servlet首先被编译成class文件,然后被服务器调用

  JSP首先被转换为Servlet(java文件),然后在被编译为class文件,最后由服务器调用。

查看%/tomcat8\work\Catalina\localhost下项目中的jsp对应的Servlet的 java,class文件

2 JSP 九种内置对象

  • request,请求对象
  • response,响应对象
  • pageContext,页面上下文对象
  • session,回话对象
  • application,应用程序对象
  • out,输出对象
  • config,配置对象
  • page,页面对象
  • exception,异常对象

需要注意内置对象的对象名要书写正确,在java语言中是对大小写敏感的。

request

  request对象  代表客户端发送过来的请求,可以获得客户端发送的一切信息,不需要new,直接就可以用了。例如获得在form填写的信息,是对常用的对象。。

response

  response对象代表的是对客户端的响应。使用response对象来组织发送到客户端的数据。在页面中需要向客户端发送数据时,直接使用out对象就可以。

<%
    response.getWriter().write("hello, ");

%>

pageContext

  pageContext对象表示页面上下文对象,一般情况下用的不是很多。

session

  session对象代表服务器与客户端建立的回话。http是无状态的协议,session用来保存客户端状态信息。

application

  application 对象负责提供应用程序在服务器运行时的一些全局信息

out

  out对象代表向客户端发送数据的对象。

config

config对象读取配置信息,与 servlet一起配合使用。

page

  page对象代表正在运行时由jsp文件产生的类对象。

exception

  exception对象代表了jsp文件运行时产生的异常对象,此对象不能再一般jsp文件中直接使用。

  只能在使用了<%@ page isErrorPage="true" %>的jsp文件中使用。

3 掌握知识

1)<%= %/> 和 out.println()的作用,与System.out.println()的区别。

JSP  Script的用法。

2)<%@page import="" %> 的作用

对于java来说,可以使用import导入相关的类和接口,如果是jsp需要使用导入标签来导入相关的类和接口。

4 获得Web项目绝对路径

String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";

二 例子

1. 第一个JSP

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";

    System.out.println("basePath" + basePath);
%>

<!DOCTYPE HTML >
<html>
<head>
<base href="<%=basePath%>">

<title>title-eee</title>
<meta charset="utf-8">
</head>

<body>

    <%
        for (int i = 0; i < 10; i++) {
    %>
    <h2>
        <%
            out.println("你好<br/>");
        %>
    </h2>
    <%
        }
    %>

</body>
</html>

  <%@ page language="java" import="java.util.*"  > 指令

  1)属性languate="java"

  声明脚本语言的种类。目前只能用java .

  2)import="包名.类名"

  需要导入的java包的类名或接口名称,下面的包在JSP编译时已经导入了,所以就不需要在知明导入了:

java.lang.*
java.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*

2 session例子

logon.jsp

<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML  >
<html>
    <body>
        <form action="logon_session.jsp">
            姓名
            <input type="text" name="userName">
            <input type="submit" value="提交">
        </form>
    </body>
</html>

logon_session.jsp

<%@page contentType="text/html;utf-8" pageEncoding="utf-8"%>

<HTML>
  <BODY>
  <%
    String Name=request.getParameter("userName");
    session.setAttribute("LogName", Name);
  %>
  你的名字"<%=Name%>"已经写入session
  <br>
  <a href='check_session.jsp'>check</a>
  </BODY>
</HTML>

check_session.jsp

<%@page contentType="text/html;utf-8" pageEncoding="utf-8"%>
<HTML><BODY>
  <%
    String yourName=(String)session.getAttribute("LogName");
    if (yourName == null)
    {
    %>您还未登录
    <%
    }else
    {
    %>
    "<%=yourName%>"已经登录
    <%
    }
  %>
</BODY></HTML>

3 application例子网页计数器

testapplication1.jsp

<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%><html>    <head><title>网页计数器</title><head><body><%  if (application.getAttribute("counter")==null)    application.setAttribute("counter","1");    else{        String strnum=null;        strnum=application.getAttribute("counter").toString();        int icount=0;        icount=Integer.valueOf(strnum).intValue();        icount++;        application.setAttribute("counter",Integer.toString(icount));        }  %>您是第<%=application.getAttribute("counter")%>位访问者!</body></html>

  尝试把页面中用到的application对象换成session对象有什么不同?结果还一样吗?

JavaWeb学习总结-03 JSP 学习和使用的更多相关文章

  1. JavaWeb 后端 <五> 之 JSP 学习笔记

    一.JSP简介 1.也是SUN公司推出的开发动态web资源的技术,属于JavaEE技术之一.由于原理上是Servlet, 所以JSP/Servlet在一起. 二.HTML.Servlet和JSP 1. ...

  2. Python学习总结 03 Plotly 学习总结

    一 Plotly 简介 Plotly是另一个免费进行数据分析和绘制图表的APP,建立在d3.js上. Plotly图可下载为SVG,EPS或PNG格式,并简单地导入到Illustrator或者Phot ...

  3. JSP 学习总结 03 核心组件 Servlet

    1 Servlet 简绍 Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生 ...

  4. JavaWeb学习总结-04 Servlet 学习和使用

    一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...

  5. JSP学习网站

    JSP学习网站 http://www.yiibai.com/jstl/ http://www.w3cschool.cc/jsp/jsp-jstl.html

  6. JSP学习笔记

    JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...

  7. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. JSP 学习二

    在基于昨天对JSP学习的基础上,今天我们来学习JSP的指令和JSP 对中文的处理. 一.JSP指令简介 JSP 指令是为JSP引擎而设计,它并不直接产生任何可见的输出,而只是告诉引擎如何处理JSP页面 ...

  9. java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象

     JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...

随机推荐

  1. .Net 异步方法加上“timeout”

    在本羊读大学的时候,Thread让本羊云里雾里,代码写的痛不欲生,真的是让本羊脑袋里很多“线”缠绕在一起. 之后,Task让本羊代码写的飞起,甚至有时候根本不需要Task的时候还是要写上,那样显得档次 ...

  2. wap端开发必须基础

    1. nitial-scale=1.0 确保网页加载时,以 1:1 的比例呈现,不会有任何的缩放. 在移动设备浏览器上,通过为 viewport meta 标签添加 user-scalable=no  ...

  3. SQLite剖析之内核研究

    先从全局的角度把握SQLite内核各个模块的设计和功能.SQLite采用了层次化.模块化的设计,而这些使得它的可扩展性和可移植性非常强.而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对 ...

  4. 东大OJ-1544: GG的战争法则

    题目描述 你在桥上看风景 看风景的人在楼上看你 明月装饰了你的窗子 你装饰了我的梦 这是GG在长坂坡发出的感叹. 三年前GG莫名的穿越到了三国时期,在这三年里他看尽了各种杀戮,心里早已麻木.GG他渴望 ...

  5. Hibernate用注解实现实体类和表的映射

    数据库mysql: 1.一对一 person50表password50表是一对一的关系: password50表中有外键 person_id person实体类: package com.c50.en ...

  6. 使用D3绘制图表(3)--添加坐标轴和文本标签

    上一篇是曲线的绘制,这样仅仅只是有一条线,完全先是不出数据想要表现的内容,于是我们要添加坐标系,添加坐标系和画线类似. 1.还是没有变化的html页面 <!DOCTYPE html> &l ...

  7. 如何在Ubuntu上配置scala教程

    Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言 .并集成面向对象和函数式变成的各种特性.这里为了学习spark特地配置了scala. 1.下载scala安装包 ...

  8. 概率DP light oj 1038

    t个数据 然后一个n 输出变成1的期望 看个数据 dp[n]代表n变成1的期望 cnt代表因子个数 pi代表因子 那么dp[n]=1/cnt*(dp[n/p1]+1)+1/cnt*(dp[n/p2]+ ...

  9. Java 日期比较以及得到前后一天

    /** * 比较两个指定时间,结果为0 表示相同,< 0 则表示第一个时间早于第二个时间 * @param firstDay * @param secondDay * @return */ pu ...

  10. 数据库开发基础 SQL Server 数据库的备份、还原与分离、附加

    认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是 一.在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点 二. ...