jsp入门学习

	jsp三种的注释:
//		前端语言注释:
被转移是指在编译成.class文件时会不会被转移执行
			会被转义,也会被发送,但是不会被浏览器显示
		
	java语言注释:
		<!--写注释-->
		会被转义,但不会被servlet执行
	
	jsp注释
	<%-- 注释--%>
		不会被转义(把普通注释的!改为%,前后都有%)
	
java 中的注释不会被执行 -->






  <%-- jsp注释    jsp的page 指令学习 	<%@page 属性名="属性值" 属性名="属性值"...%>
	language, 声明jsp要被转移的语言是Java语言 	import:声明转义的Java文件要转移的包 	pageEncoding
 :设置的是当前jsp保存的编码格式为 utf=8 	contextType : 设置响应格式
 	jsp转成servlet时默认时支持session的,  	session :
 设置转义的servlet中是否开始session支持,默认是true。支持 	errorPage="error.jsp"
 ,编译不错,执行报错,会跳转到error.jsp页面 	extends : 设置jsp在转义的Java文案金要继承的父类(包名+类名)
 	高版本的jsp把pageEncoding 和contextType的格式合成一个pageEncoding
 	当一按保存就把文件的格式保存为ios8859-1,但是jsp底层的格式是utf-8所以会出现乱码

jsp的局部代码块,需要进行声明,不需要转义,原样发送
	特点: 局部代码块中声明的Java代码会被原样转义到jsp对应的servlet文件的_jspService 方法中
		代码块中声明的变量都是局部变量
		使用 :<% java 代码 %>
	
	缺点:
		使用局部代码快的缺点,抒写麻烦,阅读困难
	开发:servlet进行逻辑请求处理,使用jsp进行页面展现
	
	jsp的全局的代码块,声明全局变量,可以定义方法
	特点: 声明的Java代码作为全局代码转义到对应的servlet类中
	注意:
		使用全局的代码块,调用时使用局部代码块调用

	jsp的脚本端语句:
		特点:帮助我们快速的获取变量或者方法的返回值作为数据响应给浏览器
		使用:<%=变量名/方法名>
		注意,不要再变量名|方法名后使用分号
		位置: 出jsp 的page 指令外的任意html中的
		
	Jsp的静态引入:
	把静态进入的页面和当前页面合成一个 转换为一个servlet
	<%@ file = "要引入的jsp的文件的路径"%>
	注意:静态引入的jsp不会单独转换为java(servlet)文件
		 当前文件和静态引入的jsp文件中不能够使用java代码块声明的同名变量
		在静态引入时报Duplicate local variable path,是可能因为有变量名冲突
		把两行Java代码删除
	
	jsp的动态引入:
	<jsp:include page = "动态引入的jsp的路径"> </jsp:include>	 
	特点: 会将引入的jsp文件进行单独的转义,当前文案金转义好的Java文案金中调用
	引入的jsp文件的转移文件 
	在网页中显示合并后的显示效果
	注意:
		动态引入的文件中可以使用同名变量
	优点:降低了jsp的代码冗余
	
	jsp的转发
	<!-- jsp的转发  forward.jsp-->
	一次请求,地址不该
	page=相对路径
	这句化不能有空格
	<jsp:forward page="forward.jsp"></jsp:forward>
	错误
	<jsp:forward page="forward.jsp"> </jsp:forward>
	在转发标签的两个标签中间处理写<jsp:param value="str" name="aaa"/>
	子标签不会报错,其他任意字符都会报错
	会把这个子标签的内容添加后流转给forward.jsp
	取值: html中的内容相当于时Java中的service方法中的,
	可以直接使用request对象进行取值
	<%=request.getParameter("str")%>
	注意: 会将数据以?的形式拼接在转发路径的后面
	
	jsp中 的九大内置对象:
		内置对象
	html中的内容相当于service中的方法
	 注意: 内置对象在jsp页面中使用,使用局部代码块,或者脚本段语句 来使用, 
	 不能再全局代码块中使用,
	 局部代码块再service方法中 局部代码块,相当于servlet中的一个普通的方法
	 <%=request.getParameter("str")%> 是脚本段
	
	内置对象:
		pageContext 页面上下文对象,封装了剩下的8个对象
		一个jsp有有一个pageContext对象
		请求执行pageContext 对象就会被销毁,作用域是当前jsp
		request
		session
		application  = servletContext
		response: 可以设置向应头,重定向
		out :响应对象,jsp内部使用,带有h缓冲取的对象,效率高于response对象,但是不能设置响应头
		page = 当前对象 本身 java中的this
		exception :异常对象,存储了 当前运行时的异常信息
			注意:使用此对象,需要在page 中使用属性对象 isErrorPage="true"开启
		config = ServletConfig

Session: 一次对话,一个用户的不同请求数据共享,将数据从一次请求转发给其他请求

Application 项目内: 不同的用户的数据共享问题,将数据从一个用户流转给其他用户

jsp的路径: 在jsp中的资源路径可以使用相对路径,但是 问题一: 资源的位置不可以随意更改, 问题二:
在jsp中写绝对路径 /项目名/jsp名 这里的/代表了服务器的根目录,相当于localhost:8080

	解决:
	1、可以使用绝对路径(重点)
	比如说 a.jsp 调用 b.jsp,如果写相对路径 ,当a.jsp的路径变动时,b.jsp 相对与
	a.jsp的路径也就改变了
	2、使用jsp中的 自带的全局路径声明
		<%
		String path = request.getContextPath();
		String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
		%>
		
		作用: 自动给资源前面添加项目路径,使用时,直接写资源名

http://127.0.0.0:8080/虚拟项目名/项目

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isErrorPage="true" %>

 --%>
 <!-- <b></b> -->


<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!-- 实际上是Java代码 -->
<html>
	<head>
		<title>jsp的基本语法学习</title>
		<meta charset="utf-8">
	</head>
	<body>
		<h3>jsp的基本语法学习</h3>
		<hr/>
		<%
			//声明Java的代码域 , a大于3 输出jsp学习
			String str = "jsp中使用java,阅读性差";
			int a= 2;
			if(a>3){
				
			
		%>
		<b>jsp学习</b>
		<% } else {%>
			<i>jsp中使用java,阅读性差</i>
			<i><% out.write(str); %></i>
			<!--一个标签的内容时局部代码中的一个字段  -->
			<i><%=str %></i>
		<% test(); } %>
		
		<!-- 全局代码块 -->
		<%! 
			public void test(){
			System.out.println("全局代码块");
		}
		
		%>
		<!-- jsp的静态引入 -->
		<jsp:include page="include.jsp"></jsp:include>
		<%@ include file ="includeActiv.jsp" %>
		
		<!-- jsp的转发  forward.jsp-->
		<jsp:forward page="forward.jsp"></jsp:forward>
		
		<!--把这个数据str流转给 forword.jsp  -->
		<jsp:forward page="forword.jsp">
			<jsp:param value="" name=""/>
			<jsp:param  name="aaa" value="str" />
			<jsp:param value="bbb" name="key"/>
		</jsp:forward>
		
		
		
		<!-- jsp中的九大内置对象 -->
		<% 
		//获取请求数据 , ?str=666 可以 相当于 request.setAttribute("str","666")
		String s = request.getParameter("str");
		request.getAttribute("str");
		%>
		<%=s%>
		<!-- 重定向 -->
		<%response.sendRedirect("1.jsp"); %>
		
	</body>
</html>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值