美文网首页
4、jsp标签

4、jsp标签

作者: bigpeng个人博客 | 来源:发表于2019-02-21 14:32 被阅读0次

1、jsp组成

jsp页面元素.png

2、注释

语法 描述
<%-- 注释 --%> JSP注释,注释内容不会被发送至浏览器甚至不会被编译
< !-- 注释 --> HTML注释,通过浏览器查看网页源代码时可以看见注释内容

3、jsp指令

JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。
jsp中有三个指令,都以<%@ 开头。分别为

  • page指令:<%@ page ... %> 定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
  • include 指令:<%@ include ... %>,包含其他文件
  • taglib指令:<%@ taglib ... %>,引入标签库

3.1、page指令

Page指令用来设置jsp页面的一些属性。一个JSP页面可以包含多个page指令。

其属性有:

属性 介绍
contentType 指定当前JSP页面的MIME类型和字符编码
import 导入java包,与类中的import类似
language 定义JSP页面所用的脚本语言,默认是Java
isELIgnored 是否忽略el表达式,设置为true则不执行el表达式
pageEncoding 指定页面的编码格式

MIME类型:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。用来设定浏览器该用什么方式来解析该文件,当文件被访问的时候,浏览器会自动使用指定应用程序来打开。

pageEncoding是jsp文件本身的编码,是指定web容器将jsp编译成java文件时采用什么编码读取jsp文件。
contentType的charset设置的编码是指服务器发送给客户端时的内容编码
如果都不存在,则默认编码为ISO-8859-1;

3.2 include指令

JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

语法:<%@ include file="文件相对 url 地址" %>

jsp页面include 导入html页面时乱码:https://blog.csdn.net/gnail_oug/article/details/51707061

3.3 taglib指令

taglib指令用来引入jsp的标签库(常用的有jstl,也可以自己定义标签库)

语法:<%@ taglib uri="地址" prefix="前缀" %>

4、java 脚本

在jsp中可以写java代码来动态的生成东西。

语法: <% java代码 %>

当使用到java中引用类型的时候需要导包

<%@ page import="entity.Emp" %>

 <%--java代码--%>
    <% int i=10;
    System.out.println(i);%>

  <%--java表达式--%>
  <%=i%>

  <%--java循环写法--%>
  <% for (int j = 0; j <5 ; j++) { %>
     <div style="color: red;"> <%=j%> </div>
  <% } %>

  <%--使用自己定义的类--%>
  <%
    Emp emp = new Emp();
    emp.setName("张飞");
    emp.setDept("蜀国");
  %>

5、表达式

表达式是将java表达式输出为String类型字符串到页面,表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。

<%= 表达式 %>

<%--使用自己定义的类--%>
  <%
    Emp emp = new Emp();
    emp.setName("张飞");
    emp.setDept("蜀国");
  %>
  姓名:<%=emp.getName()%>
  部门:<%=emp.getDept()%>
  日期:<%=new Date().toLocaleString()%>

6、申明

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。

语法:<%! java方法 %>

<%!
    public int add(int i,int j){
      return i+j;
    }
  %>
  1+1=<%=add(1,1)%>

7、jsp内置对象

jsp 中默认存在9个对象,不需要定义即可直接使用,我们称为内置对象。

对象名 含义
request httpServletRequest对象,用来封装请求的数据
response httpServletResponse对象,用来封装响应数据
out JspWriter类的实例,用来向页面输出内容
session HttpSession类的实例,用来表示当前会话
application 当前应用(一个项目产生一个application,tomcat关闭才会消失)
config jsp页面配置信息
pageContext 当前页面上下文内容(页面的所有对象)
page 当前页面,类似于this
exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

8、out对象

out对象用来输出内容到浏览器。

<%
    out.println("<h2>静夜思</h2>");
    out.println("床前明月光<br>");
    out.println("疑是地上霜<br>");
    out.println("举头望明月<br>");
    out.println("低头思故乡<br>");
    out.flush();//将缓冲区的内容输出
   
  %>

9、request对象

request为请求对象。当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。可以用来获取请求的参数,设置请求参数,转发请求,获取Cookie等操作。

方法名 作用
String getParameter(String name) 根据页面表单元素的name获取页面提交数据
String[ ] getParameterValues(String name) 获取一个页面表单组件对应多个值时的用户的请求数据
void setCharacterEncoding(String charset) 指定每个请求的编码,在调用getParameter( )之前进行设定,可以解决中文乱码问题

当为get请求时中文乱码解决方式:
name =new String(name.getBytes("ISO8859-1"), "UTF-8") ;//获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题

--1 获取数据
   获取到用户信息<br>
   用户名: <%=request.getParameter("name")%>
   密  码: <%=request.getParameter("password")%>
--2 设置编码格式
<%--当表单提交中文内容时,需要设置编码格式--%>
    <% request.setCharacterEncoding("utf-8");%>


10、response对象

response对象用于响应client请求,向客户输出信息。

作用:

  • 重定向网页
  • 设置http请求响应头信息

11、application对象

application类似于系统的“全局变量”,用于实现用户之间的数据共享。一个项目只有一个application。


image.png

应用:
统计页面访问次数

12、session

12.1 cookie

cookie指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据。

cookie的传送过程如下图所示:


cookie传送过程 image.png

编码问题

cookie 的值叧能是 ascii 字符,如果是中文,需要将中文转换成 ascii 字符形式。
可以使用 URLEncoder.encode()方法和 URLDecoder.decode()方法来进行这种转换。

cookie 保存时的编码问题
cookie 的值叧能是 ascii 字符,如果是中文,需要将中文转换成 ascii 字符形式。
可以使用 URLEncoder.encode()方法和 URLDecoder.decode()方法来进行这种转换。
e. cookie 的保存时间 cookie.setMaxAge(int seconds);  seconds > 0
浏览器会将 cookie 以文件的方式保存在硬盘上。在超过指定的时间以后,会删除
该文件。
 seconds < 0
默认值,浏览器会将 cookie 保存在内存里面。叧有当浏览器关闭乊后,才会删除。
 seconds = 0 立即删除该 Cookie
f. 删除 cookie
比如要删除一个 name 为"username"的 cookie。 Cookie c = new Cookie("username",""); c.setMaxAge(0);
response.addCookie(c);
g. cookie 的路径问题
浏览器在向服务器上的某个地址发送请求时,
会先比较 cookie 的路径不向访问的路径(地址)是否匹配,叧有匹配的 cookie,才会发送。 cookie 的路径可以通过 cookie.setPath(String path)方法来设置。
如果没有设置, 则有一个缺省的路径,缺省的路径是生成该 cookie 的组件的路径。 比如: /appname/addCookie 保存了一个 cookie,
则该 cookie 的路径就是/appname/addCookie。
规则:
cookie 的路径必须是要访问的路径的上层目录戒者是不要访问的路径相等,浏览器 才会将 cookie 发送给服务器。
一般可以设置 setPath("/appname"),表示访问该应用下的所有地址,均会发送
cookie使用示例:

<%
            //创建cookie
            Cookie cookie=new Cookie("username","james");
            //设置cookie的超时时间,单位为秒
            cookie.setMaxAge(100000);
            //将cookie响应回浏览器
            response.addCookie(cookie);

        %>

https://www.cnblogs.com/shizhijie/p/8422662.html
session即会话管理对象。
什么是会话?

image.png
  • session 存在服务器端
  • 浏览器第一次访问服务器jsp页面或servlet时生成。
  • 服务器停止或session超时时销毁,可以设置session的超时时间
  • 关闭浏览器后,再打开浏览器访问,原来那个session其实没被销毁,只是会创建一个新的session.
image.png

在web.xml中配置如下代码,设置session过期时间。
<session-config>
<session-timeout>30</session-timeout>
</session-config>

13、http请求

https://blog.csdn.net/x_iya/article/details/79774018

https://cloud.tencent.com/developer/news/396583

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

http协议特点:

  • 无连接:每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传。
  • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

http请求方式:
get:用来获取服务器上的内容,请求参数跟在url后,用?与请求隔开,多个参数间用&分割。
post:用来向服务器新增内容,可以提交的数据在请求体中。
put:向服务器修改内容
delete:向服务器删除内容

get和post区别

  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,POST方法是把提交的数据放在HTTP包的Body中.

  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

  • GET方式提交数据,相对不安全,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

  • get通常用来获取服务器资源,而post通常用来提交数据到服务器。

http请求消息
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

http请求报文

http响应消息
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

http响应消息

http 状态码

HTTP之状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求

常见状态码:

状态码 含义
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常`

更多状态码http://www.runoob.com/http/http-status-codes.html


14、对象作用范围

image.png

8、重定向和转发

https://www.cnblogs.com/xdp-gacl/p/3798347.html

相关文章

  • 5.Jsp标签

    1.Jsp标签 1.Jsp标签的作用 2. Jsp标签分类 3.Jsp内置标签 4.JSTL标签 5.JSTL使用...

  • 4、jsp标签

    1、jsp组成 2、注释 3、jsp指令 JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。...

  • 五、Jsp 标签

    1 jsp标签1.1 jsp标签的作用jsp标签作用:替换jsp脚本。 核心标签库的重点标签:保存数据:

  • jsp笔记4jsp标签

    jsp标签英文叫做jsp Action. jsp是另一种方式的servlet. 常用标签:

  • JavaWeb之JSP

    八、JSP 目录:什么是JSP、JSP原理、JSP基础语法、JSP指令、9大内置对象、JSP标签 JSTL标签 E...

  • JSP基础学习笔记(3)--JavaBean

    JSP动作标签:

  • 003.JSTL 标签库

    JSP 标准标签库(JSP Standard Tag Library)是一个 JSP 标签集合,它封装了 JSP ...

  • Jsp(四)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能...

  • javaweb之jsp标签

    1.JSP标签简介 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能...

  • Jsp

    JSP脚本和运行原理 JSP指令 JSP内置/隐式对象 JSP 标签 EL表达式和JSTL标签库使用

网友评论

      本文标题:4、jsp标签

      本文链接:https://www.haomeiwen.com/subject/xemseqtx.html