JSP-Java Server Pages(Java服务器页面)<二>

来源:互联网 发布:网络教育专升本 编辑:程序博客网 时间:2024/06/03 16:12

引言
有关JSP的相关知识点的介绍。
I.在myeclipse环境中集成tomcat步骤
1.这里写图片描述
2.这里写图片描述
3.这里写图片描述
4.这里写图片描述
5.创建一个web项目:
File–>new –>web project
这里写图片描述
6.打开index.jsp进行编辑
7.部署web应用:
这里写图片描述
这里写图片描述
点击了add按钮之后,会弹出以下界面:
这里写图片描述
选择tomcat6.0之后,finish完成
8. 启动tomcat服务器这里写图片描述
9. 可以在浏览器中访问该web应用了。
这里写图片描述
始终记住,jsp文件仅仅是一个草稿文件,jsp中为我们提供的那些api也都是草稿api,最终jsp中的语法会变成之前我们学习过得java语法。
II.JSP中的各种元素:脚本元素、指令元素、动作元素。
(一) 脚本元素:
1) <% %>在该脚本段中的所有内容,最终会出现在一个Java方法中。
所以,在Java方法中可以写什么内容,在该脚本段中也可以写什么内容,在Java方法中不能写什么内容,在该脚本段中也就不能写什么内容。
2)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><h2>index.jsp</h2><%!    int count = 0;%>hahaha<br />你是第<%=++count %>个访客

这里写图片描述
(二) 指令元素
所有的指令元素,都是<%@ %>
page,学习page指令元素,就是学习page指令元素的属性.
import 用于引入外包的class
Buffer 用于控制当前jsp页面的缓冲区大小,默认值为8kb
contentType 用于告诉浏览器,服务器给你发送的是什么格式的数据。
errorPage 当当前jsp页面中抛出异常的时候,指定的跳转页面
isThreadSafe 控制web服务器是否对该jsp页面支持并发,取值为true就表示支持并发
pageEncoding 1 .Jsp–>java过程中,就是使用该属性指定的码表来生成java源文件的。2.告诉浏览器使用什么码表。
Include:静态包含
静态包含,就是把目标页面包含到<%@ include file=””%>代码处。这里写图片描述
taglib(暂留)
(三) 动作元素
a) JavaBean的规范:
1. 所有属性必须私有化。
2. 必须为私有属性提供公共的getter(获取器)和setter(设置器)
3. 必须提供一个公共的无参的构造器。
4. 必须实现序列化接口: java.io.Serializable
通过简单的代码体会三个动作元素。
一个student的JavaBean

package com.westos.stu;import java.io.Serializable;public class StudentBean implements Serializable{    private String name;    private int age;    public StudentBean() {        super();        // TODO Auto-generated constructor stub    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}

这里写图片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><jsp:useBean id="n1" class="com.westos.stu.StudentBean"></jsp:useBean><jsp:setProperty property="name" name="n1" value="薛之谦" /><jsp:setProperty property="age" name="n1" value="34" />姓名:<jsp:getProperty property="name" name="n1"/><br />年龄:<jsp:getProperty property="age" name="n1"/><br /><jsp:useBean id="n2" class="com.westos.stu.StudentBean"></jsp:useBean><jsp:setProperty property="name" name="n2" value="高磊鑫" /><jsp:setProperty property="age" name="n2" value="34" />姓名:<jsp:getProperty property="name" name="n2"/><br />年龄:<jsp:getProperty property="age" name="n2"/><br />

结果:
这里写图片描述
b)动态包含。
通过与静态包含进行比较来认识动态包含

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><h1>静态包含与动态包含</h1><fieldset>    <legend>静态包含</legend>    <%@ include file="a.jsp" %></fieldset><fieldset>    <legend>动态包含</legend>    <jsp:include page="a.jsp"></jsp:include></fieldset>

这里写图片描述
尽管从结果上看没有什么区别,但看其内部就会发现动态包含与静态包含的不同之处。
经典面试题: 静态包含与动态包含的区别:
1. 静态包含是先包含,后编译; 最终只能生成一个java源文件!class也是一个。动态包含是先编译,后包含。最终生成多个java源文件!class也是多个。
静态包含:
这里写图片描述
动态包含:
这里写图片描述
2. 静态包含不能用变量名作为路径; 动态包含就可以用变量名作为路径。
3. 静态包含不能给被包含的目标jsp页面传递参数;动态包含就可以!
4. 一个页面上的多个静态包含的页面中,不能有同名的变量;动态包含就可以!
c) 转发
暂时可以理解为不用点击,直接跳转的链接

index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><h1>转发</h1><<jsp:forward page="a.jsp"></jsp:forward>a.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><h2>a.jsp</h2>哈哈哈,我是a.jsp页面

这里写图片描述
从上面的图片可以看出,浏览器访问的是index.jsp页面,但是响应的却是a.jsp页面。因而不难理解转发的概念。
d) 传递参数请求
传递参数有好几种办法:
1. 通过表单。
2. 不需要表单,直接在url后面加上?参数名=参数值&参数名2=参数值2…..
3. 直接在超链接的url后面写出参数即可!
4. 通过window.location=”url?请求参数”
5.这里写图片描述

index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%    request.setCharacterEncoding("utf-8");%><h1>传递参数</h1><jsp:include page="a.jsp">    <jsp:param value="薛之谦" name="name"/>    <jsp:param value="高磊鑫" name="name2" /></jsp:include>a.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><h2>a.jsp</h2><%=request.getParameter("name")%><br /><%=request.getParameter("name2")%>

结果:这里写图片描述
这里写图片描述