JSP(Java Server Page)
JSP是服务器端运行的页面,JSP本就是一个文档,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求。
Jsp文件只需放在应用文件下就可以了。
JSP例子:
<html>
<head><title>time</title></head>
<body>
<h1><%=new java.util.Date()%></h1>
</body>
</html>
JSP运行过程
1,JSP文件先要翻译成Java文件(Servlet),在tomcat中翻译后的java文件在tomcat下的work\Catalina\localhost中相应名字的应用目录里。
2,编译Java文件
3,运行.class文件
Tomcat的全局配置文件
在Tomcat下的conf目录中的web.xml是服务器全局的配置文件,其中要想关闭列表显示叫要把
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
Tomcat的管理员设置
在tomcat下的conf目录中的tomcat-use.xml文件中可以配置tomcat的用户角色
<tomcat-users>
<role rolename="manager" description=""/>
<role rolename="admin"/><!--设定角色的名字,admin是管理员,manager是项目管理-->
<user username="manager" password="123" roles="manager"/><!--设定用户名密码,和角色-->
<user username="admin" password="123" roles="admin"/>
</tomcat-users>
JSP的特点
1,JSP不需要编译
2,JSP不需要进行配置
3,JSP本质上就是一个Servlet
4,JSP是以静态页面为主的。
JSP的语法格式
<%=...%>表达式,写表达式时不要加上分号,表达式,翻译成Java代码也就是直接使用流输出,也就不能加分号了。
<%! int a=0; %>声明,使用声明的变量,所创建的变量是在service方法体外,也就是翻译成实例变量,声明也可以声明内部类或者是方法的声明。
<% if(a==0){ a=3;}%>代码片断,代码段会原样翻译。在代码段中声明的变量,就会被翻译的service的方法体中,也就是被翻译成局部变量。
前三种JSP的语法也叫做JSP代码,以上的表示方法,都有与之相对应的xml表达形式,因为可读性较差,所以较少使用。
<%@ ... %>JSP指令
<%@page import="...,..."%>引入包
<%include file="...."%>直接引入内容,这些内容会直接嵌入到页面中。
JSP的注释
<%--........--%>
JSP指令和JSP动作(标准的JSP标签)
JSP指令的语法
<%@... ....%>
<%@include file="...."%> 包含指令,包含指令会将要包含的文件代码原样输出到本页面(在翻译时把包含文件的内容引入并合并),不进行翻译,file属性制定要包含的文件的名字(注意要包含的文件的路径),这个指令可以实现页面的复用。
注意:<%@include file=" "%>要包含的JSP文件中不能定义重名的变量,如果不使用包含指令,那么JSP中的最小转换单元就是JSP文件,使用了包含指令就会将多个jsp的结果合并到一起。
<%@page ..%>页面指令
<%@page import="..."%> 引入包 例:<%@page import="java.util.*,ent.*"%>(可出现多次)
<%@page pageEncoding="GBK"%>设定页面显示的字符集
<%@page contentType="text/html;charset=GBK"%>设置输出流的编码方式和文件格式。
注意:输出的字符集编码方式要和页面显示的字符集相同,一般定义输出流的编码方式,注意以上两个页面指令在JSP中最好只出现一次。注意在请求中传送的参数的值是中文的话需要调用请求request的
setCharacterEncoding("..")方法设置相应的编码方式,只适用于post请求,也可以通过Servlet的Filter来进行中文编码方式的处理。
<%@page language="java"%>指定JSP的脚本语言,现在只能写java
<%@page extends=".."> 指定翻译后代码类型的父类,最好不要使用这个指令
<%@page session="true|false"%>指定是否自动创建Session,最好不自己指定,使用默认值
<%@page buffer=".." autoflush="true|false"%>设置输出的缓存和是否自动刷新缓存,一般情况下都使用默认值,缓存的默认值为8KB。
<%@page isThreadSafe="true|false"%>是否线程安全,默认为true,也就是线程安全,只使用默认值。
<%@page info=".."%>设置页面信息,一般不用
<%@page errorPage=""%>指定异常处理页面
<%@page isErrorPage="true|false"%>设定本页面就是异常后跳转的页面
<%@page isELIgnored="true|false"%>设定本页面是否忽略JSP2.0种EL表达式
<%@taglib ..%> 标签库指令,用于引入自定义标签库
JSP动作
<jsp:... ...>
<jsp:include page="..." flush=true|false> include动作是在翻译和编译后运行时进行响应的合并,也就是对应了Servlet中RequestDispatcher类的include(ServletRequest request, ServletResponse response)方法。
include动作可以传递参数
<jsp:include page="test.jsp">
<jsp:param name="user" value=" ">
</jsp:include>
在使用参数时,可以用request内置对象来获取参数的值。
<jsp:forward page="xxx/xxx.jsp">forward动作对应的是Servlet中RequestDispatcher类的forward(ServletRequest request, ServletResponse response)方法,也就是把请求进行转发。
也可以写成
<jsp:forward>
<jsp:attribute name="page">xxx/xxx.jsp</jsp:attribute>
</jsp:forward>
这种写法等价于上面的写法。
在使用Servlet的response的重定向sendRedirect(String location)方法在使用时要包含应用的路径,注意,重定向会放弃这个请求,并向服务器发送一个新的请求,但是响应对象还是一个。重定向是用来避免重复提交的。
注意:对页面的刷新操作就会再一次运行程序,也就仿佛进行了再一次的提交一样,这也就是重复提交的问题,所以需要使用重定向来解决这个问题。
<jsp:plugin type="bean|applet" code="...">
...
</jsp:plugin>
jsp:plugin动作可以使页面上运行applet,或者是使用java代码。
<jsp:useBean id="对象名" class="类全名"|type="类全名"(使用多态时使用) beanName="类全名" scope="page|request|session|application">
jsp:useBean动作,可以通过这个动作来使用java代码,id就是变量名,clss和type的区别在于,使用type是不会创建对象,而只是会先查找如果有该对象就会使用,如果没有就会抛出异常,class在没有该对象存在时,则会创建新对象。scope是用来保存实例的空间范围,page、request、session、application,由小到大,默认为page。
<jsp:setProperty name="对象名" property="属性名" value="属性值"/>
直接指定Bean属性的值,必须类型一致。
<jsp:setProperty name="对象名" property="属性名" param="from表单中的响应的参数名"/>
用表单中指定的参数来为Bean属性赋值,系统会自动作类型转换。
<jsp:setProperty name="对象名" property="属性名"/>
用表单中和Bean属性同名的标单项来给Bean属性赋值,这样写只会为指定的属性赋值
<jsp:setProperty name="对象名" property="*"/>
这种方式会自动用表单中的同名参数来为Bean的所有属性赋值
<jsp:setProperty name="对象名" property="属性名" value="<%= ...%>"/>
使用表达式来为Bean的属性进行赋值
<jsp:getProperty name="对象名" property="属性名">
取得指定的属性,这个动作不常用,一般用表达式代替
我们可以通过设置属性名的方法名也就是setXxxx()来控制属性的赋值,用form表单的参数为Bean的属性赋值时,系统会自动的调用与之同名属性的setXxxx()方法,尤其是日期类型,可以通过使用这一方法来处理。
例:
import java.sql.*;
public class Person{
private Srting name;
private Date birthday;
public void setName(String name){
this.name=name;
}
public void setBirthdayAsString(String birthday){
this.setBirthday(valueOf(birthday));
}
public void setBirthday(Date birthdays){
this.birthday=birthday;
}
}
add.jsp
<jsp:useBean id="person" type="Person" scope="request">
<jsp:setProper name="person" property="*"/>
</jsp:useBean>
toadd.jsp
<form action="xxx" methmod="post">
<input type="text" name="name">
<input type="text" name="birhtdayAsString">
<input type="submit" value="add.jsp">
</form>
分享到:
相关推荐
根据标题和描述,这个“第3天”的JSP课件可能涵盖了JSP的基本语法和初步应用,可能包括了JSP的生命周期、指令介绍、内置对象的使用等内容。适合初学者通过学习这个课件快速入门JSP开发,为后续深入学习打下基础。 ...
在JSP的第二天课程中,初学者通常会接触到以下几个关键概念和知识点: 1. **JSP基本结构**:JSP文件是XML兼容的HTML或XML文档,其中可以包含Java代码片段。基本结构包括HTML标签、JSP指令、脚本元素和表达式。 2. ...
【标题】"HTY_JSP_DAY01"揭示了这是关于JSP(JavaServer Pages)技术的初步学习资料,很可能是某位讲师或培训机构的教学日课内容,专注于第一天的学习要点。JSP是Java平台上的一个核心技术,用于构建动态web应用程序...
1. **第一天:Java入门** - 学习方法介绍。 - 构建Java开发环境。 - 第一个Java程序:HelloWorld。 - Java技术的关键特性:虚拟机、垃圾回收、代码安全性。 2. **第二天:Java基础语法** - 关键字、标识符、...
1. **第一天 笔记.doc**:通常会介绍Java的基础知识,可能包括Java的历史、语言特性、开发环境的搭建(如JDK安装与配置)、第一个Java程序的编写("Hello, World!")以及基本的数据类型和控制结构。 2. **第二天 ...
【2021第一小学年度校长工作目标】的文档主要阐述了该校校长在新的一年中为推动学校发展设定的各项工作目标,这些目标涵盖了办学条件、教师队伍建设、学校管理、安全管理以及德育工作等多个方面。以下是详细的知识点...
全书分为6篇共21章内容,第一篇为Java Web基础篇,介绍了执行环境和开发环境的搭建及JSP的语法基础。第二篇为JSP 2.0开发篇,介绍了JSP指令元素、JSP动作元素、JSP内置对象、JSP和JavaBean等内容。第三篇为Servlet...
全书分为6篇共21章内容,第一篇为Java Web基础篇,介绍了执行环境和开发环境的搭建及JSP的语法基础。第二篇为JSP 2.0开发篇,介绍了JSP指令元素、JSP动作元素、JSP内置对象、JSP和JavaBean等内容。第三篇为Servlet...
- **第一天** - 课程概览 - IBM RAD开发工具入门 - Java开发入门 - 实验一:使用RAD的Java开发工具 - Web工具入门 - 可视化开发工具入门 - 实验二:导入一个Web应用程序和Web视图 - 构建和编辑Servlets、...
这部分可能是一个为期多天的培训课程的第三天内容,可能涵盖了更具体的主题或更深入的技术,如JNDI(Java Naming and Directory Interface)、JPA(Java Persistence API)或者Web服务(如SOAP和RESTful)。...
实习后期,实习生面临了第一个项目——部门员工管理系统。这个项目涉及表现层、网络层、数据层和业务层的设计与实现。实习生在指导老师的帮助下,逐步完成了系统的各个模块。通过这个项目,实习生掌握了数据库操作、...
第四部分,Servlet和JSP是构建动态Web应用的基石。学员将学习Servlet的工作原理,包括请求处理流程,使用HttpServletRequest和HttpServletResponse对象进行数据交换,以及如何利用HttpSession、ServletConfig和...
- 第一天:ArcGIS Server 配置;开发 ArcGIS Server 应用的基础;使用 ADF Web 控件进行开发。 - 第二天:扩展 ADF templates;创建 Web services。 - **必备条件**: - ArcGIS 的基本概念。 - ArcObjects 开发...
- 1996年1月,第一个JDK JDK 1.0发布。 - 1997年2月18日,JDK 1.1发布。 - **Java青少年(1998-2004)**: - 1998年12月4日,JDK 1.2发布,标志着Java进入2时代。 - 1999年6月,Sun公司发布了Java的三个版本:...
在网络安全的学习旅程中,第一天的课程主要关注基础概念,为后续的深入学习打下坚实的基础。这次培训旨在帮助学员掌握一系列安全技能,包括但不限于安全测试、PHP和Java编程、软件和插件的安全性。我们将涵盖多个...
你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。 Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理...
- **预备知识**:第一章涵盖Tomcat服务器的安装与使用、WebLogic的应用、MySQL和Oracle数据库的操作,以及JCreator集成开发环境的使用,为后续项目开发奠定坚实的基础。 - **飞达商贸有限公司POS系统案例**:第二...
在第四天,课程会介绍iBATIS,这是一个灵活的SQL映射框架,可以与Hibernate进行对比和整合。同时,课程还将讨论如何将基于SSH(Struts2+Spring+Hibernate/iBATIS)的应用迁移到WebLogic,以及在WebLogic上的性能优化...
从标题和描述来看,我们可以推测这是一个关于Java开发的教学课程,特别是针对构建BBS( Bulletin Board System,即论坛系统)的第二天课程的第一部分。 在标签中,"[传智播客]"表明了这是由"传智播客"提供的教育...
20081123可能指的是该次考试的具体日期,即2008年11月23日,这一天可能包含了笔试和上机操作两部分的考核。 在ACCP5.0 Y2课程中,学员会学习一系列核心的IT技术,包括但不限于: 1. **基础编程语言**:通常涵盖C++...