JSP与Servlet 程序设计教程
概述
动态网页技术与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(对象图导航语言)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<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 程序设计教程相关推荐
- jsp与java的关系_jsp教程中:jsp与servlet的区别和关系
jsp教程上:我们一定学了servlet,也学习了jsp,那么jsp与servlet的区别是什么呢,jsp与servlet又有什么关系呢?下面我们先创建一个demo.jsp的页面,然后tomcat运行 ...
- JSP/Servlet程序设计(入门书籍)
Web开发技术 1. 静态开发技术: (1)HTML HTML是网站开发最基本的语言,是WEB的核心.所有后续的WEB开发技术都以HTML为基础. (2)CSS CSS(Cascading Style ...
- JSP程序设计实训(十一)——JSP与Servlet技术(一)
JSP与Servlet技术 一.Servlet 基础知识 Servlet 是 Java Web 应用程序中的组件技术,是运行在服务器端的 Java 应用程序,实现与 JSP 类似的功能.Servlet ...
- Java Servlet完全教程
本文来自Java Servlet完全教程 Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广 ...
- 如何查看 JSP 和 Servlet 的版本
如何查看 JSP 和 Servlet 的版本 说明 获得 JSP 和 Servlet 的 JAR 包 JSP 的版本号 Servlet 的版本号 注意事项与附录 说明 进行这个教程之前,需要先获得 ...
- java jsp学习指南_JSP教程–最终指南
java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...
- java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)
前言 Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet.JDBC.EJB四部分技术.其中还有其他的9个技术规范(JNDI,) 正文 (1).Java ...
- servlet向ajax传递数据库,一、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)...
背景: 目前业界很流行的MVC(model-view-control)开发模式,理解为 模型是Bean, 视图是 Html/Jsp, 控制是Servlet, 关联数据库的Dao web的运行机制: 数 ...
- 支持JSP和Servlet的Web服务器
支持JSP和Servlet的Web服务器 1.Tomcat 服务器 目前非常流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型.轻量级的支持JSP和Servle ...
- Spring MVC JSP 表单标签教程
在本教程中,我们将通过一个示例讨论所有与Spring MVC相关的JSP表单标签. 在本教程中,我们将使用下面重要的弹簧MVC表单标签进行讨论: 表单标签 文本字段标签 选择标签 复选框 无线电盒 密 ...
最新文章
- 二进制与加减乘除的物理层实现
- CentOS 6.5服务器安全加固及性能优化
- [题解]CQOI2012 T2 组装 assemble
- win10动态壁纸怎么设置_想把我的女朋友设置为动态壁纸:看过来,教你啊
- 怎样在html中实现图层重叠,javascript – 在HTML5画布中实现图层
- windows XP和ubuntu时间一致
- HTML5学习笔记(一):初步印象
- 《浪潮之巅》完全系类——IT人士必读经典
- Kotlin — 竞技程序设计(类似天梯训练)
- JavaScript笔记(展开的层)-4
- Jira 破解版 Docker 部署
- 华为手机照片 计算机,教你华为手机怎么传照片到电脑上去
- NovelAI-WebUI安装教程
- .Net FW上线报错:The OwinStartup attribute discovered in assembly ‘AppName‘.
- 免费优惠券机器人搭建
- ctfshow--ssrf
- 截图工具(窗体永远前置)
- 城市云脑研究之三,人工智能在城市云脑建设中的地位与作用
- Three.js凹凸贴图bumpMap和法线贴图.normalMap
- #455 科技乱炖:看完《流浪地球2》,我们为行星发动机设计了网络架构