给自己的JSP/Servlet教程

Jsp基础

对于Jsp/Servlet来说,web.xml文件的配置是十分重要的,而从serrvlet3.0开始,这个文件已经不再是必须的了。可是习惯起见,很多人仍然会选择保留该文件。
Jsp文件是在html中嵌入java脚本,因此显得要比直接开发Servlet,简单许多。但是jsp的本质其实就是servlet。运行期间,tomcat会根据jsp页面生成对应的Servlet的java文件和class文件。所以第一次访问一个jsp文件时,会比较慢,因为它需要去编译成一个Servlet文件。当然作为访问者是不需要安装任何客户端的,因为jsp生成的内容就是一个标准的html页面。

Jsp使用语法

在静态的html页面中嵌入java脚本就是jsp的编写方式,但是我们需要知道jsp页面中所要求的语法(也就是允许包含的成分)。这里一共是有4种,掌握了这4种语法,就可按以下步骤开发jsp页面了。

  1. 编写一个静态页面
  2. 用合适的方法向页面上嵌入语法。为静态页面增加动态内容。
    四种基本语法:
    (1)JSP注释
    注释作为一种开发过程中的提示,不会输出到客户端。使用<%– –%>或“<!– –>”
    (2)JSP声明
    Jsp声明用于声明变量与方法,看上去不用定义类就可以定义方法,但实际上,Jsp声明会转换成对应Servlet的成员变量或成员方法,仍然符合Java语法。jsp声明中独立存在的方法只是一种假象,它在jsp编译的过程中,成为了生成的servlet中的成员方法。
    <%!声明部分%>
    这种语法下声明的变量或方法都转换为了对应的Servlet的成员变量和方法。声明过程可以使用public和private等修饰符,但是不能使用abstract,因为这样肯定会导致Servlet变成抽象类,从而导致无法实例化。
    PS:无论你从多少个浏览器对其访问,都是访问了同一个实例,因为每个Servlet在容器中只有一个实例。
    (3)JSP输出表达式
    jsp提供了一种输出表达式值的简单方法:<%=表达式%>
    实际上是可以代替原来的out.print输出语句。输出表达式后面不用带“;”。
    (4)JSP脚本
    一般来说所有可执行的java代码都可以通过jsp脚本嵌入HTML页面。Jsp脚本的内容将转换成Servlet里的_jspService方法中的可执行性代码。在脚本里也可以声明变量,这时声明的变量里是局部变量。但是不能使用访问控制符修饰,也不可使用static修饰。
    jsp脚本内容之所以可以控制jsp页面的静态内容,是因为jsp页面里的所有静态内容都将有_jspService方法里的输出语句来进行输出,jsp脚本因为会被转化成_jspService里的可执行代码,所以jsp脚本里不允许定义方法,因为java的方法中不能再定义方法。当然脚本里也可以连接数据库和执行数据库操作。

JSP的三个编译指令

常见的编译指令有:
page:该指令指的是针对当前页面的指令。
include:用于指定包含另一个页面。
taglib:定义和访问自定义标签的指令。

使用编译指令的语法是:<%@ 编译指令名 属性名=“属性值”%>

page指令
page指令是用于定义本页面的一些属性参数的,一般位于顶端,并且可以包含多条page指令。
<%@page
//声明当前jsp页面使用的脚本语言的种类
[language=”java”]
//声明本jsp页面编译产生的java类所继承的父类,或者实现的接口
[extends=”package.class]
//用来导入包,servlet,http,jsp,lang包是不用显示导入的
[import=”package.class|package.*,..”]
//设置这个页面是否需要session
[session=”true|false”]
//指定缓冲区的大小,out用于缓存jsp页面对浏览器的输出
[buffer=”none|8 KB|size KB]
//设置是否在缓冲区即将溢出时强制输出内容
[autoFlush=”true|false]
//设置是否线程安全
[isThreadSafe=”true|false]
//设置程序的信息,看作是jsp的说明通过Servlet.getServletInfo()
[info=”text”]
//指定错误处理页面
[errorPage=”relativeURL”]
//设置生成网页的文件格式(MIME类型)和编码字符集
//默认的MIME是text/html,字符集ISO-8859-1
[contentType=”mimeType[;charset=characterSet]”|”text/html;charSet=ISO-8859-1”]
//指定生成网页的编码字符集
[pageEncoding=”ISO-8859-1”]
[isErrorPage=”true|false”]
%>
include指令
include指令分静态和动态,静态指令会将被包含的页面加入本页面,融合成一个页面,被包含页面甚至可以不是一个完整的页面。

语法:<%@include file=”relativeURLSpec”%>
如果被嵌入的页面需要经常改变,建议使用动态include语句
jsp:include

JSP的7个动作指令

与编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作。
1.jsp:forward:执行页面转向,将请求的处理转发到下一个页面
2.jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。
3.jsp:include: 用于动态引入一个JSP页面
4.jsp:plugin:用于下载JavaBean或Applet到客户端
5.jsp:useBean:创建一个JavaBean的实例
6.jsp:setProperty:设置JavaBean实例的属性值
7.jsp:getProperty:输出JavaBean实例的属性值。

jsp:forward指令:

//额外增加了请求参数,可以通过HttpServletRequest类的getParameter()方法获取
<jsp:forward page="{relativeURL|<%=expression%>}">
    {<jsp:param.../>}
</jsp:forward>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Servlet 第一天 一、简述 1、Servlet,服务器端的小程序,它是相对于Applet 而言的,Applet 是客户端小程序。 Servlet,是接受来自网络的请求(form 表单,以及其他的请求),并对不同请求作出不同的响应 Servlet,是基于Http 协议的,是运行在web 服务器中的程序。这里要提出一个容器的概念。 servlet 是运行在web 容器中,在后面会详细地讲解,这个web 容器可以控制Servlet 对象的生命周期,控制请 求由Servlet 对象处理。 2、web 服务器,这里的服务器不是硬件概念,而是软件,常用的web 服务器有Tomcat,Jboss 等,我们所用到的 Tomcat 是一个开源的服务器, Tomcat 是一个用java 语言编写的web 服务器,所以需要有相应的java 运行环境,也就是JVM,还要配置tomcat 的具体路径。 二、Tomcat 的配置 JAVA_HOME=/XXX/XXX/(JDK 路径,bin 的上一层目录) CATALINA_HOME=/XXXX/XXX(tomcat 的绝对路径windows 中X:\xxx\xxx) 在启动Tomcat 时,是运行Tomcat 的bin 目录下的startup.sh(windows 中使用startup.bat) 判断Tomcat 是否启动成功,可以在浏览器的地址栏中使用http://localhost:8080/或http://127.0.0.1:8080/可以访问到 tomcat 的主页就是启动成功了。 要想停止tomcat 服务器要使用shutdown.sh(windows 中使用shutdown.bat),如果直接关闭启动窗口,就会造成 8080 端口占用错误,这时可以在使用shutdown.sh 关闭一下服务器。 startup.sh,shutdown.sh,shutdown.bat,startup.bat 这些文件其实是一些脚本文件用来执行大量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值