`
xu520
  • 浏览: 81703 次
  • 性别: Icon_minigender_1
  • 来自: 金华
社区版块
存档分类
最新评论

JSP经典总结图表

 
阅读更多

jsp指令表

属性 描述 默认值 例子
language

定义要使用的脚本语言,目前只能是"java"

"java" language="java"
import

和一般的Java import意义一样,只

能是","隔开包或者类列表

默认忽略(即不引入其

它类或者包)

import="java.io.*,
java.util.Hashtable,
javax.servlet.jsp.*,
javax.servlet.http.*
session 指定一个Http会话中这个页面是否参与 true session="true"
buffer 指定到客户端输出流的缓冲模式,如果是none,则不缓冲,如果指定一数值,那么输出就用不小于这个值的缓冲区进行缓冲

不小于8kb,根据不同

的服务器可设置

buffer="64kb"
autoFlush true缓冲区满时,到达客户端输出被刷新;false缓冲区满时,出现运行异常,表示缓冲溢出 true autoFlush="true"
info 关于jsp页面的信息,定义一个字符串,可以使用servlet.getServletInfo()获得 默认忽略 info="一个测试页面"
isErrorPage 表示当前页面是否为其它页面的errorPage目标.如果被设置为true,则可以使用exception对象。相反,如果设置为false,则不可以使用exception对象 flase isErrorPage="false"
errorPage 定义此页面出现异常时调用的页面 默认忽略 errorPage="error.jsp"
isThreadSafe 用来设置jsp文件是否能多线程使用。如果设置为true,那么一个jsp能够同时处理多个用户的请求;相反,如果设置为false,一个jsp页面只能处理一个请求 true isThreadSafe="true"
contentType 定义jsp字符编码和页面相应的MiME类型。TYPE=MIMETYPE;charset=CHARSET text/html;charset=iso-8859-1

contentType="text/html

;charset=gb2312"

pageEncoding jsp页面的字符编码 pageEncoding="ISO-8859-1" pageEncoding="gb2312"
isELIgnored 制定EL(表达式语言)是否被忽略,如果为true,则容器忽略"${}"表达式的计算 默认值有web.xml描述文件的版本确定,Servlet2.3以前的版本将忽略 isELIgnored="true"


jsp内置对象

对象名 对象说明
page jsp网页本身
request 获得客户端的请求,包括从get/post请求传递过来的参数
session 与请求相关的会话
application 脚本程序的运行环境
pegeContext 管理网页属性
out 传送相应的输出流
config 脚本程序配置对象
response 网页传回客户端的反应
exception 处理异常和错误


jsp的四种取值范围

对象名 对象说明
page 设置到page对象里面的属性值,有效范围只在该jsp页面本身,通过客户端跳转,或服务器端跳转都会是设置到page对象里面的属性值失效
request 设置到request对象里面的属性值,有效范围除了在该jsp页面本身外,还可以通过在一次服务器跳转获得request对象里面的属性值,即在浏览器地址栏不变的情况下,通过第二次服务器跳转能使设置到request对象里面的属性失效
session 设置到session对象里面的属性值,只在一次会话范围内有效,即在一次浏览器为关闭的状态下,通过任何跳转session都有效,当打开第二个浏览器时,session失效
application 设置到application对象里面的属性值,在一次应用服务器范围内有效,即在一次为关闭得到服务器范围内,可以通过任何跳转,打开若干个浏览器窗口来访问设置到该application对象里面的属性值


jsp标签

jsp标签名 标签的使用
<jsp:useBean id="userInfo" class="user.User" scope="page"/> 该标签作用是实例化一个javaBean对象,id代表被实例化的一个javaBean对象的名字,class代表该javaBean的类型,即所在的具体位置,scope代表被实例化的这个javaBean对象的作用域

<jsp:setProperty

property="userName"

name="userInfo"

param="user"/>

该标签的作用有二:1.从客户提交过来的表单中获取请求内容;2.再把请求内容设置到javaBean当中去;property代表javaBean中的属性名,name代表被实例化的javaBean对象,param代表request中的参数名.该标签还可以写成<jsp:setProperty property="*" name="userInfo"/>javaBean对象自动把request中的所有参数设置到javaBean中去

<jsp:getProperty property="password" name="userInfo"/>

该标签的的作用是输出javaBean中的某个属性的值在jsp页面上,property指代javaBean中的某个属性,name代表应用的javaBean对象

<jsp:include page="index3.jsp"> <jsp:param name="pass" value="123"/>
</jsp:include>
该标签的作用用于包含某个页面,被包含的页面可以使静态,还可以是动态page代表被包含的页面文件名,<jsp:param name="pass" value="123"/>的作用是向被包含的页面的传递参数name参数名字,value代表参数的值
<jsp:forward page="index3.jsp"> <jsp:param name="password" value="123"/>
</jsp:forward>
该标签的作用是向某个动态页面进行服务器跳转,page指向被跳转的页面,<jsp:param name="pass" value="123"/>的作用是向跳转的页面传递参数name是参数名,value是参数值

jsp两种包含的区别

jsp两种包含 这两种包含的区别
1.include指令
<%@ include file=""
%>
这种包含是一个静态的包含,可以包含jsp文件,html文件,文本文件等。特点:先把文件包含进来,再一块执行----即先包含,再执行
2.<jsp:include page="index3.jsp"> <jsp:param name="pass" value="123"/>
</jsp:include>
这种包含既可以包含静态页面,还可以包含动态页面,并且还可以向被包含的页面传递参数,和中包含的特点:先将被包含的页面代码执行,再把它包含进来,即先执行,再包含

jsp中两种跳转的区别

jsp两种跳转 这两种跳转的区别
1.response.
sendRedirect("");
这是一种客户端跳转,跳转时浏览器地址栏内容会改变
2.<jsp:forward page="index3.jsp"> <jsp:param name="password" value="123"/>
</jsp:forward>
这是服务器跳转,跳转时浏览器地址栏内容不会改变的,还可以向被跳转的页面传递参数

JSP总结
java中文乱码的根本原因是
由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,WINXP,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法要多种有多种:
控制台中:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
Tomcat服务器端
进入Tomcat根目录的config,然后打开config下的server.xml文件
ctrl+f输入8080 在<Connector port="8080" 中加入URIEncoding="UTF-8"
在IDE中
首先设制或更改IDE的默认编码格式式。1)jsp页面中设置。2)wrokspace设置。
手工转换方式
Jsp页面:<%@pageEncoding=”UTF-8”%>
Servlet:
1 request.setCharacterEncoding("UTF-8");
Response.setContentType(“text/html;charset=”UTF-8”);
2
String a=request.getParameter("a");
String b=new String(a.getBytes("ISO-8859-1"),"UTF-8");
java.net.uerlEncoder.encode("字符串","UTF-8");
3
byte[] tempb=str.getBytes("UTF-8");
str=new String(dempb);
在过滤器中
public class SetEncodingFilter implements Filter {

private String defaultEncoding = "utf-8";

@Override
public void destroy() {
defaultEncoding = null;
}

@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding(defaultEncoding);
arg1.setCharacterEncoding(defaultEncoding);
arg2.doFilter(arg0, arg1);
}

@Override
public void init(FilterConfig arg0) throws ServletException {
String encoding = arg0.getInitParameter("encoding");
if (encoding != null) {
defaultEncoding = encoding;
}
}
}
//配置部署描述符
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.majm.filter.FilterDemo</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

1. 动态网站开发模式
软件部署模式
推模式(强制的)
拉模式(有请求响应的)
为什么需要动态网页
特点:
a) 交互性
b) 自动更新
c) 随机性
400客户端错误
未部署:News/index.html
url输入错误:WebRoot/index.html
目录不能被引用:news/WEB-inf/index.html
500服务器端错误

jsp中的文件路径错误
2. JSP简介
为什么需要jsp
Jsp 是在服务器端应用的程序
维护更方便
JSP中的注释规范:
<!——Html注释——>
<% //java单行注释 %>
<%——JSP 使用的注释——%> 优先考虑:不管里面有什么样代码,服务器都不会执行
JSP中的变量声明
<%! int age ;%> ——实例变量
<% int age ; %> ——局部变量
Java中 static int ——类变量
所有的JSP文件在第一次运行时都会自动编译成*.class文件
第一次 *.jsp——>*.java——>*.class——>运行显示
第二次 |—————————*.class|——>运行显示
修改以后
第三次 *.jsp——>*.java——>*.class-——>运行显示
第四次
3. JSP指令和脚步元素
JSP中的基本指令:
Page指令主要用来指名当前JSP页面的属性
<% @page %>
——设定MIME类型(告诉客户端浏览器时什么类型格式)
<% @page ContentType=”text/html; charset=utf-8”%>
——利用import语句导入类:<% @page import=”java.util.*,java.sql*;”%>
——JSP输出错处理:<% @page errorpage=”error.jsp”%>
——指名出错页:<% @page isErrorPage=”true.jsp”%>
——使用的编程语言:<% @page language=”java”%>
——缓冲设置处理:<% @page isAutoFlush=”true”%><% @page buffer=”8kb”%>

<jsp:include page=”url” />——区分一下动态还是静态,如果是动态,将它处理后包含
——动态的包含页面:能自动区分所包含的是静态页面还是动态的页面。
——执行时:
●如果请求的资源为静态资源则直接将资源包含处理与<%@include file=”url” %>相同
●如果请求的资源为动态,则先处理资源,之后将处理后的结果包含在一起
所有代码分别处理,处理完后再将代码的显示结果和处理结果包含进来

<%@include file=”url” %>——不管是什么类型的文件都可以被包含进来
——页面的包含:不管其文件内容如何只是将页面中的内容包含进来
——执行时:
○先将所有内容包含进来一起处理完后在将所有内容发送给客户端
所有代码包含进来后,一起进行处理,把所有代码合在一起包含进来

<jsp:forward page=”url”/>
属于标签指令形式代码:必须写在(%---%)中。
Forward属于服务器端无条件跳转语句
使用跳转语句,页面的内容已经是跳转了,但地址栏没有任何变化


4. JSP处理客户端请求
表单的两种提交形式:
method:传输数据形式,数据类型。
Action:表单数据程序,*.jsp,*.asp,*.php,servlet中

method的n重方式和应用类型
post: 大量数据
get: 下载
put: 上传
delete(首部): 服务器端删除
head: 头部信息
trace: 跟踪信息
options: 可以判断页面请求是否屏蔽

get和post的主要区别:
post:以流的方式来传输(不可见的) 不可以添加到收藏夹。
get:以查询字符窜来传输数据 可添加到收藏夹。明文传输,不安全,长度有限(255)。
除了post以外,所有的请求都是get方式传输的。

EJB:主要是在分布式的应用中。
Ipo:硬处理输出。

request:封装客户端请求数据。
response:封装服务器响应数据。

请求开关:requset.gerRequestDispatcher("目标文件").forward(request,respose);
只能在本应用中跳转。"/"本web应用。

发送重定向:response.sendRedirect("目标文件");
可以跳出本网站,本web应用。属于不同的请求。"/"服务器。

刷新:responst.setHead("refresh","1");

JAVA中:对象。方法.类。方法
JAVA中:对象必须先实例化再用,分配内存空间
Web Container: Web容器——为对象实例化

Request对象:
Request——>HttpServletRequest接口的实例化对象
HttpServletRequest有个父类:ServletRequest(为以后新出的协议提供)

JSP的内置对象分类
*与Servlet有关的隐含对象
——page ——config
*与Input/output有关的隐含对象(io有关)
——out ——request ——response
*JSP执行时,提供有关Context的隐含对象
——session ——application ——pageContext
*Error有关的隐含对象
——exception

JSP中可以采用下面方法设置和取得对象
public abstract void setAttribute(String name,Object value);

public abstract Object getAttribute(String name);

Request对象:
主要功能是服务器端接受客户端以HTTP方式传输给客户端数据,以便对其进行进一步处理,实现交互功能。
常用方法:蓝色为常用
getParameter(); ——接收请求参数的
setCharacterEncoding(); ——设置统一字符编码
getParameterValues(); ——返回的是数组类型
getParameterNames(); ——返回的是枚举类型:功能:取得客户端所有请求参数
getRemoteAddr(); ——取得客户端IP地址

5. JSP页面的访问控制
JSP内置的9大对象
pageContext 代表jsp页面上下文。常用的有getServletContext().getServletConfig()
exception 异常 只能用在错误页面(isErrorpage,"true");
out IsWriter输出流,支持中文——客户端流通道。
page 当前页面的java文件。创建出来的对象。
request 封装客户端请求数据
response 封装服务器响应数据
session 在一次会话中封装用户的数据
config 读取部署描述符 ServletConfig
application servlet应用上下文环境。(应用)ServletContext

session和application应用级区别
session : 单用户独享用
Application : 所有用户共享
用户离开时:
服务器对session会有一定的会话超时时间,一般都为30分钟。

内置对象在web容器中的应用范围
page——> request——> session——> application

性能的话:发送重定向效率要高的多。

开发中血的教训:
文件路径:不同的目录下,一定要用绝对路径。如(应用服务器名/*.jsp)
“.”代表本web应用
“/”代表复务器。(localhsot:8080)

Servlet总结

1.Servlet的生命周期
(1)服务器加载Servlet类---->服务器创建Servlet的一个实例---->Servlet的一个实例调用init()方法---->Servlet等待直到收到一个请求或它被服务器卸载---->Servlet调用service()方法----> Servletservice()方法处理请求返回输出到客户端
2.Servlet的继承关系
自定义Servlet--->HttpServlet--->GenericServlet--->Servlet
3.
Servlet的请求和响应
(1)ServletRequest: 代表Servlet的请求,它是一个高层的接口,HttpServletRequest是它的子接口
(2)ServletResponse: 代表Servlet的响应,它是一个高层的接口,HttpServletResponse是它的子接口
(3)ServletInputStream: Servlet的输入流
(4)ServletOutputStream: Servlet的输出流
4.
Servlet的跳转RequestDispatcher实例的获得
(1)通过ServletRequestgetRequestDispatcher()得到,但是这个方法里面的参数不需要加"/" ;
(2)通过ServletContextgetRequestDispatcher()得到,但是这个方法里面的参数必需要加"/" ;
5.ServletContext
对象的获得
(1)通过sessiongetServletContext()方法获得
(2)通过HttpServletgetServletContext()方法获得
(3)通过ServletConfiggetServletContext()方法获得
6.
Servlet的配置
<servlet>
<servlet-name>Servlet</servlet-name> //
Servlet的名字
<servlet-class>com.servlet.Servlet</servlet-class> //
Servlet的实体类
<init-param>
<param-name>initName</param-name> //Servlet的初始化参数名
<param-value>initValue</param-value> //
Servlet的初始化参数值
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name> //
两次Servlet的名字应该相同
<url-pattern>/login</url-pattern> //
Servlet的映射路径
</servlet-mapping>

jsp指令表

属性 描述 默认值 例子
language

定义要使用的脚本语言,目前只能是"java"

"java" language="java"
import

和一般的Java import意义一样,只

能是","隔开包或者类列表

默认忽略(即不引入其

它类或者包)

import="java.io.*,
java.util.Hashtable,
javax.servlet.jsp.*,
javax.servlet.http.*
session 指定一个Http会话中这个页面是否参与 true session="true"
buffer 指定到客户端输出流的缓冲模式,如果是none,则不缓冲,如果指定一数值,那么输出就用不小于这个值的缓冲区进行缓冲

不小于8kb,根据不同

的服务器可设置

buffer="64kb"
autoFlush true缓冲区满时,到达客户端输出被刷新;false缓冲区满时,出现运行异常,表示缓冲溢出 true autoFlush="true"
info 关于jsp页面的信息,定义一个字符串,可以使用servlet.getServletInfo()获得 默认忽略 info="一个测试页面"
isErrorPage 表示当前页面是否为其它页面的errorPage目标.如果被设置为true,则可以使用exception对象。相反,如果设置为false,则不可以使用exception对象 flase isErrorPage="false"
errorPage 定义此页面出现异常时调用的页面 默认忽略 errorPage="error.jsp"
isThreadSafe 用来设置jsp文件是否能多线程使用。如果设置为true,那么一个jsp能够同时处理多个用户的请求;相反,如果设置为false,一个jsp页面只能处理一个请求 true isThreadSafe="true"
contentType 定义jsp字符编码和页面相应的MiME类型。TYPE=MIMETYPE;charset=CHARSET text/html;charset=iso-8859-1

contentType="text/html

;charset=gb2312"

pageEncoding jsp页面的字符编码 pageEncoding="ISO-8859-1" pageEncoding="gb2312"
isELIgnored 制定EL(表达式语言)是否被忽略,如果为true,则容器忽略"${}"表达式的计算 默认值有web.xml描述文件的版本确定,Servlet2.3以前的版本将忽略 isELIgnored="true"


jsp内置对象

对象名 对象说明
page jsp网页本身
request 获得客户端的请求,包括从get/post请求传递过来的参数
session 与请求相关的会话
application 脚本程序的运行环境
pegeContext 管理网页属性
out 传送相应的输出流
config 脚本程序配置对象
response 网页传回客户端的反应
exception 处理异常和错误


jsp的四种取值范围

对象名 对象说明
page 设置到page对象里面的属性值,有效范围只在该jsp页面本身,通过客户端跳转,或服务器端跳转都会是设置到page对象里面的属性值失效
request 设置到request对象里面的属性值,有效范围除了在该jsp页面本身外,还可以通过在一次服务器跳转获得request对象里面的属性值,即在浏览器地址栏不变的情况下,通过第二次服务器跳转能使设置到request对象里面的属性失效
session 设置到session对象里面的属性值,只在一次会话范围内有效,即在一次浏览器为关闭的状态下,通过任何跳转session都有效,当打开第二个浏览器时,session失效
application 设置到application对象里面的属性值,在一次应用服务器范围内有效,即在一次为关闭得到服务器范围内,可以通过任何跳转,打开若干个浏览器窗口来访问设置到该application对象里面的属性值


jsp标签

jsp标签名 标签的使用
<jsp:useBean id="userInfo" class="user.User" scope="page"/> 该标签作用是实例化一个javaBean对象,id代表被实例化的一个javaBean对象的名字,class代表该javaBean的类型,即所在的具体位置,scope代表被实例化的这个javaBean对象的作用域

<jsp:setProperty

property="userName"

name="userInfo"

param="user"/>

该标签的作用有二:1.从客户提交过来的表单中获取请求内容;2.再把请求内容设置到javaBean当中去;property代表javaBean中的属性名,name代表被实例化的javaBean对象,param代表request中的参数名.该标签还可以写成<jsp:setProperty property="*" name="userInfo"/>javaBean对象自动把request中的所有参数设置到javaBean中去

<jsp:getProperty property="password" name="userInfo"/>

该标签的的作用是输出javaBean中的某个属性的值在jsp页面上,property指代javaBean中的某个属性,name代表应用的javaBean对象

<jsp:include page="index3.jsp"> <jsp:param name="pass" value="123"/>
</jsp:include>
该标签的作用用于包含某个页面,被包含的页面可以使静态,还可以是动态page代表被包含的页面文件名,<jsp:param name="pass" value="123"/>的作用是向被包含的页面的传递参数name参数名字,value代表参数的值
<jsp:forward page="index3.jsp"> <jsp:param name="password" value="123"/>
</jsp:forward>
该标签的作用是向某个动态页面进行服务器跳转,page指向被跳转的页面,<jsp:param name="pass" value="123"/>的作用是向跳转的页面传递参数name是参数名,value是参数值

jsp两种包含的区别

jsp两种包含 这两种包含的区别
1.include指令
<%@ include file=""
%>
这种包含是一个静态的包含,可以包含jsp文件,html文件,文本文件等。特点:先把文件包含进来,再一块执行----即先包含,再执行
2.<jsp:include page="index3.jsp"> <jsp:param name="pass" value="123"/>
</jsp:include>
这种包含既可以包含静态页面,还可以包含动态页面,并且还可以向被包含的页面传递参数,和中包含的特点:先将被包含的页面代码执行,再把它包含进来,即先执行,再包含

jsp中两种跳转的区别

jsp两种跳转 这两种跳转的区别
1.response.
sendRedirect("");
这是一种客户端跳转,跳转时浏览器地址栏内容会改变
2.<jsp:forward page="index3.jsp"> <jsp:param name="password" value="123"/>
</jsp:forward>
这是服务器跳转,跳转时浏览器地址栏内容不会改变的,还可以向被跳转的页面传递参数

JSP总结
java中文乱码的根本原因是
由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,WINXP,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法要多种有多种:
控制台中:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
Tomcat服务器端
进入Tomcat根目录的config,然后打开config下的server.xml文件
ctrl+f输入8080 在<Connector port="8080" 中加入URIEncoding="UTF-8"
在IDE中
首先设制或更改IDE的默认编码格式式。1)jsp页面中设置。2)wrokspace设置。
手工转换方式
Jsp页面:<%@pageEncoding=”UTF-8”%>
Servlet:
1 request.setCharacterEncoding("UTF-8");
Response.setContentType(“text/html;charset=”UTF-8”);
2
String a=request.getParameter("a");
String b=new String(a.getBytes("ISO-8859-1"),"UTF-8");
java.net.uerlEncoder.encode("字符串","UTF-8");
3
byte[] tempb=str.getBytes("UTF-8");
str=new String(dempb);
在过滤器中
public class SetEncodingFilter implements Filter {

private String defaultEncoding = "utf-8";

@Override
public void destroy() {
defaultEncoding = null;
}

@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding(defaultEncoding);
arg1.setCharacterEncoding(defaultEncoding);
arg2.doFilter(arg0, arg1);
}

@Override
public void init(FilterConfig arg0) throws ServletException {
String encoding = arg0.getInitParameter("encoding");
if (encoding != null) {
defaultEncoding = encoding;
}
}
}
//配置部署描述符
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.majm.filter.FilterDemo</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

1. 动态网站开发模式
软件部署模式
推模式(强制的)
拉模式(有请求响应的)
为什么需要动态网页
特点:
a) 交互性
b) 自动更新
c) 随机性
400客户端错误
未部署:News/index.html
url输入错误:WebRoot/index.html
目录不能被引用:news/WEB-inf/index.html
500服务器端错误

jsp中的文件路径错误
2. JSP简介
为什么需要jsp
Jsp 是在服务器端应用的程序
维护更方便
JSP中的注释规范:
<!——Html注释——>
<% //java单行注释 %>
<%——JSP 使用的注释——%> 优先考虑:不管里面有什么样代码,服务器都不会执行
JSP中的变量声明
<%! int age ;%> ——实例变量
<% int age ; %> ——局部变量
Java中 static int ——类变量
所有的JSP文件在第一次运行时都会自动编译成*.class文件
第一次 *.jsp——>*.java——>*.class——>运行显示
第二次 |—————————*.class|——>运行显示
修改以后
第三次 *.jsp——>*.java——>*.class-——>运行显示
第四次
3. JSP指令和脚步元素
JSP中的基本指令:
Page指令主要用来指名当前JSP页面的属性
<% @page %>
——设定MIME类型(告诉客户端浏览器时什么类型格式)
<% @page ContentType=”text/html; charset=utf-8”%>
——利用import语句导入类:<% @page import=”java.util.*,java.sql*;”%>
——JSP输出错处理:<% @page errorpage=”error.jsp”%>
——指名出错页:<% @page isErrorPage=”true.jsp”%>
——使用的编程语言:<% @page language=”java”%>
——缓冲设置处理:<% @page isAutoFlush=”true”%><% @page buffer=”8kb”%>

<jsp:include page=”url” />——区分一下动态还是静态,如果是动态,将它处理后包含
——动态的包含页面:能自动区分所包含的是静态页面还是动态的页面。
——执行时:
●如果请求的资源为静态资源则直接将资源包含处理与<%@include file=”url” %>相同
●如果请求的资源为动态,则先处理资源,之后将处理后的结果包含在一起
所有代码分别处理,处理完后再将代码的显示结果和处理结果包含进来

<%@include file=”url” %>——不管是什么类型的文件都可以被包含进来
——页面的包含:不管其文件内容如何只是将页面中的内容包含进来
——执行时:
○先将所有内容包含进来一起处理完后在将所有内容发送给客户端
所有代码包含进来后,一起进行处理,把所有代码合在一起包含进来

<jsp:forward page=”url”/>
属于标签指令形式代码:必须写在(%---%)中。
Forward属于服务器端无条件跳转语句
使用跳转语句,页面的内容已经是跳转了,但地址栏没有任何变化


4. JSP处理客户端请求
表单的两种提交形式:
method:传输数据形式,数据类型。
Action:表单数据程序,*.jsp,*.asp,*.php,servlet中

method的n重方式和应用类型
post: 大量数据
get: 下载
put: 上传
delete(首部): 服务器端删除
head: 头部信息
trace: 跟踪信息
options: 可以判断页面请求是否屏蔽

get和post的主要区别:
post:以流的方式来传输(不可见的) 不可以添加到收藏夹。
get:以查询字符窜来传输数据 可添加到收藏夹。明文传输,不安全,长度有限(255)。
除了post以外,所有的请求都是get方式传输的。

EJB:主要是在分布式的应用中。
Ipo:硬处理输出。

request:封装客户端请求数据。
response:封装服务器响应数据。

请求开关:requset.gerRequestDispatcher("目标文件").forward(request,respose);
只能在本应用中跳转。"/"本web应用。

发送重定向:response.sendRedirect("目标文件");
可以跳出本网站,本web应用。属于不同的请求。"/"服务器。

刷新:responst.setHead("refresh","1");

JAVA中:对象。方法.类。方法
JAVA中:对象必须先实例化再用,分配内存空间
Web Container: Web容器——为对象实例化

Request对象:
Request——>HttpServletRequest接口的实例化对象
HttpServletRequest有个父类:ServletRequest(为以后新出的协议提供)

JSP的内置对象分类
*与Servlet有关的隐含对象
——page ——config
*与Input/output有关的隐含对象(io有关)
——out ——request ——response
*JSP执行时,提供有关Context的隐含对象
——session ——application ——pageContext
*Error有关的隐含对象
——exception

JSP中可以采用下面方法设置和取得对象
public abstract void setAttribute(String name,Object value);

public abstract Object getAttribute(String name);

Request对象:
主要功能是服务器端接受客户端以HTTP方式传输给客户端数据,以便对其进行进一步处理,实现交互功能。
常用方法:蓝色为常用
getParameter(); ——接收请求参数的
setCharacterEncoding(); ——设置统一字符编码
getParameterValues(); ——返回的是数组类型
getParameterNames(); ——返回的是枚举类型:功能:取得客户端所有请求参数
getRemoteAddr(); ——取得客户端IP地址

5. JSP页面的访问控制
JSP内置的9大对象
pageContext 代表jsp页面上下文。常用的有getServletContext().getServletConfig()
exception 异常 只能用在错误页面(isErrorpage,"true");
out IsWriter输出流,支持中文——客户端流通道。
page 当前页面的java文件。创建出来的对象。
request 封装客户端请求数据
response 封装服务器响应数据
session 在一次会话中封装用户的数据
config 读取部署描述符 ServletConfig
application servlet应用上下文环境。(应用)ServletContext

session和application应用级区别
session : 单用户独享用
Application : 所有用户共享
用户离开时:
服务器对session会有一定的会话超时时间,一般都为30分钟。

内置对象在web容器中的应用范围
page——> request——> session——> application

性能的话:发送重定向效率要高的多。

开发中血的教训:
文件路径:不同的目录下,一定要用绝对路径。如(应用服务器名/*.jsp)
“.”代表本web应用
“/”代表复务器。(localhsot:8080)

Servlet总结

1.Servlet的生命周期
(1)服务器加载Servlet类---->服务器创建Servlet的一个实例---->Servlet的一个实例调用init()方法---->Servlet等待直到收到一个请求或它被服务器卸载---->Servlet调用service()方法----> Servletservice()方法处理请求返回输出到客户端
2.Servlet的继承关系
自定义Servlet--->HttpServlet--->GenericServlet--->Servlet
3.
Servlet的请求和响应
(1)ServletRequest: 代表Servlet的请求,它是一个高层的接口,HttpServletRequest是它的子接口
(2)ServletResponse: 代表Servlet的响应,它是一个高层的接口,HttpServletResponse是它的子接口
(3)ServletInputStream: Servlet的输入流
(4)ServletOutputStream: Servlet的输出流
4.
Servlet的跳转RequestDispatcher实例的获得
(1)通过ServletRequestgetRequestDispatcher()得到,但是这个方法里面的参数不需要加"/" ;
(2)通过ServletContextgetRequestDispatcher()得到,但是这个方法里面的参数必需要加"/" ;
5.ServletContext
对象的获得
(1)通过sessiongetServletContext()方法获得
(2)通过HttpServletgetServletContext()方法获得
(3)通过ServletConfiggetServletContext()方法获得
6.
Servlet的配置
<servlet>
<servlet-name>Servlet</servlet-name> //
Servlet的名字
<servlet-class>com.servlet.Servlet</servlet-class> //
Servlet的实体类
<init-param>
<param-name>initName</param-name> //Servlet的初始化参数名
<param-value>initValue</param-value> //
Servlet的初始化参数值
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name> //
两次Servlet的名字应该相同
<url-pattern>/login</url-pattern> //
Servlet的映射路径
</servlet-mapping>

分享到:
评论

相关推荐

    JSP经典开发技巧 图表系统 JFreeChat 以及MVC架构

    总结起来,JSP的经典开发技巧涵盖了客户端的动态交互、数据传输、文件操作、安全机制,以及高级图表的展示和软件架构的设计。熟练掌握这些技巧,将有助于开发者构建功能丰富且易于维护的Web应用。

    JSP Web图表编程基础

    总结来说,JSP Web图表编程基础主要涉及如何利用JSP技术和JFreeChart库来创建动态的Web图表。通过JSP,开发者可以更便捷地构建交互式Web应用,而JFreeChart则提供了丰富的图表选项,增强了Web应用的数据展示能力。

    JSP使用JFreeChart生成各种图表并生成PDF文档

    总结,JSP结合JFreeChart和IText,可以实现动态网页上的数据可视化,并且能够生成包含这些图表的高质量PDF文档。这在数据分析、报表生成、数据展示等场景中非常有用。通过熟练掌握这两个库的使用,开发者可以更高效...

    简单的jsp fusioncharts例子

    总结来说,FusionCharts是JSP开发者用于数据可视化的强大工具,它简化了图表创建过程,并提供了丰富的定制选项和优秀的跨平台兼容性。通过学习并应用这些知识点,你能够创建出具有专业级图表的高质量Web应用。

    jFreeChart示例代码,封装成jsp标签

    总结起来,这个项目提供了一个便捷的方式,让 JSP 开发者能够利用 JFreeChart 创建美观且功能丰富的图表,而无需深入学习 JFreeChart 的底层细节。这对于提高开发效率和改善用户体验具有重要意义。如果你正在寻找一...

    Java Web动态图表编程

    总结,Java Web动态图表编程涵盖了后端数据处理、前端展示技术以及两者之间的通信机制。通过学习和实践,开发者可以构建出具有吸引力和实用性的数据可视化应用,提升用户体验,更好地服务业务需求。

    jsp实现Chart

    **JSP实现Chart** ...总结,通过JSP和JFreeChart,你可以方便地在Web应用中创建各种复杂的图表,将数据以直观的方式展示给用户。理解并熟练掌握这一技术,对于提升Web应用的用户体验具有重要意义。

    JSP+JFreeChart 实现曲线图、柱形图

    总结来说,"JSP+JFreeChart 实现曲线图、柱形图"的项目涉及到以下几个关键知识点: 1. JSP基础:理解JSP的生命周期、指令、脚本元素等。 2. Java后端编程:编写Java代码来生成JFreeChart图表。 3. JFreeChart API:...

    JFreeChart图表生成代码

    JFreeChart是一款强大的Java库,用于创建高质量的...总结来说,这个资源包为学习和使用JFreeChart提供了丰富的实例和指导,无论你是初学者还是有经验的开发者,都可以从中受益,快速掌握Java环境中创建专业图表的技能。

    关于jsp中的JSP详解

    **JSP(Java Server Pages)详解** ...总结起来,JSP是动态网页开发的基础,而Struts和JSF是构建大型企业级Web应用的优秀框架。理解它们的工作原理和交互方式,对于提升Java Web开发能力至关重要。

    JAVA图表

    例如,可以结合Swing或JavaFX创建桌面应用,也可以在Web应用中通过Servlet或JSP来生成图表。对于Eclipse或IntelliJ IDEA等IDE,也有插件支持直接在代码中预览JFreeChart图表。 **文件资源** 压缩包中的`JFreeChart-...

    Web图表生成引擎 的设计思路与实现

    总结来说,设计和实现Web图表生成引擎的关键在于理解Web环境下的图表绘制原理,选择合适的实现方式(如JavaBean),并注重模块化和可扩展性。这样,我们就能构建出一个强大而灵活的图表生成工具,服务于各种Web应用...

    jsp生成pdf文件

    总结来说,将JSP页面中的Highcharts图表和其他信息导出为PDF涉及到了前端技术的综合运用,包括JavaScript、HTML、CSS,以及专门用于转换的库。理解这些技术的工作原理和交互方式,是实现这个功能的关键。通过实践和...

    JSP实战18例源代码

    **JSP(Java Server Pages)...总结,JSP实战18例源代码是学习JSP的宝贵资料,涵盖了JSP的基本语法、动态网页的构建以及实际项目中的常见问题。通过这些实例,初学者可以逐步提升技能,为后续的Web开发打下坚实基础。

    jsp柱状报表图的实现

    总结来说,实现“jsp柱状报表图”涉及了Java编程、JSP页面设计、`jfreechart`库的使用以及Web服务器上的图像处理。通过这个过程,我们可以为用户提供交互式的、视觉吸引人的报表,帮助他们更好地理解和分析数据。...

    jschart示例-jsp和xml的

    总结来说,"jschart示例-jsp和xml"展示了如何利用JavaScript的JSChart库结合JSP和XML技术,实现动态数据图表的创建和更新。这为Web应用程序提供了强大的数据可视化功能,使用户能够直观地理解复杂的数据信息。

    基于JSP的动态网页制作报告

    - 统计功能:提供直观的图表展示收入与支出情况。 ##### 2.4 网站技术解决方案 - **服务器端技术:** 使用Java作为服务器端语言,结合JSP技术实现动态页面的生成。 - **客户端技术:** HTML、CSS和JavaScript用于...

    JSP应用教程课件及源代码

    **JSP(Java Server Pages)应用...总结,JSP作为Java Web开发的重要组成部分,具有强大的功能和广泛的应用场景。这份"JSP应用教程课件及源代码"资源,将理论知识与实践操作相结合,是学习和提升JSP技能的理想资料。

    jsp学生成绩分析管理系统

    系统还具备**成绩统计和分析**功能,能生成各种统计图表,如平均分、最高分、最低分、及格率等。这些统计信息有助于教师了解学生的学习状况,发现潜在问题,制定更有针对性的教学策略。例如,通过对比不同课程的及格...

    JSP.rar_javascript_javascript项目_jsp javascript_jsp小项目

    总结,这个压缩包提供的资源适合那些想要了解或提升JSP和JavaScript结合使用能力的学习者。通过学习和实践其中的小项目,你可以掌握如何在JSP环境中有效地利用JavaScript实现丰富的前端功能和视觉效果。

Global site tag (gtag.js) - Google Analytics