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

引言
有关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")%>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值