1.概述

JSP全民Java Server Pages,中文可译Java服务器页面,本质是一个简化的Servlet设计,它是由是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。

特点:跨平台既可以在Linux上也能运行在Windows上。类似于ASP技术,在传统的HTML页面插入Java程序段、JSP标签,从而形成JSP文件,后缀名为(*.jsp)

2.一个简单的Hello

新建Dynamic Web Project 项目名取jspInro

我们再web目录下新建一个hello.jsp,使用Tomcat运行,访问网页

http://localhost:8080/jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1" import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>hello JSP</title>
</head>
<body>
<%out.println("Hello World!");
%>
<br>
<%=new Date().toLocaleString() %>
</body>
</html>

<%@page为jsp的page指令,contentType设置编码,相当于response.setContentType ,pageEncoding表示jsp文件中出现了中文,这些中文将使用的编码方式,import则是导入类,导入多个类彼此用,逗号隔开

3.JSP的页面元素

jsp由7种页面元素组成:

1).静态内容

就是html,css,javascript等内容

2).指令

以<%@开始%>结尾,比如<%@page import="java.util.*"%>

3).表达式

用于输出一段html

4).Scriptlet

在<%%>之间,可以写任何java代码

5).声明

在<%!%>之间可以声明字段或者方法。但是不建议这么做

6). 动作
<jsp:include page="Filename" > 在jsp页面中包含另一个页面。

7). 注释 <%-- -- %>
不同于 html的注释 <!-- --> 通过jsp的注释,浏览器也看不到相应的代码,相当于在servlet中注释掉了

4.常用知识点

上述例子中<%=%>和<%out.println()%>

out是jsp的隐式对象,可以直接使用(jsp中有9大隐式对象)

判断语句

If...else块

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%! int day = 3; %>
<h3>IF...ELSE 实例</h3>
<% if (day == 1 | day == 7) { %><p>今天是周末</p>
<% } else { %><p>今天不是周末</p>
<% } %>
</body>
</html>

循环语句

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1" import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%List<String> words = new ArrayList<String>();words.add("today");words.add("is");words.add("a");words.add("lucky");words.add("day");
%>
<table width="200px" align="center" border="1" cellspacing="0"><%! int fontSize=0; %>
<%for (String word : words) {%><tr><td><font color="green" size="<%=fontSize%>"><%=word%></font></td>
</tr><%fontSize++; %>
<%}%></table>
</body>
</html>

指令include

首先准备一个footer.jsp

<hr>
<p style="text-align: center">copyright@2018</p>

通过指令

<%@include file="footer.jsp" %>

在hello.jsp中包含该页面

<body>
<%out.println("Hello World!");
%>
<br>
<%@include file="footer.jsp" %>
</body>

通过动作<jsp:include page="footer.jsp">页面显示结果一样,但其中的区别是

如果是指令include,footer.jsp的内容会被插入到hello.jsp转译成的hello_jsp.java中,最后只会生成一个hello_jsp.java文件

如果是动作include,footer.jsp的内容不会被插入到hello.jsp转译成的hello_jsp.java中,还会有一个footer_jsp.java独立存在。hello_jsp.java会在服务端访问footer_jsp.java,然后把返回的结果,嵌入到相应中。

传参

在本例中我们在hello.jsp使用动作<jsp:include>,通过<jsp:param>带上参数

<jsp:include page="footer.jsp"><jsp:param  name="year" value="2018" />
</jsp:include>

在footer.jsp中使用request.getParameter("year")取出year

<hr><p style="text-align:center">copyright@<%=request.getParameter("year")%>
</p>

跳转

和Servlet的跳转一样,jsp的跳转分服务端跳转和客户端跳转

客户端跳转response.sendRedirect("hello.jsp");

服务端跳转request.getRequestDispatcher("hello.jsp").forward(request.response);

或者使用动作,简化代码<jsp:forward page="hello.jsp">

cookie

一般在运用于登陆,很多网站登陆会出现一个选项,问你是否要一周内或者一个月保持登陆状态,如果选择了,那么一周之内,都不需要再输入账号密码,这个功能,就是靠cookie来实现的

cookie是一种浏览器和服务器交互数据的方式。Cookie是由服务器端创建,但是不会保存在服务器。创建好之后,发送给浏览器。浏览器保存在用户本地。下一次访问网站的时候,就会把该Cookie发送给服务器。

在web目录下创建一个文件setCookie.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
<%Cookie c = new Cookie("name", "Green");c.setMaxAge(60 * 24 * 60);c.setPath("127.0.0.1");response.addCookie(c);
%>
<a href="getCookie.jsp">跳转到获取cookie的页面</a>

创建了一个cookie,名字是name值是"Green"

cookie可以保留一天,如果是0,表示浏览器一关闭就销毁

path表示服务器的主机名,只有浏览器通过这个主机名访问服务器的时候,才会提交这个cookie到服务端

在web目录下创建一个getCookie.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%><%Cookie[] cookies = request.getCookies();if (null != cookies)for (int d = 0; d <= cookies.length - 1; d++) {out.print(cookies[d].getName() + ":" + cookies[d].getValue() + "<br>");}
%>

session

session的中文翻译是会话。会话指的是从用户打开浏览器访问一个网站开始,无论这个网站中访问了多少页面,点了多少链接,都属于一次会话。直到用户关闭浏览器为止,都属于同一个会话。

创建一个setSession.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
<%session.setAttribute("name", "tmo");
%>
<a href="getSession.jsp">跳转到获取session的页面</a>

创建一个getSession.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
<%String name = (String)session.getAttribute("name");
%>
session中的name: <%=name%>

session原理示意图

禁用cookie如何使用session

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
<%session.setAttribute("name", "tmo");
%>
<a href="<%=response.encodeURL("getSession.jsp")%>">跳转到获取session的页面</a>

response.encodeURL方法会把getSession.jsp这个url转换为

getSession.jsp;jsessionid=22424AEA86ADBE89F335EEB649D997A8

通过这个方式,提交jsessionid到服务器。 服务器根据这个jsessionid匹配到对应的session. 与session相关的功能,就可以正常工作了。

session的有效期Tomcat默认配置是30分钟

我们可以通过Tomcat/cong\web.xml中的session-config配置进行调整

SSM整合篇--JSP介绍相关推荐

  1. 【学习笔记】SSM整合篇

    [学习笔记]SSM整合篇

  2. 大三东软暑期实训-SSM整合篇

    mybatis.xml已经整合到spring.xml中 诸如 <dependency><groupId>javax.servlet</groupId><art ...

  3. 超级详细!!!Spring、SpringMVC、Mybatis知识点完整版更新!IOD、DI依赖注入、Mybatis配置、SQL、MVC拦截器、Web开发、SSM整合案例。

    Spring Spring框架知识点完整版 上篇,SSM三部曲之一 知识点涵盖:Spring简介IOC控制反转DI依赖注入LombokSPEL配置文件低频知识点注解开发Spring常用注解 链接:ht ...

  4. java框架ssm整合_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

    使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没 ...

  5. SSM整合,手把手教程,详解思路讲解

    前言 一,工程创建 1.新建Maven项目,项目架构增加web支持 2.Maven本地仓库配置 3.集成Tomcat,搭建web环境 二,导入依赖 三,配置文件编写 1.web环境配置文件 2.spr ...

  6. 【Spring+SpringMVC+Mybatis】利用SSM整合,完成用户登录、注册、修改密码系统

    近年来,由于Struts2+Hibernate3+Spring3,这套SSH框架,Struts2屡次爆出安全漏洞,Hibernate就只会推行它HQL那套而越来越远离SQL查询关系数据库的本质,所以S ...

  7. SSM整合之纯注解方式,注解实现事务,异常,与拦截器

    SSM整合之纯注解方式Spring,SpringMVC,Mybatis 使用纯注解的方式,整合ssm, sql语句与数据表 在上一篇SSM整合之XML方式中有, 创建maven项目(代码中注释为详细解 ...

  8. SSM综合练习功能介绍与项目演示

    功能介绍 主要讲解maven工程搭建,以及基于oracle数据库的商品表信息,并完成SSM整合. 商品查询 基于SSM整合基础上完成商品查询,要掌握主面页面main.jsp及商品显示页面product ...

  9. 阿里开发规范文档_华为阿里等技术专家15年开发经验总结:SSM整合开发实战文档...

    前言 Spring自2002年诞生至今,已有近20年的历史,虽然几经变迁,但始终在继续发展和精进.Spring目前由Pivotal维护和开发. Pivotal是PaaS(平台即服务)的领导者,也是消息 ...

  10. ssm如何在mapper插入实时的时间_第一个ssm整合

    刚学完狂神说的ssm框架,花了两天时间把狂神的ssm整合项目写完 狂神视频 实现功能 bilibili视频地址 基本骨架 1.环境 IDEA MySQL 8.0 Tomcat 7 Maven 3.6 ...

最新文章

  1. 批处理技巧:循环固定目录的子目录,然后向每个子目录拷贝文件
  2. 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法
  3. UVa11292 - Dragon of Loowater(贪心)
  4. leetcode 35 Search Insert Position(二分法)
  5. android权限 启动失败,Android 6.0打开失败:EACCES(权限被拒绝)
  6. 卸载centos7自带mysql_centos7完全卸载mysql
  7. 分享Silverlight/WPF/Windows Phone一周学习导读(11月6日-11月12日)
  8. vmware player 坑
  9. nds模拟器电脑版使用教程
  10. 推进牛仔服装的高质量发展
  11. 10、【易混淆概念集】-第六章1 三点估算 类比估算和参数估算的区别 储备分析 历时估算 项目进度网络图
  12. 国二c语言编程题只看结果吗,全国计算机二级C语言上机考试运行和编译都可以,但是运行出的结果和题目要求的结果不一样...
  13. 代码自动生成-宏带来的奇计淫巧
  14. (附源码)springboot民宿网站 毕业设计 221901
  15. c#:判断一个数组元素中否有重复元素
  16. 格子广告+php,GitHub - liujijun95/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...
  17. [高数][高昆轮][高等数学上][第一章-函数与极限]01.映射与极限
  18. nios自学笔记三:nios常用外设C函数整理
  19. macOS安装brew和使用brew
  20. Windows中的工作组和域

热门文章

  1. 视频flv转mp4最快的几种方法(就是不用格式工厂)
  2. 江苏工匠杯easyphp
  3. 将.bat文件设置为Window系统开机自启动项
  4. hdu 4939 Stupid Tower Defense 2014多校七 DP
  5. matlab中计算最大利润,最大利润问题
  6. 19寸宽屏液晶显示器的设置 有效保护视力
  7. 软件架构师应具备的十大特点
  8. 为您创建完美商业标识的 10 款 Logo 设计软件 【已翻译100%】
  9. CoreML ARKit3
  10. Paxos算法的一个简单小故事