jsp

合集下载

JSP完整PPT课件

JSP完整PPT课件

• JSP的编译
– JSP的页面代码不能直接运行 – JSP的页面代码被编译成Java的源代码 – 编译生成的Java类实现javax.servlet.jsp.HttpJspPage接口
• HttpJspPage接口的继承关系如下图
*
5
CASI
JSP与Servlet
• JSP与Servlet的对应
• Web容器调用实例的jspInit方法;准备阶段完成
*
11
CASI
JSP的运行 Ⅵ
• Web容器调用_ jspService方法处理相应的请求
*
12
CASI
JSP的运行 Ⅶ
• 当需要销毁实例时,Web容器调用jspDestroy方法
*
13
CASI
JSP脚本元素Ⅰ
• 脚本元素包括:注释、声明和表达式。 • HTML注释(显式注释):
*
19
CASI
JSP内置对象Ⅱ
• 和Servlet相关的内置对象
– page对象
• page对象代表JSP本身,更准确的说,它代表JSP被转译后的 Servlet。因此,他可以调用Servlet类所定义的方法。实际开发中很 少使用
– config对象
• 该对象里存放Servlet的初始参数值(初始数据结构)。和page对象 一样都很少被用到
*
20
CASI
JSP内置对象Ⅲ
• Input/Output有关的内置对象
– out对象
• out对象代表了向客户端发送数据的对象,与response对象不同,通过out对 象发送的内容将是浏览器需要显示的内容,是文本级的,可以通过out对象 直接向客户端写一个由程序动态生成的HTML文件

jsp简介

jsp简介

jsp文件放入其中。 然后通过
http://localhost:8080/ jspexample /*.jsp 访问.
3安装MyEclipse6.0 All In One,里面集成了 JRE, Eclipse3.3,简易的web服务器 MyEclipse Tomcat和数据库服务器
MyEclipse Derby。
Jsp简介
• JSP工作原理
• JSP运行及开发环境的搭建
什么是Jsp
• JSP(Java Server Pages):
(1)基于Java 语言的一种动态网页技术 (2) Jsp页面部署在Web服务器端(Server)供客户端通过 浏览器(Browser)访问。
Jsp页面的主要构成
(1)HTML、CSS标记、JavaScript脚本代码等 (2)Java代码、JSP指令、JSP标记、EL表达式等 其中 (1) 是由浏览器解释执行,属于页面的“静态”元素; (2)在服务器端执行,属于页面的“动态”元素。
Myeclipse6.0的使用步骤
(1)启动Myeclipse6.0 (2)选择工作空间 (3)设置应用服务器(Tomcat6.x) (4)创建Web工程 (5)添加、编辑JSP程序 (6)部署JSP程序 (7)启动tomcat (8)在浏览器中测试JSP程序
Step(3)设置应用服务器(Tomcat6.x): Window-preferences-MyEclipse-ServersTomcat-Tomcat6.x ① 启用(Enable) ②设置tomcat安装目录c:\tomcat6 ③设置tomcat启动所用jdk:使用默认的 myeclipse6.0即可。 Step(5)右击webroot文件夹来创建jsp页面。

jsp考试题及答案

jsp考试题及答案

jsp考试题及答案一、选择题(每题2分,共20分)1. JSP页面是由哪种语言编写的?A. JavaB. JavaScriptC. HTMLD. XML答案:A2. JSP页面通常被编译成什么类型的文件?A. .javaB. .jspC. .classD. .html答案:C3. Servlet是JSP的基础,以下哪个不是Servlet的生命周期方法?A. init()B. service()C. doGet()D. destroy()答案:C4. 在JSP中,以下哪个指令用于指定JSP页面使用的JSP版本?A. <%@ page version="2.0" %>B. <%@ include file="header.jsp" %>C. <%@ taglib uri="/jsp/jstl/core" prefix="c" %>D. <%@ page import="java.util.*" %>答案:A5. JSP页面中,以下哪个不是标准的JSP动作元素?A. <jsp:forward>B. <jsp:include>C. <jsp:useBean>D. <jsp:scriptlet>答案:D6. 在JSP页面中,以下哪个不是表达式(EL)的隐式对象?A. requestB. responseC. sessionD. out答案:D7. JSP页面中,以下哪个不是JSTL(JavaServer Pages Standard Tag Library)提供的标签?A. <c:forEach>B. <c:if>C. <c:choose>D. <jsp:scriptlet>答案:D8. 在JSP页面中,以下哪个不是JSP内置对象?A. requestB. responseC. sessionD. app答案:D9. JSP页面中的注释,以下哪个不会被发送到客户端浏览器?A. HTML注释B. JSP注释C. 单行注释(//)D. 多行注释(/* */)答案:B10. 在JSP页面中,以下哪个不是JSP的指令?A. <%@ page %>B. <%@ include %>C. <%@ taglib %>D. <%@ response %>答案:D二、填空题(每空2分,共20分)1. JSP页面的默认后缀是 jsp 。

JSP技术介绍

JSP技术介绍
有非常快的响应(这避免了CGI-BIN为每个HTTP请求生
成一个新的进程的问题)。

JSP页面可以包含在多种不同的应用体系结构或 者模型中,可以用于由不同协议、组件和格式所组成 的联合体中。基于JSP的动态信息发布技术是一个开放 的、可扩展的建立动态Web页面的标准。不论采用什 么创建工具,开发人员都可以使用JSP页面来创建可移 植的Web应用,在不同的Web应用服务器上运行。

JSP页面通常被编译成为Java Servlets,这是一个标 准的Java扩展。页面开发人员能够访问全部的Java应用 环境,以利用Java技术的扩展性和可移植性。

当JSP页面第一次被调用时,如果它还不存在,就会
被编译成为一个Java Servlets类,并且存储在服务器的内
存中。这就使得在接下来的对该页面的调用中,服务器会
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运 行Servlet/JSP,到由多台服务器进行集群和负载均衡,到 多台Application进行事务处理,消息处理,一台服务器
到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很
像,Java已经有了许多非常优秀的开发工具,而且许多可

由于JSP页面的内置脚本语言是基于Java的,而 且所有的JSP页面都被编译成为Java Servlets,所以 JSP页面具有Java技术的所有好处,包括健壮的存储 管理和安全性。作为Java平台的一部分,JSP拥有 Java编程语言“一次编写,各处运行”的特点。
JSP的应用模型
利用JSP技术,动态信息由JSP页面来表现,JSP 页面由安装在Web服务器或者使用JSP的应用服务器 上的JSP引擎执行。JSP引擎接受客户端对JSP页面的 请求,并且生成JSP页面作为对客户端的响应。

JSP简介

JSP简介

2/3
更改文件的编码类型 窗口 首选参数 常规 内容类型 JSP—>‘改’ 单击“更新” 确定 7、 设置欢迎页面 欢迎页面,就是 Web 应用的默认访问页面,一般在 Web 项目的配置文件 web.xml 中设置欢迎页面,假设在一个 Web 应用(上下文路径名称为 xinxin)中存在一个 index.jsp 页面,把它设置为欢迎页面,代码如下: <web-app> …… <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 可以设置多个欢迎页面,如果没有找到第一个、则会找第二个……,如果都没有找到,会报 404 错误。 在 Tomcat 的 conf 目录下有一个 web.xml 文件,这是 Tomcat 容器的全局配置文件。各 Web 项目可以单独配置自己 的 web.xml 文件。如果各单独的 Web 项目没有明确指定,则按照 Tomcat 的全局配置文件设置属性,否则按照各 Web 项目的配置信息进行设置。 8、 Web 容器处理 JSP 文件请求。 Web 容器处理 JSP 文件请求需要经过三个阶段。 (1)、翻译(translation)阶段。JSP 文件会被 Web 容器中的 JSP 引擎转换成 Java 源码。 (2)、编译(compilation)阶段。Java 源码会被编译成可执行的字节码。 (3)、执行阶段。容器接受了客户端的请求后,执行编译成字节码的 JSP 文件。处理完请求后,容器把生成的页面反 馈给客户端进行显示。 一旦 Web 容器把 JSP 文件翻译和编译完,来自客户端的每一个 JSP 请求就可以重用这个编译好的字节码文件,没有必 要再把同一个 JSP 进行翻译和编译了。这大大提高了 Web 应用系统的性能。 由于可以重用编译好的字节码文件, 所以 JSP 文件在第一次请求时会比较慢, 而之后对同样的 JSP 文件的请求会非常快。 如果对 JSP 进行了修改,容器会及时探测到这个修改,并重新进行翻译和编译。 Web 容器(如:Tomcat)提供 JSP 引擎,负责 JSP 文件的执行,提供 JSP 的运行时环境。 本文作者:xinxin

Jsp详解

Jsp详解

Jsp详解1.简介2.Jsp的运行原理3.Jsp的语法1.Jsp模板元素2.Jsp中的脚本表达式3.Jsp中的脚本片段4.Jsp的声明5.Jsp注释6.Jsp指令1.首先我们来看一下page指令的用法2.下面在来看一下include指令3.最后来看一下taglib指令7.Jsp中内置的9个隐式对象8.JSP标签库1.jspinclude标签2.jspforward标签3.jspparam或者jspparams标签4.jspuseBean标签jspsetProperty标签jspgetProperty标签9.Jsp中怎么排查错误简介:JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。

JSP这门技术的最大的特点在于,写jsp就像在写html,但:它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。

不管是JSP还是Servlet,虽然都可以用于开发动态web资源。

但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。

其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。

让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。

因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

Jsp的运行原理:目标:Web服务器是如何调用并执行一个jsp页面的?Jsp页面中的html排版标签是如何被发送到客户端的?Jsp页面中的java代码服务器是如何执行的?Web服务器在调用jsp时,会给jsp提供一些什么java对象?思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?其实Jsp就是一个Servlet,所以我们要先介绍Servlet的相关技术,当我们第一次访问Jsp 的时候,Jsp引擎都会将这个Jsp翻译成一个Servlet,这个文件存放在Tomcat中的work目录中,这里,我们新建一个MyJsp.jsp页面,然后访问以下,我们看一下翻译后的源码:1.<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5.<head>6.7.<title>My JSP 'MyJsp.jsp' starting page</title>8.9.</head>10.11.<body>12. This is my JSP page. <br>13.</body>14.</html>1.package org.apache.jsp;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import javax.servlet.jsp.*;6.import java.util.*;7.8.public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase9.implements org.apache.jasper.runtime.JspSourceDependent {10.11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();12.13.private static java.util.List _jspx_dependants;14.15.private javax.el.ExpressionFactory _el_expressionfactory;16.private org.apache.AnnotationProcessor _jsp_annotationprocessor;17.18.public Object getDependants() {19.return _jspx_dependants;20. }21.22.public void _jspInit() {23. _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());25. }26.27.public void _jspDestroy() {28. }29.30.public void _jspService(HttpServletRequest request, HttpServletResponse response)31.throws java.io.IOException, ServletException {32.33. PageContext pageContext = null;34. HttpSession session = null;35. ServletContext application = null;36. ServletConfig config = null;37. JspWriter out = null;38. Object page = this;39. JspWriter _jspx_out = null;40. PageContext _jspx_page_context = null;41.42.43.try {44. response.setContentType("text/html;charset=utf-8");45. pageContext = _jspxFactory.getPageContext(this, request, response,46.null, true, 8192, true);47. _jspx_page_context = pageContext;48. application = pageContext.getServletContext();49. config = pageContext.getServletConfig();50. session = pageContext.getSession();51. out = pageContext.getOut();52. _jspx_out = out;53.54. out.write("\r\n");55. out.write("\r\n");56. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");57. out.write("<html>\r\n");58. out.write(" <head>\r\n");59. out.write(" \r\n");60. out.write(" <title>My JSP 'MyJsp.jsp' starting page</title>\r\n");61. out.write(" \r\n");62. out.write(" </head>\r\n");63. out.write(" \r\n");64. out.write(" <body>\r\n");65. out.write(" This is my JSP page. <br>\r\n");66. out.write(" </body>\r\n");67. out.write("</html>\r\n");68. } catch (Throwable t) {69.if (!(t instanceof SkipPageException)){70. out = _jspx_out;71.if (out != null && out.getBufferSize() != 0)72.try { out.clearBuffer(); } catch (java.io.IOException e) {}73.if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);74. }75. } finally {76. _jspxFactory.releasePageContext(_jspx_page_context);77. }78. }79.}我们看到,这个类继承了org.apache.jasper.runtime.HttpJspBase,要想看到这个类的源码,我1./*2. * Licensed to the Apache Software Foundation (ASF) under one or more3. * contributor license agreements. See the NOTICE file distributed with4. * this work for additional information regarding copyright ownership.5. * The ASF licenses this file to You under the Apache License, Version 2.06. * (the "License"); you may not use this file except in compliance with7. * the License. You may obtain a copy of the License at8. *9. * /licenses/LICENSE-2.010. *11. * Unless required by applicable law or agreed to in writing, software12. * distributed under the License is distributed on an "AS IS" BASIS,13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14. * See the License for the specific language governing permissions and15. * limitations under the License.16. */17.18.package org.apache.jasper.runtime;19.20.import java.io.IOException;21.22.import javax.servlet.ServletConfig;23.import javax.servlet.ServletException;24.import javax.servlet.http.HttpServlet;25.import javax.servlet.http.HttpServletRequest;26.import javax.servlet.http.HttpServletResponse;27.import javax.servlet.jsp.HttpJspPage;28.import javax.servlet.jsp.JspFactory;29.30.import piler.Localizer;31.32./**33. * This is the super class of all JSP-generated servlets.34. *35. * @author Anil K. Vijendran36. */37.public abstract class HttpJspBase38.extends HttpServlet39.implements HttpJspPage40.41.42.{43.44.protected HttpJspBase() {45. }46.47.public final void init(ServletConfig config)48.throws ServletException49. {50.super.init(config);51. jspInit();52. _jspInit();53. }54.55.public String getServletInfo() {56.return Localizer.getMessage("");57. }58.59.public final void destroy() {60. jspDestroy();61. _jspDestroy();62. }63.64./**65. * Entry point into service.66. */67.public final void service(HttpServletRequest request, HttpServletResponse response)68.throws ServletException, IOException69. {70. _jspService(request, response);71. }72.73.public void jspInit() {74. }75.76.public void _jspInit() {77. }78.79.public void jspDestroy() {80. }81.82.protected void _jspDestroy() {83. }84.85.public abstract void _jspService(HttpServletRequest request,86. HttpServletResponse response)87.throws ServletException, IOException;88.}好吧,看到了,继承了HttpServlet类,所以说其实Jsp就是一个ServletJsp的语法:1.JSP模版元素2.JSP表达式3.JSP脚本片段4.JSP注释5.JSP指令6.JSP标签7.JSP内置对象8.如何查找JSP页面中的错误Jsp模板元素JSP页面中的HTML内容称之为JSP模版元素。

JSP基本语法


26
Jsp动作标记- jsp:forward动作标记
3、 jsp:forward动作标记 jsp:forward动作允许将用户请求定位到其它页 面,基本的语法格式是:
<jsp:forward page={"要转向的页面url"|"<%=表达式 %>"} /> 或者 <jsp:forward page={"要转向的页面url"|"<%=表达式 %>"} > <jsp:param name="属性名" value="属性值" /> </jsp:forward>
6
演示:示例 1
JSP Scriptlet 2-1
JSP Scriptlet概念
JSP Scriptlet就是在JSP页面里嵌入一段Java代码
JSP Scriptlet在JSP页面中的表现形式
<% Java代码 %>
7
JSP Scriptlet 2-2
使用JSP Scriptlet进行JSP编程
第九章
JSP 基础(二) 脚本、指令与动作的使用
回顾
JSP 的英文全称是JavaServer Page,是一种 Java服务器端编程技术之一,用于创建动态网页 JSP的页面由静态内容、JSP Scriptlet、 JSP 表 达式、申明、JSP 指令和注释等组成 JSP 生命周期包括转换、编译和执行阶段 JSP 页面可使用 Dreamweaver 和 MyEclipse8.5 等开发工具来创建
24
Jsp动作标记- jsp:param动作标记
ห้องสมุดไป่ตู้ ch9_1.jsp文件内容: <%@ page contentType="text/html;charset=GB2312" %> <%! public String getMax(double x,double y){ if (x>y){ double temp; temp=x; x=y; y=x; } return ("大数是:"+y+",小数是:"+x); } %>

什么是jsp

什么是jsp1、什么是jsp呢?实际上jsp就是⼀个servlet在html页⾯中嵌⼊我们的java脚本jsp的执⾏过程1、翻译阶段jsp在进⾏请求的时候会先被翻译成java⽂件2、编译阶段在将java⽂件编译成.class⽂件3、执⾏将处理之后的结果推送到我们的页⾯进⾏展⽰如果我们jsp页⾯第⼆次访问直接加载编译好的.class⽂件,如果说第⼆次加载整整个⽂件,它修改了会再次进⾏翻译,在编译在执⾏2、jsp页⾯元素组成1、page指令作⽤:设置内部的多个属性定义整个页⾯的属性设置的属性在整个页⾯都可以使⽤2、⼩脚本和表达式⼩脚本: <% ⼩脚本 ---java代码 %>表达式: <%= %> 你可以堪称是输出语句3、静态内容HTML静态⽂本4、指令:以“<%@ ” 开始,以“%> ” 结束5、声明 --⽅法的声明<%! ⽅法 %>6、注释<%-- 客户端不能查看到 --%>2、jsp中使⽤jdbc访问数据库需求:查询学⽣表信息展⽰到我们的jsp页⾯ jsp+jdbc 采⽤三层架构⽅式采⽤的是三层架构的格式1、将我们⽤的三层架构的包打出来2、编写我们的basedaoz直接将我们之前写好的basedao拿过来使⽤3、编写我们的实体对象(student)public class StudentEntity {private int stuId;private String stuName;private String gender;private int age;private Date birthday;private int studentNO;private int ClassID;private String city;private String email;public int getStuId() {return stuId;}public void setStuId(int stuId) {this.stuId = stuId;}public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public int getStudentNO() {return studentNO;}public void setStudentNO(int studentNO) {this.studentNO = studentNO;}public int getClassID() {return ClassID;}public void setClassID(int classID) {ClassID = classID;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}4、编写dao层接⼝//查询学⽣表中所有信息public List<StudentEntity> getStuList(String sql);5、编写dao接⼝实现PreparedStatement pst = null;ResultSet rs = null;@Overridepublic List<StudentEntity> getStuList(String sql) {//声明⼀个最终返回的集合List<StudentEntity> stulist = new ArrayList<StudentEntity>(); //连接数据库Connection connection=BaseDao.getConnection();//执⾏sql--先产⽣⼀个PreparedStatementtry {pst = connection.prepareStatement(sql);rs = pst.executeQuery(); //拿到结果集while(rs.next()) {//声明⼀个学⽣对象StudentEntity student = new StudentEntity();student.setStuId(rs.getInt("stuId"));student.setStuName(rs.getString("stuName"));student.setAge(rs.getInt("age"));student.setCity(rs.getString("city"));stulist.add(student);//将对象添加到集合中}} catch (SQLException e) {e.printStackTrace();}return stulist;}6、编写service接⼝//查询student表所有信息public List<StudentEntity> findAll();7、编写service接⼝实现//实例化dao层对象StudentDaoImpl StudentDao = new StudentDaoImpl();@Overridepublic List<StudentEntity> findAll() {//编写查询sqlString sql = "select * from studentinfo";//调⽤dao层中的查询⽅法List<StudentEntity> userlist =StudentDao.getStuList(sql);return userlist;}8、编写jsp---stuinf.jsp将我们学⽣信息展⽰到页⾯中<%@page import="java.util.List"%><%@page import="com.dzqc.testStu.entity.StudentEntity"%><%@page import="com.dzqc.testStu.service.impl.StudentServiceImpl"%> <%@ 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><table border="2" align = "center"><caption>学⽣信息列表</caption><tr><td>学号</td><td>姓名</td><td>年龄</td><td>城市</td></tr><!-- 读取业务层数据 --><%//实例化业务层对象StudentServiceImpl studentServiceImpl = new StudentServiceImpl();//调⽤查询学⽣多有的信息⽅法// List<StudentEntity> stulist =studentServiceImpl.findAll();List<StudentEntity> stulist = studentServiceImpl.findAll();for(int i = 0 ; i<stulist.size();i++){StudentEntity stu =stulist.get(i);%><tr><td><%=stu.getStuId() %></td><td><%=stu.getStuName() %></td><td><%=stu.getAge() %></td><td><%=stu.getCity() %></td></tr><%}%></table></body></html>。

jsp简介

一、jsp简介JSP (java Server Pages)是服务器端的脚本语言,是一种在HTML页面中加入Java语言而生成动态页面的技术:加入了新的标签(<%,%>,…)。

JSP是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。

JSP页面由HTML代码和嵌入其中的Java代码所组成。

服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

二、JSP的执行过程客户端请求JSP页面——>JSP Parser解析*.jsp编译为*.java——>javac命令编译成*.class——>执行class文件——>响应返回结果给客户端JSP代码中包含JSP元素和Template data两类。

Template data指的是JSP引擎不处理的部分,就是JSP引擎会把除在标记<%...%>以外的部分直接传递出去而不进行任何处理。

JSP在第一次或修改JSP文件后执行都会调用JSP Parser将*.jsp文件编译成servlet程序,所以会比较慢。

三、JSP基本语法1. 两种注释类型(1)HTML注释可以在JSP代码中添加一段HTML格式的注释,此注释发生到客户端,但不在页面上显示,语法如下:<!-- HTML格式的注释,在客户端查看源代码时可见--><!-- 此注释由<%=PRogrammer%>添加-->如果programmer为hackiller,则在客户端返回的注释是<!-- 此注释由hackiller添加-->(2)JSP注释写在JSP代码中,但不发送到客户端。

<%-- JSP注释,该注释会在JSP编译时被忽略掉--%><%-- /*Scriptlet中的多行注释*/ --%><%-- /**Scriptlet中的多行注释,可以用javadoc从java文件中提取出来*/ --%><%-- JSP的单行注释--%>2. 3个脚本元素(1)声明(Declaration)全局变量<%! int i=0; String str="Hello World!"; %>(2)表达式(Expression)在JSP代码中,经常使用表达式来输出变量的值,可以在任何地方<%! int a=1; int b=2; String str="Hello World!"; %><%=a+b%> <%=str>PS:不能用“;”号来作为表达式的结束符。

jsp介绍


18
Hello.jsp
<%@page language="java"%> <%@page contentType="text/html;charset=gb2312"%> <HTML> <head > <title>Hello World!</title> </head> <body bgcolor="#FFF000"> <%String msg="我的第一个jsp程序!"; out.println("Hello World!"); %> <H3>现在时间是: <%= new java.util.Date()%> </H3> <%=msg%> </body> </HTML>
Web程序设计模式与运行原理
Web服务器与动态网页 服务器与动态网页
Web程序设计模式与运行原理
B/S模式的应用程序相对于传统的 模式的应用程序相对于传统的C/S模 模式的应用程序相对于传统的 模 式的应用程序来讲无疑是一个巨大的进步 。主要优点如下: 主要优点如下: (1)开发、维护成本较低 )开发、 (2)可移植性高 ) (3)用户界面统一 )
怎样运行查看jsp程序?
1、启动Tomcat服务器 2、将hello.jsp程序拷贝到Tomcat的\Tomcat 5.0\webapps\ROOT文件夹下,使用默认的根 文件夹 3、打开浏览器输入 http://127.0.0.1:8080/hello.jsp或 http://localhost:8080/hello.jsp
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. JSP是什么?作用?特点? jsp是一个web技术,他能够动态的显示数据,他可以有一些标记语言,与Java代码组成。

作用:就是显示数据。 特点:可以快速进行显示及应用 2,jsp生命周期。jsp与servlet的关系

当你第一次被访问的时候,首先将JSP变为servlet(然后就是servlet的生命周期) 3,jsp核心语法(jsp就是一个类) 1),jsp小脚本<%java code%> <%
int i = 0;
this.exec();
%>

2),jsp 的表达式<%=%> <%!
int count = 0;
%> <%!
public void exec(){
System.out.println("tttttttt");
}
%>

3),jsp的声明<%!声明代码>既可以声明变量,也可以声明函数
JSP 声明可以看成是定义类这一层次的变量和方法的地方。
JSP 声明由 < %! 开始, %> 结束。如“ < %! String str="0"; %> ” 定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类中声明成员变量一样。

4,jsp内置对象(九个) 编辑本段JSP九种内置对象: request, response, out, session, application, config, pagecontext, page, exception. 一.request对象: 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。

二.response对象: 对客户的请求做出动态的响应,向客户端发送数据。

三.session对象 1.什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。 2.session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

四.aplication对象 1.什么是application: 服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。 2.application对象常用方法: (1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。 (2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。

五.out对象 out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。

六 page java.lang.Object 对应this关键字。JSP网页本身 page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系: Object page = this; 在JSP页面中,很少使用page对象。

七?config javax.servlet. ServletConfig 的实例,该实例代表该JSP 的配置信息。常用的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes() 等方法。事实上, JSP 页面通常无须配置,也就不存在配置信息。因此,该对象更多地在Servlet 中有效。

八? exception java.lang.Throwable 的实例,该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page 的isErrorPage 属性为true 时,该对象才可以使用。常用的方法有getMessageO和printStackTraceO等。

九? pageContext javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据。常用的方法有getServletContextO和getServletConfigO等。 //使用pageContext 设置属性,该属性默认在page 范围内 pageContext. setAttribute ("page" , "hello") ; //使用request 设置属性,该属性默认在request 范围内 request. setAttribute ("request" , "hello"); //使用pageContext将属性设置在request 范围中 pageContext.setAttribute("request2" , "hello" , pageContext.REQUEST_SCOPE); // 使用session将属性设置在session 范围中 session.setAttribute("session" , "hello"l; //使用pageContext将属性设置在session范围中 pageContext.setAttribute("session2" , "hello" , pageContext.SESSION_SCOPE); //使用application将属性设置在application范围中 application. setAttribute ("app" , "hello") ; //使用pageContext 将属性设置在application 范围中 pageContext.setAttribute("app2" , "hello" , pageContext.APPL 工CATION_SCOPE) ;

6,jsp的注意事项 第一:在JSP中尽量减少java代码,以便后期的维护。 第二;在jsp中使用注释时一定要配合于html注释 <%-- jsp注释 --%> 第三:尽量使用HTML注释,来使得页面维护管理方便 第四:在使用出现怪异现象,请删除web下的工程目录 第五,在发布jsp,或整个web。建议在没有提供全方位服务时,将所以jsp页面运行一次,以便提升速度

7,jsp新的部署方式 五种JSP的编译器指引如下所示: 1 编译器指引 <%@ 编译器指引 %> 2 预定义 <%! 预定义 %> 3 运算式 <%= 运算式 %> 4 程序代码 <% 程序代码 %> 5 注解 <%-- 注解 --%>

JSP指令包括:page指令;taglib指令;include指令。 指令的形式一般为:<%@ 指令名 [...一个或多个属性...]%>。 指令类似于动作,也可以有一些属性。@符号和指令名之间的空格以及最后一个属性与结束%>之间的空格都是可选的。 jsp指令用于设置,通过jsp指令可以有效减少Java代码。配置指令用于设置页面的属性值。

includ用于页面的包含, taglab用于引入外部标签库 page 指令用于设置页面属性的包含 <%@ page language="java" pageEncoding="ISO-8859-1"%> 属性简介(1) autoFlush:值为true或false,指的是该页面是否自动刷新缓存。默认值是true。 buffer:指的是页面的缓存有多大,默认是8k。 language:指的是页面所支持的语言,目前就只有一个Java语言。 属性简介(2) errorPage:指定该页面中的代码出现了异常后,处理的页面。 isErrorPage:指定当前页是否可以作为其他Jsp页面的错误页面。为true,页面可以使用exception对象,为false,页面不可以使用exception对象,默认值false。 session:是否支持session默认为true。 属性简介(3) extends:继承其他页面。很少用,几乎不用。 info:页面信息,getServletInfo获取该信息。 isThreadSafe:是否是支持线程安全,为true,Jsp可以同时处理多个请求。为false,一次只能处理一个请求。 属性简介(4) import:如果jsp页面中用到io对象或者集合对象,就需要导入io包或者util包。 注意的是当要导入多个包的时候,可以在page指令的import属性中一次将多个包导入,各包之间用逗号隔开即可。 如:import=”java.io.* , java.util.*”或者 <%@ page import="java.io.*"/>
<%@ page import="java.util.*"/>
后期并不常用。
属性简介(5)
contentType:定义Jsp的字符编码和页面响应的MIME类型。默认值是:text/html;charset=
“ISO8859-1”
pageEncoding:Jsp页面的字符编码。默认值:“ISO8859-1”
区别:
应答的时候,以contentType的值为主,如果没有定义该属性,以pageEncoding为主。
本地存储的时候以pageEncoding为主。
通常两个属性的字符编码是一致的,写一个即可。
taglib指令
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %> 可以在页面中使用自定义的标签。 实际开发中,Jsp页面中的java代码会被这些标签所取代。 增强了阅读性。

相关文档
最新文档