1、JSP简介
JSP---Java Server Pages
拥有servlet的特性与优点(本身就是一个servlet)
直接在HTML中内嵌JSP代码
JSP程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行 只有当客户端第一次请求JSP时,才需要将其转换、编译
2、 Scriptlet
<%=代码%> 局部变量
3、 Declaration
<%!代码%> 成员变量,在此声明的变量、方法都会被保留成唯一的一份,直到JSP程序停止执行
<!-- html注释-->
<%--服务器端注释--%>
<%//服务器端单行注释
/*服务器端多行注释*/
%>
内置对象:out、request、response,exception;
服务器端对象没有办法阻止服务器端程序执行的,只不过显示不出来。<!--<%System.out.println("aaaaaa")%> -->
<%int i%>这段代码在服务器端执行的,客户端接到的是值
<script>
var ii=0;
<script>客户端执行
<%System.out.println(ii);%>服务器端执行 这句话先执行
<script>
<%out.println("var ii=10");%>//服务器端把这句话传回客户端。
alert(ii);
</script>
4、Directive 指令
(编译指令)相当于在编译期间的命令
<%@page language=“script language”|
extends=“className”|
import=“importList”|
buffer=“none|kb size”| --none:不缓冲,默认8k
session=“true|false”| --是否可以使用session,默认true
autoFlush=“true|false” --缓冲器是否自动清除,默认true
isThreadSafe=“true|false”| --默认false(永远不要设成true)
info=“infoText”| --任何字符
errorPage=“errorPageUrl”|
isErrorPage=“true|false”|
contentType=“contentTyepInfo”|
pageEncoding=“gb2312”
%>
<%@page contentType="text/html;charset=gb2312"%>如果页面中文出不来,就加上这句话。
<@page errorPage="ErrPage.jsp"%> 页面1
<@page isErrorPage="true" %>页面2 当前页面是一个处理异常的java页面。
错误信息:<%=exception.getMessage()%>
5、include
将指定的JSP程序或者HTML文件包含进来
格式:<%@include file=“fileURL%>
JSP Engine会在JSP程序的转换时期先把file属性设定的文件包含进来,然后开始执行转换及编译的工作。(原封不动的把文件的代码copy到该位置,然后进行转换和编译,只生成一个java和class)
不能向fileURL中传递参数。在编译期间传参数无意义。
包含页面和被包含页面用的是同一个request对象。
包含页面和被包含页面的编码字符集要一致。
6、Action
常见的:
jsp:useBean
jsp:setProperty
jsp:getProperty
jsp:include
jsp:forward
jsp:param
jsp:plugin
嵌入applet
6.1、jsp:include
<jsp:include page="dage.jsp" flush="true"/>
用于动态包含JSP程序或HTML文件等
除非这个指令会被执行到,否则它是不会被Tomcat等JSP Engine编译。
<jsp:include page=“URLSpec” flush=“true”>
<jsp:param name=“ParamName” value=“paramValue”/>jsp:param用来设定include文件时的参数和对应的值
</jsp:include>
<jsp:include page="URLSpec?ParamName=paramValue" flush="true">
</jsp:include> 作用相同
和编译指令include的区别:
include编译指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入,然后再编译执行;而include指令在转换时期是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入
Include不能带参数, 而<jsp:include>可以
动态包含的文件和被包含文件用的不是同一个request对象
被包含页面可以取出包含页面的参数。
包含页面可以给被包含页面传参数。
被包含页面包含的东西比包含页面东西要多。
产生两个class文件
两种包含:静态包含常用,动态包含不常用!
6.2、sendRedirect
test.jsp
response.sendRedirect("forforward1.jsp");//往客户端发指令,让客户端转向forforward1.jsp
response.sendRedirecct("http://www.google.com");//这句话也可以。
System.out.println("ddd");//这条指令会被执行
test.jsp?param=paramvalue 如果传参数,forforward1.jsp是接收不到的。
response.sendRedirect("/forforward1.jsp"); /表示的是http://127.0.0.1/
6.3、jsp:forward
<jsp:forword page="forforward.jsp"> 在服务器端内部进行转向。所以客户端浏览器地址栏无变化
虽然是不同的对象,但可以取到上一页面的参数。forward语句不会发给客户端 forward后的语句不会被执行了。
<jsp:forword page="/forforward.jsp"> /代表的是 http://127.0.0.1/webapp根路径/
可以传参数,不但当前页面可以给下一个页面传参数(<jsp param/>),而且当前页面能取得的参数,下一个页面也能取到。
6.4、Jsp:userBean
<jsp:userBean id="cb" class="bean.CounterBean"><jsp:userBean>
<%Counterbean cb=new CounterBean();%> 以上两句作用一样。
<jsp:setProperty name="cb" property="count" value="23"/> <%--cb.setCount(Integer.parseInt("23"))--%>
<jsp:getProperty name="cb" property="count"/> <%--out.print(cb.getCount())--%>
jsp:useBean各项参数含义:
id:对象实例名称
scope:Bean作用的范围,默认为page,对整个jsp页面有效 只是new出来一个javaBean对象,不是从篮子取。
class:Bean类名称(全名)
type:Bean实例类型,可以是本类,或其父类,或实现接口,默认为本类
Scope各项参数的意义:
page:仅涵盖使用JavaBean的页面
request:有效范围仅限于使用JavaBean的请求
session:有效范围在用户整个连接过程中(整个会话阶段均有效)
application:有效范围涵盖整个应用程序。也就是对整个网站均有效
<jsp:useBean id="counterBean" scope="request" class="bean.CounterBean"/>下一个页面也能取到counterBean的值
<%bean.CounterBean counterBean=(bean.CounterBean)request.getAttribute("counterBean");
if(counterBean==null)
{
counterBean=new bean.CounterBean();
request.setAttribute("counterBean",counterBean);
}
%> 以上两段代码作用一样!
<jsp:useBean id="entry" class="bean.SaleEntry" />
<jsp:setProperty
name="entry"
property="itemID"
value="<%=request.getParameter("itemID")%>" />
<jsp:setProperty
name="entry"
property="numItems"
param="numItems" />
<jsp:setProperty
name="entry"
property="discountCode"
param="discountCode" />
通过url传参数。
<jsp:getProperty name="entry" property="itemID" />
$<jsp:getProperty name="entry" property="itemCost" />
<jsp:useBean id="hello" class="bean.HelloBean" scope="request" >
<jsp:setProperty name="hello" property="*" />
</jsp:useBean>
7、乱码问题
a.html
<form action=b.jsp method=get>
<input name=user value="我们">
<input type=submit value=get>
</form>
<form action=b.jsp method=post>
<input name=user value=他们>
<input type=submit value=post>
</form>
<a href="b.jsp?user=你们">this is a link</a>
<jsp:forward page="b.jsp">
<jsp:param name="user" value="它们" />
<jsp:forward>
public static String URLEncode(String s,String enc)
{
if(s==null)
{return "null"}
if(enc==null)
{enc="ISO-8859-1"}
....
}
zhongwen="你好"//汉字
bytes=zhongwen.getBytes("GBK");//以GBK得到字节
zhongwen=new String(zhongwen.getBytes("GBK"),"iso8859-1");//以GBK得到字节,然后以iso8859-1编码 (四个问号,一个字节一个字符)
bytes=zhongwen.getBytes("iso8859-1");//以iso8859-1得到字节
bytes=zhongwen.getBytes("utf-8");//以utf-8的到字节(8个字节,一个iso8859-1编码的字符被编成两个字节)
zhongwen=new String(bytes,"utf-8");//以utf-8得到字节,再以utf-8编码。还原成ISO-8859-1;(四个问号)
bytes=zhongwen.getBytes("iso-8859-1");//以iso-8859-1得到字节。
new String(bytes,"GBK");//以iso-8859-1得到字节,再以GBK编码。还原成GBK;(汉字)
8、Servlet转到jsp
resp.sendRedirect(req.getContextPath()+/servlet_jsp/servlet_usejsp);
this.getSevletConfig.getServletContext().getRequestDispatcher("/servlet_jsp/ServletUseJsp.jsp").forward(req,resp); /是webapp的访问路径
getServletContext().getRequestDispatcher("/servlet_jsp/ServletUseJsp.jsp").forward(req,resp);
相关推荐
**JavaServer Pages(JSP)技术详解*...这个"jsp学习的ppt"涵盖了以上所有知识点,并可能包含实际示例和练习,是学习JSP的理想资源。通过深入学习和实践,开发者能够熟练掌握JSP技术,构建高效、可维护的Java Web应用。
### JSP知识点总结 #### 1. JSP简介 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,用于创建动态网页。它结合了HTML标记和Java代码,使得开发者可以在静态网页的基础上添加动态内容。JSP具有以下...
【JSP和Servlet知识点详解】 一、JSP与Servlet的区别 1. **本质与生成**:JSP(Java Server Pages)本质上是Servlet的一种简化形式,它将HTML代码和Java代码结合在一起,经过Web容器(如Tomcat)的处理,被编译成...
### Servlet与JSP知识点总结 #### 一、Servlet概述及基本使用 - **Servlet定义**:Servlet是一种服务器端的小程序,用于处理来自Web浏览器或其他HTTP客户端的请求,并返回响应。Servlet通常作为MVC架构模式中的...
jsp&servlet知识点总结.doc
**JSP基础课程知识点总结** **1. JSP简介** JSP(JavaServer Pages)是Java平台上的一个服务器端技术,用于创建动态网页。它允许开发者将HTML代码与Java代码结合,实现动态内容的生成。JSP的核心优势在于其与Java的...
根据提供的信息,我们可以总结出以下关于JSP与CSS的相关知识点: ### JSP页面与CSS样式集成 1. **在JSP页面中引入外部CSS样式表:** 在JSP页面中,可以通过`<link>`标签引入外部的CSS样式表文件。例如: ```html...
这份名为"知识点总结word.zip"的压缩包文件,很可能包含了一份精心整理的Java技术学习指南,帮助我们系统地理解和掌握这个强大的编程语言。下面,我们将详细探讨Java的核心概念和技术点,希望能为你的学习之路提供...
### JSP知识点个人总结 #### 一、JSP与Tomcat服务器配置 在学习JSP的过程中,正确配置服务器环境是至关重要的第一步。本节将详细介绍如何在Tomcat服务器上配置数据库连接池,以便后续开发中可以方便地进行数据库...
以下是对Servlet和JSP知识点的详细归纳: **Servlet** 1. **Servlet概念**:Servlet是Java编写的小型服务器端程序,运行在Web服务器上,用于处理客户端请求并返回响应。 2. **生命周期**:Servlet的生命周期包括...
以下是对Struts2知识点的详细总结: 1. **Struts2核心组件** - **FilterDispatcher**(或现在的`StrutsPrepareAndExecuteFilter`):这是Struts2的核心过滤器,它负责拦截请求,处理Action映射,并转发到相应的...
Web学习知识点总结涵盖了Web工作原理、HTTP协议、Web服务器缺陷及解决方案、Web应用程序的组成、Servlet等内容,这对于理解和掌握Web开发至关重要。 首先,HTTP(超文本传输协议)是Web通信的基础,它定义了客户端...
以下是对JavaWeb知识点的详细总结: 1. **Servlet**: Servlet是Java Web应用的基础,它是Java编写的应用程序,用于扩展服务器的功能。通过实现Servlet接口或继承HttpServlet类,我们可以处理HTTP请求并生成响应。 ...
本篇文章将深入探讨在Java学习过程中的一些关键知识点和容易混淆的概念。 基础篇: 1. JDK常用的包:Java Development Kit (JDK) 包含了Java运行环境和开发工具,其中核心的几个包如`java.lang`, `java.util`, `...
通过深入学习这些知识点,开发者可以更好地理解和利用JSP来构建高效、健壮的Web应用程序。同时,结合对JVM内存管理和设计模式的理解,可以优化应用性能,避免常见问题,提高系统的稳定性和扩展性。