Jsp基本知识

JSP就是Servlet.它是一个类。最终会在访问的是编译成.class文件。
(包含指令,动作)
1.导入包 <%@ page import="包名.类1,包名.类2"%>
2.Url传值
<%String str="12"; int number=Inter.parseInt(str);%>
该数字的平方:<%=number*number%><hr>
<a href="urlp2.jsp?number=<%=number%>"> 到达p2</a>
urlp2.jsp
<% String str=request.getParameter("number");
int muber=Integer.parseInt(str);
%>
该数字的立方为:<%=number*number*number%>
3.设定字符集
<%@ page pageEncoding="编码类型(UTF-8/gbk)"%>
4.设置错误页面
<%@ page errorPage="anErrorPage.jsp"%>
在anErrorPage,jsp页面中设置<%@ page isErrorPage="true"%>
5.设置MIME类型和字符编码
<%page contentType="MIME类型;charset=utf-8"%>
例如<% contentType = "text/html; charset=UTF-8" %>
6.include指令可以在jsp程序中插入多个外部文件,可以使(jsp,html,java,文本)
<%@ include file="logo.jsp"%>

二.jsp页面元素和指令元素(page include taglib)
    1.  jsp指令元素有三种:page,include,taglib.(只编译一次即可到处运行)
      
     指令元素主要是用于为转换阶段提供JSP页面的相关信息。指令不会产生任何输入到当前jsp页面中,它置顶了有关页面本身的信息,这些信息在请求之间一直保持不变。指令方法如下:
<%@   指令名称  属性=属性值  %>
     1:page指令:该指令用于整个页面,定义与页面相关的属性,他是JSP页面和容器的通信员,一般放在JSP页面的第一行。
<%@ page language="java" import="java.util.*"  pageEncoding="UTF-8" %>
注意点:import是唯一一个可以重复的属性,如果导入多个包如下:
<%@ page language="java" import="java.util.*,java.io.*,com.keke.util.*" pageEncoding="UTF-8" %>
注意点:
     1⃣️:pageEncoding的默认编码是:ISO8859-1
     2⃣️:参数的名称对大小写敏感。

     inclue指令用于在JSP页面包含一个文件。改文件可以是JSP页面,也可以是HTML网页,或者文本文件或者一段JAVA代码。用它可以简化页面代码和提高代码的重用性。语法如下:
<%@include file="文件的URL路径" %>
注意:在包含的文件中最好不要使用<html></html>,<body></body>标签。

1.include指令(用来包含一个静态的文件)
<%@ 指令名 属性1=“值1”  属性2=“值2”  属性3=“值3”%>
语法<%@include file="URL"%>
date.jsp
<%@ page import   java.text.SimpleDateFormat, java.util.* %>
<%@ page language = "java" contentType = "text/html; charset=UTF-8"
    pageEncoding = "UTF-8" %>
<% Date d= new Date();
// SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类
SimpleDateFormat sdf= new SimpleDateFormat( "yyyy年MM月dd日" );
String s=sdf.format(d);
out.println(s);
%>

show.jsp
<%@ page language = "java" contentType = "text/html; charset=UTF-8"
    pageEncoding = "UTF-8" %>
< html > < head >
< meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" >
< title > 显示时间 </ title > </ head >
< body > < h1 > Include指令 </ h1 > < hr >
<%@ include file = "date.jsp" %>
</ body > </ html >

     taglib指令允许页面使用定制的标签或者JSP自身提供的标签:格式如下:
<%@ taglib uri="url"   prefix="前缀"%>
如: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!--迭代标签-->
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><!--国际化标签和数据日期格式化->
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><!--字符串操作标签-->
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %><!--数据库标签-->
<%@ taglib prefix="tm" uri="/WEB-INF/tlds/online.tld" %><!--自定义标签-->

2.jsp注释
html的注释  <!--html--!>   //客户端可见
jsp的注释:<%--html注释--%>   //客户端不可见
jsp脚本注释   //单行注释    /*  */多行注释

3.Jsp脚本
<% java片段块代码 %>   <%=  %>    <%! //定义方法和属性,给表达式或片段 %>
在jsp页面中执行的Java代码
语法:   <%Java代码%>
脚本是在<%  %>里嵌入的Java代码。这里的Java代码和一般的Java代码没有什么区别。只不过放在jsp中的<%java代码%>最终是编译到Servlet的service方法中。

4.jsp声明( 当用户第一次请求一个JSP页面时,首先被执行的方法是(构造方法);)
在Jsp页面中定义变量或者方法
语法;   <%! java代码%>
声明:<%! 定义变量属性和方法%>
如 index.jsp
<%!
       private int i = 0;
       public String getName(){
            return "xxxxx";    
   }
%>
其实这个index.jsp就是一个普通的java类,到时候需要使用这个页面里面的方法,只要通过
<%@include file="index.jsp" %>包含即可。
jsp变量声明(全局变量 局部变量
全部变量:<%!   %>声明的变量在整个jsp页面都有效,会将这些变量作为类的成员变量,这些变量的内存空间知道服务器关闭后才释放。但在该方法内定义的变量只在该方法内有效。
局部变量:<%    %>对外部函数是不可见的


5.jsp表达式(Exception),计算表达式,向jsp页面输出表达式的运算结果
在jsp页面中执行的表达式
语法:  <%=表达式%>     //表达式不以分号结束
使用JSP脚本元素可以将Java代码嵌入到JSP页面中,这些Java代码将出现在有当前的JSP页面生成的Servlet中,使JSP将静态内容和动态内容分离出来。
表达式:
<%= expression%>
如:<%= user.getName()%>表达式的本质,在讲JSP页面转换成Servlet后,使用Out.println将表达式的值输出。实际上它最终在代码里面的体现是:out.print("xxxx");

6.jsp页面生命周期
jspService(  )方法被调用来处理客户端请求
jsp引擎以多线程来处理
如果jsp页面代码改变jsp引擎会重新编译,生成新的字节码文件

7.iclude指令和include动作比较
include指令(发生作用的时间(页面转换期间),编译时间稍快,文件的实际内容,主页面和包含页面转换为一个Servlet,只编译一次)
<%@include%>  用户访问一次就编译执行到处可以运行

include动作(发生作用的时间(请求期间), 编译时间较快,页面的输出,主页面和包含页面转换为独立的Servlet, 在用户访问时执行
<jsp:include></jsp:inclued>  动态执行--用户每次访问的时候都会加载一次

三.动作元素(include,forword,param)
1.include动作(编译时间较快,页面的输出,主页面和包含页面转换为独立的Servlet
<jsp:include page="URL" flush="true|false">
page:要包含的页面     flush:被包含的页面是否从缓2冲区读取
可以在每次客户端发出请求时重新把资源包含进来实时根性.

2.forward动作
<jsp:forward page="URL"/>将请求页面转到另外一个页面
只能在同一个Web应用程序内的资源之间转发请求,可以理解为服务器内部的一种操作.

3.param动作
<jsp:param name="参数名"  value="参数值">
常与forward一起使用


6.jsp:useBean 获得javabean的一个实例
  jsp:setProperty: 设置javaBean的属性
  jsp:getProperty:  获得javaBean的属性





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值