web学习05

jsp ( java server page)

jsp是java服务器动态web开发技术

jsp=html+servlet


jsp运行原理

 浏览器访问服务器上的jsp页面 最终访问的是.class文件

 服务器把jsp页面翻译成.java文件 再编译成.class文件


jsp和servlet最佳实现方式

1.servlet:获取参数 处理逻辑  请求转发

2.jsp:html界面 数据回显


java小脚本 <% 书写java代码 %>

        <%
	int num2=10;
	%>

显示数据<%= %>相当于out.print()

<%=num2 %>

jsp注释<%-- --%> 建议用这个

<%-- aaaa --%>

html注释<!--  --> 会被回写到网页上

<!-- 输出到网页上 -->

<%! %> 声明成员变量和方法

    <%!
    int num1=10;
    public void fun(){  	
    }
    %>
1. 3个指令

1.page指令 :

 和java代码中的import是一样的

<%@ page import="java.util.Date"%>

session开关 默认开启

关上后编译.java文件 系统不会为你创建session对象

<%@page session="true" %>

pageEncoding 设置本页编码

contenttype 相当于response.setcontenttype

<%@ page  pageEncoding="UTF-8"%>

errorPage设置错误页面

 <%@page errorPage="/3.jsp" %>

默认是关闭的 开启后可以使用exception对象获取异常信息

<%@page isErrorPage="true" %>

2.include指令:

静态包含 

编译成.java文件时 直接把两个界面编译成一个.java文件

输出两套html标签

<%@include file="/5.jsp" %>

动态包含 

当读取到动态包含时   会把动态包含的那个页面编译成.java文件

<jsp:include page="/5.jsp"> </jsp:include>

3.taglib : 需要引入jstl标准标签库 

prefix 使用标签时起的别名

<%@taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c" %>
2.jsp的6个动作
<jsp:include > 动态包含

<jsp:forward> 请求转发

<jsp:forward page="/7.jsp"></jsp:forward>

<jsp:param> 设置请求参数

相当于/7.jsp?username=wanglong&&password=123

         <jsp:param value="wanglong" name="username"/>
	 <jsp:param value="123" name="password"/>

<jsp:useBean> 创建一个对象

使用useBean创建一个对象 

 id:创建这个对象的名字

 class:表示哪个类创建该对象

<jsp:useBean id="user1"class="com.lanou3g.User"/>

<jsp:setProperty> 给指定的对象属性赋值

 name:表示要赋值那个对象

        jsp:setProperty property="username" name="user1" value="aa"/>
	<jsp:setProperty property="password" name="user1" value="123"/>
<jsp:getProperty> 取出指定对象的属性值
        <jsp:getProperty property="username" name="username"/>
	<jsp:getProperty property="password" name="username"/>

3.jsp的9个内置对象
request
response
session
application
exception  获取异常信息 默认是关上的
page 当前servlet实例 this
config
out
pageContext 指当前页面 域对象 


pageContext域对象

作用范围 只能当前页面访问到

从小到大

pagecontext<request<session<servletcontext

pageContext强大之处在于可以获取所有的域对象

利用pagecontext对象往各个域中存值:

        pageContext.setAttribute("www", "pageContext", PageContext.PAGE_SCOPE);
	pageContext.setAttribute("www", "request", PageContext.REQUEST_SCOPE);
	pageContext.setAttribute("www", "session", PageContext.SESSION_SCOPE);
	pageContext.setAttribute("www", "servletContext", PageContext.APPLICATION_SCOPE);

全域查找   域从小到大查找

<%=pageContext.findAttribute("www") %>

EL表达式 一个书写规范

提供java代码  在jsp页面的简便书写方式

表示全域查找 name="www"的值 

内部就是调用了findAttribute()方法

当没有从域中查找到值 什么都不显示


${www }

测试el对空值的显示结果 

不管null还是没有内容 都不会报错

真正有值才会显示(容错性高)


判断空值的方法  关键词 empty

返回true false

${empty str1 }

支持三目表达式

${empty str3?"我是前面的":"我是后面的" }

el表达式 获取对象的属性值 

javaBean对象导航

相当于内部调用getUsername() 

 用. 能获取的 []都能获取

 用[]获取的 .获取不了

        ${u1.username }
	${u1["username"] }
	${list[0] }
	${map.b }
	${map["c"] }
	${u1.city.address }
	${u1["city"]["address"] }

el表达式 隐式对象

注意:隐式对象 在el表达式中书写

使用隐式对象 指定域查找对应的值

         ${pageScope.xxx }
         ${requestScope.xxx}
	 ${sessionScope.xxx}
	 ${application.xxx }

获取表单提交的数据

        ${param.username}
	${param.password}
	${paramValues.hobby[0] }












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值