JSP
JSP概述
动态网页,希望在浏览器页面中编写Java代码,简化Servlet
举例:
@ page import="java.util.Date" %>-- Created by IntelliJ IDEA. --%>@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>indextitle> head> <body> Date date = new Date(); System.out.println(date); %> hello java_web body>html>
JSP可放置在web应用除了WEB-INF中的任何目录下
JSP本质上是一个Servlet
JSP页面的9个隐含对象
PageContext pageContext = null; 配置页面上下文,可从该对象获取到其他八个隐含对象,也可获取到其他信息(自定义标签时使用);
HttpSession session = null;
ServletConfig config = null; 使用时需要映射jsp,同servlet
ServletContext application = null;
JspWriter out = null; 调用out.println(),可把字符串打印在浏览器页面上;
Object page = this; 指向当前JSP对应的Servlet对象的引用,几乎不使用;
request;
response,几乎不会使用。
使用编写代码在此位置,可用到这八个隐含对象(实际上还有exception隐含对象)
exception使用需要一定的条件,要有声明
隐含对象不需要声明即可使用
jsp换行可通过换行,可嵌套至html中
JSP指令
定于一网页依赖属性,比如脚本语言、error页面、缓存需求等
一个JSP页面可包含多个page指令
语法格式:
@ page attribute="value" %>
相关属性:
包含其他文件被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
指令格式:
@ include file="文件相对 url 地址" %>
引入标签库定义。JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。
Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
指令格式:
@ taglib uri="uri" prefix="prefixOfTag" %>
JSP页面的请求的转发和重定向
本质区别:请求的只发出一次请求,重定向多次请求
转发
request.getRequestDispatcher("other.jsp").forward(request, response);
重定向
response.sendRedirect("other.jsp");
JSP域对象及其属性有关的方法
解决中文乱码问题
page指令字符编码集要支持中文
post请求request之前设置页面编码格式
request.setCharacterEncoding("UTF-8");
GET请求tomcat有问题
重新配置tomcat