jsp

1.jsp语法
  • <% 这里可以写java语句 这里的是局部语句 %>会被放到_jspservice中
  • <%= 这里是java表达式 会输出到页面%>相当于out.print()
  • <%! 这里定义类成员变量 %>直接放到类里不放到方法里
  • 多个<%…%>可以通用
2.JSP是特殊的Servlet

  * JSP是一种特殊的Servlet,当JSP页面首次被访问时,容器(Tomcat)会先把JSP编译成Servlet,然后再去执行Servlet。所以JSP其实就是一个Servlet!
  * 客户端请求—>服务器—>index.jsp–>index_jsp.java–>index_jsp.class–>响应给客户端

3.index_jsp.java:
  • 1.JSP生成的index_jsp.java存放在${CATALANA}/work目录下;
  • 2.在JSP中的静态信息(例如等)在index_jsp.java中都是使用out.write()完成打印!这些静态信息都是作为字符串输出给了客户端。
  • 3.JSP的整篇内容都会放到名为_jspService的方法中
  • 4._jspservice方法
    在_jspservice方法内定义了九大内置对象
3.JSP注释

我们现在已经知道JSP是需要先编译成.java,再编译成.class的。其中<%-- ... --%>中的内容在JSP编译成.java时会被忽略的,即JSP注释。
也可以在JSP页面中使用html注释:<!-- … -->,但这个注释在JSP编译成的.java中是存在的,它不会被忽略,而且会被发送到客户端浏览器。但是在浏览器显示服务器发送过来的html时,因为<!-- … -->是html的注释,所以浏览器是不会显示它的。

4.jsp指令

JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的。
JSP中有三大指令:page、include、taglib,最为常用,也最为复杂的就是page指令了。
1.page指令

属性:
1.pageEncoding=”utf-8”设置字符编码
2.contentType=”text/html;charset=utf-8”相当于servlet中的response.setContentType(“text/html;charset=utf-8”)
以上俩个设置一个另一个字符集也是那个,如果都没有默认是ISO8859-1
3.import=”java.util.*”导入一些java包
4.errorPage=”a.jsp” 当前页面出错时会跳转到a.jsp
5.isErrorPage=true 表示当前页面是错误页面响应码是500这时可以使用exception内置对象,其他时间不行
6.buffer表示当前JSP的输出流(out隐藏对象)的缓冲区大小,默认为8kb。
7.authFlush表示在out对象的缓冲区满时如何处理!当authFlush为true时,表示缓冲区满时把缓冲区数据输出到客户端;当authFlush为false时,表示缓冲区满时,抛出异常。authFlush的默认值为true。
8.isELIgnored表示十分支持el表达式默认支持
9.language:只能是Java,这个属性可以看出JSP最初设计时的野心!希望JSP可以转换成其他语言!但是,到现在JSP也只能转换成Java代码;
10.info:JSP说明性信息;
11.isThreadSafe:默认为false,为true时,JSP生成的Servlet会去实现一个过时的标记接口SingleThreadModel,这时JSP就只能处理单线程的访问;
12.session:默认为true,表示当前JSP页面可以使用session对象,如果为false表示当前JSP页面不能使用session对象;
13.extends:指定当前JSP页面生成的Servlet的父类;
注:在web.xml页面中配置<jsp-config>也可以完成很多page指定的功能!

2.include指令

include指令表示静态包含!即目的是把多个JSP合并成一个JSP文件!
实际上就是把生成的servlet的service方法合并,包含的语句在前面
<%@ include file=”a.jsp” %>

3.taglib指令

在JSP页面中使用第三方的标签库时,需要使用taglib指令来“导包”
<%@taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>
prefix的值可以自定义–在于你自己的使用

4.jsp动作标签–动作标签的作用是用来简化Java脚本的!

1.<jsp:include>标签的作用是用来包含其它JSP页面的!
实际上是在标签的地方调用所包含jsp的service方法
<jsp:include page="a.jsp"/>

2.<jsp:forward>标签的作用是请求转发!
<jsp:forward page="a.jsp"/>

3.<jsp:param>
还可以在<jsp:include><jsp:forward>标签中使用<jsp:param>子标签,它是用来传递参数的.

b.jsp

 <jsp:forward page="a.jsp">
 <jsp:param value="bvalue" name="bname"/>
 </jsp:forward>

a.jsp

   ${param.bname }
   <%
   String bname=request.getParameter("bname");
   out.print(bname);
   %>
   <%=bname %>

输出3个bvalue
5.JSP与JavaBean相关的动作标签
在JSP中与JavaBean相关的标签有:
<jsp:useBean>:创建JavaBean对象;
<jsp:setProperty>:设置JavaBean属性;
<jsp:getProperty>:获取JavaBean属性;

<jsp:useBean id="user" class="demo.User" scope="page"/>
<jsp:setProperty property="username" name="user" value="zhang"/>
<jsp:setProperty property="password" name="user" value="dong"/>
<jsp:setProperty property="age" name="user" value="12"/>
<jsp:getProperty property="username" name="user"/>
<jsp:getProperty property="password" name="user"/>
<jsp:getProperty property="age" name="user"/>     
<%=user %>

属性:

  1. id 自定义用来标识相当于对象名
  2. class 实体类的位置
  3. scope保存实体类对象的存储位置以及范围可以是4大域对象
  4. property对应的是属性名
  5. name表示的是哪个实体对象
  6. value 设置值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值