JSP技术的学习总结

JSP的简介:

JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的, 不同的是先由服务器编译部署成Servlet执行

jsp运行过程jsp --翻译成servlet --编译 --访问

JSP的脚本元素(3种):

  • <!% %> :定义类、定义变量、定义方法(不常用)
  • <%= %> :输出语句(输出到页面,不能拥有分号)
  • <% %> :定义变量、语句

JSP 页面注释(3种):

1.JSP注释:<%-- … --%>,转化阶段消失,只能被开发人员看到

2.JAVA注释://、/**/、/***/,编译阶段消失

3.HTML注释:<!-- … -->

JSP 指令元素:

语法:<%@ 指定元素 属性名=属性值 %>

功能(有两点):

  • 用于指示JSP执行某些步骤
  • 用于指示JSP表现特定行为

指令元素的分类:

  • page指令标记
  • include指令标记
  • taglib指令标记

page指令:用来定义JSP文件的全局属性   语法:<%@ page   ......    %>”

注意:在JSP页面中,只有import可以出现多次,其它属性都只能出现一次

下面是page指令标记表格,可以设置page指令标记中的属性:

下面是实例代码,关于page指令标记的使用:

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="true" buffer="8kb" autoFlush="true"
    errorPage="/jsp/error.jsp" isELIgnored="false"%>

 include指令标记:  包含页面(页面布局)        静态包含语法  :<%@ include file=“filename” %>

filename 指的是(服务器端路径,没有项目名称);

静态包含的作用:在JSP页面中静态包含一个文件,同时由JSP解析包含的文件内容

include指令标记的实例代码:

<!--  下面是 body.jsp的代码 ,包含了另外3个 jsp文件 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="/include/head.jsp" %>
<%@ include file="/include/menu.jsp" %>
	<h3>网站的新闻(数据变化)</h3>
<%@ include file="/include/foot.jsp" %>
<%
	
%>
</body>
</html>

<!--  下面是 head.jsp的代码  -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

	<h3>网站的LOGO</h3>


<!--  下面是 menu.jsp的代码  -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

	<h3>网站的超链接</h3>


<!--  下面是 foot.jsp的代码  -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

	<h3>网站的友情的链接</h3>




taglib指令标记: 

taglib :引入标签库文件

语法:<%@ taglib %>

属性:

uri :引入标签库文件的名称

prifix :标签库文件的前缀名

JSP 内置对象:

主要讲下pagecontext对象,其他对象可以参考前面的博客;

pageContext对象:是一个域对象

功能:

1.向自己域中存取值(3种主要的方法)

Object getAttribute(String name)

void removeAttribute(String name)

void setAttribute(String name, Object value

2.向其他域中存取值:

*public abstract void  setAttribute  (String name,Object value,int scope)    向某个域中存值

public abstract Object    getAttribute(String name,int scope)            向某个域中取值

public abstract Object findAttribute(String name)   按顺序在页面、请求、会话(如果有效)和应用程序范围中搜 索指定属性,并返回关联的值或 null。也就是从最小的域中开 始查找

3.可以获取其他8个对象

getException方法返回exception隐式对象
getPage方法返回page隐式对象
getRequest方法返回request隐式对象
getResponse方法返回response隐式对象 
getServletConfig方法返回config隐式对象
getServletContext方法返回application隐式对象
getSession方法返回session隐式对象
getOut方法返回out隐式对象

 

JSP标签:

定义:JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。

jsp常用标签:

<jsp:useBean> 使用一个ID和一个给定作用范围和同一ID的JavaBean相关联

<jsp:setProperty> 设置JavaBean的属性值

<jsp:getProperty> 取得JavaBean的属性值

<jsp:include>   文件包含(服务器端路径,没有项目名称)

<jsp:forward page=“转发路径”> 在JSP的页面中完成转发(服务器端路径,没有项目名称),将请求传递给另一个JSP页面(转发)。

<jsp:param>用来传递参数,可以写在<jsp:forward>中间 可以使用request.getParameter();来接收参数

下面是实例代码:

<jsp:useBean id="u" class="cn.study.bean.User"></jsp:useBean>
	<!-- 如果属性多可以使用下面 -->
	<%--	<%<jsp:setProperty property="*" name="u"/> %> --%>
	<jsp:setProperty property="username" name="u"/>
	<jsp:setProperty property="password" name="u"/>
	
	<jsp:getProperty property="username" name="u"/>
	<jsp:getProperty property="password" name="u"/>
	<jsp:param value="" name=""/>

还有转发动作标签的示例代码:

下面是forward.jsp的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>JSP的动作标签</h4>
	<jsp:forward page="/jsp/pageContext.jsp">
		<jsp:param value="meimei" name="username"/>
	</jsp:forward>
</body>
</html>

下面是pageContext.jsp的代码,在其中写了如何向其他4个域对象pageContext、request、session、application存取值:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%=request.getParameter("username") %>
	<h3>从其他域中存取值</h3>
	<%
		pageContext.setAttribute("name", "小明");
		//下面这句等价于上面
		pageContext.setAttribute("name", "小明", pageContext.PAGE_SCOPE);
		
		request.setAttribute("name", "小龙");
		//向request域中存入值
		pageContext.setAttribute("name", "小龙", pageContext.REQUEST_SCOPE);
		
		//向session域中存入值
		pageContext.setAttribute("name", "张三", pageContext.SESSION_SCOPE);
		
		//向application域中存入值
		pageContext.setAttribute("name", "李四", pageContext.APPLICATION_SCOPE);
	
		
	%>
	<%=pageContext.getAttribute("name", pageContext.SESSION_SCOPE) %>
	<%=session.getAttribute("name") %>
	
	${ pageScope.name}
	${ requestScope.name}
	${ sessionScope.name}
	${ applicationScope.name}
</body>
</html>

配置全局的错误页面

应该到web.xml中配置,配置代码如下

<!-- 配置全局错误页面 -->
  <error-page>
    <error-code>404</error-code>
    <!-- 服务器端路径名称 -->
    <location>/404.jsp</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/500.jsp</location>
  </error-page>

参考: 传智播客  www.itcast.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值