Jsp

Jsp 全名为 java server pages,中文名java服务页面,其根本是一个简化的servlet 设计,它是有sun microsystems 公司倡导、许多公司一起建立的一种动态网页技术标准。

    特点:本质行还是Servlet

        跨平台,一次编写处处运行

        组件跨平台

        健壮性和安全性

tomcat 只认识servlet,在项目中的jsp 文件 需要经过tomcat内部 接收 并转成servlet文件(底层 为Jspservlet引擎,吧jsp文件读取,经过jspservlet 的I/O流操作,读出来时  为servlet 文件)

 

JSP的三种注释:

        符号:<%--      --%>

    1.前段语言注释:会被转译,也会被发送,但是不会被浏览器执行。

    2.java语言注释:会被转译,但是不会被servlet 执行

    3.jsp 注释:不会被转译

 

JSP的page指令学习:

    <%@page 属性名=“属性值” 属性名=“属性值”....%>

language:声明jsp 要被转译的语言。

import:声明转译的java文件呀导入的包,不同的包会用逗号隔开。

pageEncoding: 设置jsp 文件的数据编码格式;

contentType="text/html;charset=utf-8" :设置jsp数据响应给浏览器时,浏览器的解析和编码格式;

session:     设置转译的servlet中是否开启session支持,默认开启,true表示开启,false表示关闭。

errorPage:设置jsp 运行错误跳转页面。

extendPage:设置jsp转译的java文件要继承的父类(包名 + 类名)。

   以上 作用:配置jsp文件的转译相关的参数。

Jsp局部代码块:

    特点:局部代码块中声明的java代码会原样转译到jsp对应的servlet文件的_JspService方法中

    代码块中声明的变量都是局部变量

使用:<%   java代码 %>

    缺点:使用局部代码块在jsp 中进行逻辑判断,书写麻烦,阅读困难。

        所以逻辑代码一般用servlet处理。

开发使用:使用servlet 进行逻辑处理,使用jsp进行页面展现。

 

全局变量:    

            特点:声明的java 代码作为全局代码转译到对应的servlet类中。

            使用:<%! 全局代码  %>

        注意:全局代码块声明的代码,需要使用局部代码块调用;

 

Jsp脚本端语句:

        特点:帮助我们快速获取变量或者方法的返回值作为数据响应给浏览器;

        使用: <%=变量名或者方法%>

        注意:不要在变量名或方法后 加分号;   ;   

 

Jsp的静态引入和动态引入:

   静态引入:

            使用:<%@include file="要引入的jsp文件路径" %>

            特点:会将引入的jsp和当前的jsp文件转译成一个java文件使用。在网页中也就显示了 合并后的显示。

            注意:静态引入 引入的jsp 文件不会单独转译成java(Servlet)文件,在tomcat 的work中可查看_jsp.java 文件查看。

                        当前文件和静态引入的jsp 文件中不能够使用 java 代码块声明 同名变量。

                        如 int a = 2; String a ="haha"; 也不行,因为变量下需要内存地址,而内存地址和变量相关,和变量类型无关。(如门牌号)

动态引入:

        使用: <jsp:include page="要引入的jsp文件路径"></jsp:include>

        特点:会将引入的jsp文件单独转译,在当前文件转译好的java文件中调用 引入的jsp 文件的转译文件,在网页中也就显示了 合并后的显示。

        注意:动态引入 允许文件中 声明同名变量;因为动态  相当于 两个文件。

        优点:降低jsp代码的冗余,便于维护升级;

Jsp的转发标签:

        使用:<jsp:forward page="要引入的jsp文件路径"></jsp:forward>

        特点:一次请求,地址栏信息改变

        注意:

                    在转发标签的两个标签中除了写<jsp:param value="aaa" name="str"/> 子标签不会报错,其他任意字符都会报错

                     name属性为附带的数据的健名

                     value为附带的数据内容                ,会将数据以?的形式拼接在转发路径的后面。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page errorPage="error.jsp" %>
  
 <html>
 	<head>
 		<meta charset="utf-8"/>
 	</head>
 	<body>
 		<h3>jsp基本语法学习</h3>
 		<hr />
 		<%
 		//java语言
 		String str = "jsp逻辑代码块很麻烦";
 		int a = 2;
 		if(a>2){
 			%>
 		<b>jsp真的很简单</b>
 			
 			 
 	<%	}else{	%>
 		 <i> <%= str %></i>
 		 <%test();} %>
 		 
 		 
 		 <!-- 全局代码块 -->
 		 <%!
 		 	int b = 5;
 		  public void test(){
 			  System.out.println("全局代码块");
 		  }
 		 %>
 		 <!-- jsp的静态引入 -->
 		 <%@include file="includeStatic.jsp" %>
 		 <!-- jsp的动态引入 -->
 		 <jsp:include page="includeActive.jsp"></jsp:include>
 		 <!-- 转发标签的引入 -->
 		 <jsp:forward page="fowword.jsp">
 		 <jsp:param value="aaa" name="str"/>
 		 </jsp:forward>
 		 
 	</body>
 </html>

 

转载于:https://my.oschina.net/u/3788977/blog/2120468

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值