什么是jsp?

中文名java服务器页面,本质是一个servlet

jsp访问流程

浏览器发送请求,请求jsp时,服务器会先去项目下找有没有*.jsp的servlet,找不到的情况下去tomcat服务器根目录下找,会找到一个jspServlet(jsp引擎),jspServlet把*.jsp转译成一个servlet,进行处理请求并响应




java jsp 转化html jsp转成html_html转jsp


java jsp 转化html jsp转成html_java jsp 转化html_02


page指令的属性及作用

Language:声明被转译的语言

import:导包(多个包用逗号隔开)

pageEncoding:声明jsp保存的编码格式

contentType:声明响应的编码格式

session:开启session(默认值为true开启session,值false时不开启session)

errorPage:发生异常时要跳转的页面

isErrorpage:开启异常对象的使用


<%@page language="java" import="java.util.*" session="true" pageEncoding="utf-8" %>
<%@ page contentType="text/html; charset=utf-8"errorPage="error.jsp" isErrorPage="true" %>


jsp的局部代码块和全局代码块和脚本段语句


<% int count=1; %>>//局部代码块
<%! int i=6; %>//全局代码块
<%= i %>//脚本段语句


局部代码块声明和全局代码块声明的区别

局部代码块:书写的java代码jsp转译到方法中,书写的变量是局部的,不能书写方法

全局代码块声明声明:jsp转译后,在jsp中书写的变量是全局的,可以书写方法

jsp中的注释及区别


<%-- --%>//jsp本身注释,不会被转译
<html>
	<head>
		<style type="text/css">
			/*CSS注释*/ 会被转译并响应到浏览器
		</style>
	</head>
	<body>	
		<!--html注释-->会被转译并响应到浏览器
		<script type="text/javascript">
			//js注释 会被转译并响应到浏览器
		</script>
	</body>

</html>
<%//java注释 %>//会被转译不会响应到浏览器


静态引入和动态引入的标签


<%@include file="my.jsp"%>//静态引入
<jsp:include page="my.jsp"></jsp:include>//动态态引入


静态引入和动态引入的区别

静态引入:转译后把资源与本身jsp进行合并成一个servlet

动态引入:转译后资源jsp单独生成一个servlet,当前jsp生成的servlet中调用资源生成的servlet

jsp的forward标签


<jsp:forward page="login.jsp"></jsp:forward>//请求转发(开始标签和结束标签之间不能有空格,否则报下面的500错误)


java jsp 转化html jsp转成html_jsp 删除html标签_03


jsp的九大内置

PageContext:上下文对象,封存了另外8大内置对象

Request:封存了用户请求相关的数据

Respone:封存了服务器的响应数据

Session:解决了同一用户之间不同请求的数据共享问题

Application:servletContext对象,解决了不同用户之间的数据共享问题

Config:servletConfig对象 完成资源的初始化

Out:把数据响应到客户端,使用了缓存技术,比response效率块

Exception:异常对象,封存了异常信息

Page:转译后文件的对象

Servlet中请求转发和重定向路径中第一个斜杠的含义

请求转发第一个斜杠:表示项目根目录

重定向路径第一个斜杠:表示服务器根目录

jsp中的路径的第一个斜杠的含义

jsp中的路径的第一个斜杠表示服务器根目录

jsp中的basePath设置的作用

在myeclipse中设置basePath时会默认给每个资源路径加上项目根路径(在写相对路径时其实写的是绝对路径,注意不能在设置basePath不能写绝对路径,否则报404错误)


<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> //basePath值为项目根路径
<base href="<%=basePath%>">//给每个资源路径加上项目根路径