概述

动态网页技术与JSP优势


JSP中调用java代码

JSP三种基本动态技术元素:表达式、声明、脚本

表达式

目的是将一些动态的信息显示到页面的最终输出结果中
语法: <%= 变量或表达式 %>

声明

用于定义变量、方法、类、静态初始块(通常只在声明部分定义变量及方法)
语法:<% ! 变量定义或方法定义 %>

脚本

JSP动态生成网页的核心部分,可以利用java语言的三大结构生成不同的页面元素
语法:<% 脚本内容 %>

注释

语法:<% – 注释信息 – %>

JSP指令

page指令

可以控制类的导入、内容类型等设置,通常放置在JSP的开始位置
语法:<%@ page 属性名1=“属性值1” […属性名n=“属性值n”] %>

  • import属性 <%@ page import=“类的相对路径” %>
  • contentType与pageEncoding 标明发送到客户程序的文档MIME类型 <%@ page contentType=“text/html;charset=UTF-8” %> (两者配合使用) 单独设置字符集的话 <%@ page pageEncoding =“字符集” %>
  • language 指定页面使用的脚本语言 默认是java
  • errorPage 本页面加载错误时跳转的哪一个界面
  • isErrorPage 表明为错误显示界面
  • isELIgnored 是否解析JSP语言表达式
  • 其他:session、buffer等

include指令

将属性file所指向的文件包含到当前JSP页面中(一般用于相同的头或者页脚显示,减少代码量)
语法:<%@ include=“被包含的文件名(jsp页面)” %>

JSP动作

JSP动作通常是在向JSP页面发送请求时才会执行的操作,也就是说它是在页面请求期间执行的,这也是JSP动作与JSP行为的本质区别

jsp:include动作

jsp:include动作与include指令类似 不同是他可以传递参数
语法:< jsp:include page=“被包含的文件路径(绝对或相对)”/ > 或
< jsp:include page=“被包含的文件路径(绝对或相对)”>

< jsp:param name=“参数名” value=“参数值” / >

< / jsp:include >
不同:

jsp:forward动作

作用是转发请求,如果用户请求中包含提交的数据,数据也将一块被转发(只能转发到站内文件)
语法:语法:< jsp:forward page=“转发目标页面”/ > 或
< jsp:forward page=“转发目标页面”>

< jsp:param name=“参数名” value=“参数值” / >

< / jsp:forward >

jsp:plugin动作

在网页中嵌入applet(基本上已经弃用)或javaBean
语法:< jsp:plugin code=“插件实现最顶级类文件” codebase=“插件类根目录”
type=“插件类型” width=“宽度” height=“高度” />
< jsp:fallback>替换文字< / jsp:fallback>
< / jsp:plugin>

JSP隐含对象

request

一个请求对象,它包含了用户发起请求所包含的所有应用数据。
常用方法:

  • 取得/设置指定参数——request.getParameter()/setAttribute()
  • 取得指定数组参数——getParameterValues()
  • 取得URL参数字符串——getQueryString()
  • 取得指定名称——getParameterNames()
  • 请求参数中文处理——request.setCharacterEncoding(“UTF-8”)
  • 取得session——request.getSession();
  • 取得请求头部信息
  • 取得客户和主机信息

response

代表请求的相应对象。
常用方法:

  • 设置Content-Type——response.setContentType(“text/html;charset=utf-8”);
  • 发送错误相应至客户端
  • 重定向——response.sendRedirect();
    当使用Redirect跳转Servlet时,跳转实在客户端实现的,也就是说客户端浏览器实际上请求了2次服务器,第1次获取了重定向状态码与重定向的网址,第2次访问真实地址。

session

保存当前会话信息
常用方法:

  • 取得/设置指定参数——session.getAttribute()/setAttribute()

out

out对象向相应中输出指定信息

  • 输出信息——out.print()

java Bean在JSP中应用

语法:头部添加标签
< jsp:useBean id=“引用名称” scope=“session|request|page|application”
class=“完整类名”
|beanNane=“Bean名称”|type=“对象类型” />
获取和设置属性
< jsp:setProperty name=“Java Bean实例名(上面的id)” property=“属性名” value=“待设值”|param=“参数名称” />
< jsp:getProperty name=“Java Bean实例名(上面的id)” property=“属性名” />

Servlet基础

servlet功用

  • 读取客户端发送的显示数据或者对客户端发送的数据进行预处理
  • 读取客户端发送的隐含数据
  • 生成结果
  • 向客户发送显示数据
  • 发送隐含的相应数据

servlet生成html

response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
writer.print( JSONObject.toJSONString( result ) );//打印一行数据到当前请求界面
writer.flush();
writer.close();

Servlet处理客户请求

读取客户请求参数

与JSP操作request一致
可以操作session

 HttpSession session = request.getSession();session.setAttribute("user", user);session.getAttribute("user");

跳转:

(1) 转发:

//request可以添加参数
request.getRequestDispatcher("路径").forward(request,response);

(2)重定向

response.sendRedirect("路径");

(3)直接输出返回到ajax中(注意使用ajax请求的才可以,然后由ajax进行界面跳转)

response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
writer.print( JSONObject.toJSONString( result ) );//返回json格式字符串
writer.flush();
writer.close();

模型-视图-控制框架



JSP表达式语言 EL

JSP内置了EL表达式
能够以更简洁的方式显示结果,表达式语言可以访问请求或者其他作用域中的对象
功能:

  • 访问存储在不同作用域的中的对象
  • 方便的访问java Bean的属性
  • 简单的访问集合元素
  • 可以方便访问请求等隐式数据
  • 支持简单的运算符操作
  • 无需类型转换
  • 以空值取代异常
    语法:
    ${ 表达式 }

访问变量

访问java Bean的属性

首先在servlet中
request.setAttribute("user",user);
在jsp中
${ user.userName }/${ user[userName] }

访问不同作用域中的属性

当变量名一样时 request>session>application

访问集合中的变量

${ userList[0].userName }/${ userList[0][userName] }

JSTL

OGNL是Object Graphic Navigation Language(对象图导航语言)


然后在jsp中引入

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

EL与JSTL配合使用案例:

<tbody><c:forEach items="${reports}" var="report"><tr><td>${report.id}</td><td>${report.createAt}</td><td>${report.title}</td><td>${report.userId}</td><td>${report.type}</td><td>${report.states}</td><td>${report.summary}</td><%--<td><%= report.getUrl()%></td>--%><td><a href="${report.url}">下载</a></td></tr></c:forEach>
</tbody>

end

JSP与Servlet 程序设计教程相关推荐

  1. jsp与java的关系_jsp教程中:jsp与servlet的区别和关系

    jsp教程上:我们一定学了servlet,也学习了jsp,那么jsp与servlet的区别是什么呢,jsp与servlet又有什么关系呢?下面我们先创建一个demo.jsp的页面,然后tomcat运行 ...

  2. JSP/Servlet程序设计(入门书籍)

    Web开发技术 1. 静态开发技术: (1)HTML HTML是网站开发最基本的语言,是WEB的核心.所有后续的WEB开发技术都以HTML为基础. (2)CSS CSS(Cascading Style ...

  3. JSP程序设计实训(十一)——JSP与Servlet技术(一)

    JSP与Servlet技术 一.Servlet 基础知识 Servlet 是 Java Web 应用程序中的组件技术,是运行在服务器端的 Java 应用程序,实现与 JSP 类似的功能.Servlet ...

  4. Java Servlet完全教程

    本文来自Java Servlet完全教程 Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广 ...

  5. 如何查看 JSP 和 Servlet 的版本

    如何查看 JSP 和 Servlet 的版本 说明 获得 JSP 和 Servlet 的 JAR 包 JSP 的版本号 Servlet 的版本号 注意事项与附录 说明   进行这个教程之前,需要先获得 ...

  6. java jsp学习指南_JSP教程–最终指南

    java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...

  7. java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)

    前言 Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet.JDBC.EJB四部分技术.其中还有其他的9个技术规范(JNDI,) 正文 (1).Java ...

  8. servlet向ajax传递数据库,一、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)...

    背景: 目前业界很流行的MVC(model-view-control)开发模式,理解为 模型是Bean, 视图是 Html/Jsp, 控制是Servlet, 关联数据库的Dao web的运行机制: 数 ...

  9. 支持JSP和Servlet的Web服务器

    支持JSP和Servlet的Web服务器 1.Tomcat 服务器 目前非常流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型.轻量级的支持JSP和Servle ...

  10. Spring MVC JSP 表单标签教程

    在本教程中,我们将通过一个示例讨论所有与Spring MVC相关的JSP表单标签. 在本教程中,我们将使用下面重要的弹簧MVC表单标签进行讨论: 表单标签 文本字段标签 选择标签 复选框 无线电盒 密 ...

最新文章

  1. 二进制与加减乘除的物理层实现
  2. CentOS 6.5服务器安全加固及性能优化
  3. [题解]CQOI2012 T2 组装 assemble
  4. win10动态壁纸怎么设置_想把我的女朋友设置为动态壁纸:看过来,教你啊
  5. 怎样在html中实现图层重叠,javascript – 在HTML5画布中实现图层
  6. windows XP和ubuntu时间一致
  7. HTML5学习笔记(一):初步印象
  8. 《浪潮之巅》完全系类——IT人士必读经典
  9. Kotlin — 竞技程序设计(类似天梯训练)
  10. JavaScript笔记(展开的层)-4
  11. Jira 破解版 Docker 部署
  12. 华为手机照片 计算机,教你华为手机怎么传照片到电脑上去
  13. NovelAI-WebUI安装教程
  14. .Net FW上线报错:The OwinStartup attribute discovered in assembly ‘AppName‘.
  15. 免费优惠券机器人搭建
  16. ctfshow--ssrf
  17. 截图工具(窗体永远前置)
  18. 城市云脑研究之三,人工智能在城市云脑建设中的地位与作用
  19. Three.js凹凸贴图bumpMap和法线贴图.normalMap
  20. #455 科技乱炖:看完《流浪地球2》,我们为行星发动机设计了网络架构

热门文章

  1. 2022泰迪杯数据挖掘挑战赛C题方案及赛后总结:疫情背景下的周边游需求图谱分析
  2. C# MSchart图表控件安装与使用
  3. Gbase与oracle数据库的区别
  4. wps vba6.3 宏插件下载
  5. 如何学习工业机器人技术
  6. Hive安装详细教程
  7. 面向对象的oop编程思想
  8. 【控制】动力学建模举例 --> 拉格朗日法
  9. python 笔记:h5py
  10. ElasticSearch SQL 日期函数