- 浏览: 230855 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
hl174:
写的不错,赞一个
在Java中字节与十六进制的相互转换主要思想有两点 -
l540151663:
也是个好方法
String为空判断
JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。
由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,这的确让人不胜其烦。JSP的出现弥补了这种不足,JSP通过在标准的HTML页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用Java脚本控制。
从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。
看下面一个简单的JSP页面:
<!-- 表明此为一个JSP页面 -->
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>第一个JSP页面</TITLE>
</HEAD>
<BODY>
<!-- 下面是Java脚本-->
<%for(int i = 0 ; i < 10; i++)
{
out.println(i);
%>
<br>
<%}%>
</BODY>
</HTML>
当启动Tomcat之后,可以在Tomcat的Catalinalocalhostjsptestorgapachejsp目录下找到如下文件(假如Web应用名为jsptest,上面JSP页的名为test1.jsp):test1_jsp.java和test1_jsp.class。这两个文件都是Tomcat生成的,Tomcat根据JSP页面生成对应Servlet的Java文件及class文件。
下面是test1_jsp.java文件的源代码,这是一个特殊的Java类,是一个Servlet类:
//JSP页面经过Tomcat编译后默认的包
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
//继承HttpJspBase类,该类其实是个Servlet的子类
public final class test1_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent
{
private static java.util.Vector _jspx_dependants;
public java.util.List getDependants() {
return _jspx_dependants;
}
//用于响应用户的方法
public void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws java.io.IOException, ServletException
{
//获得页面输出流
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
//获得页面输出流
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
//开始生成响应
try
{
_jspxFactory = JspFactory.getDefaultFactory();
//设置输出的页面格式
response.setContentType("text/html; charset=gb2312");
pageContext = _jspxFactory.getPageContext(this, request,
response, null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
//页面输出流
out = pageContext.getOut();
_jspx_out = out;
//输出流,开始输出页面文档
out.write("rn");
//下面输出HTML标签
out.write("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">rn");
out.write("<HTML>rn");
out.write("<HEAD>rn");
out.write("<TITLE>first Jsp</TITLE>rn");
out.write("</HEAD>rn");
out.write("<BODY>rn");
//页面中的循环,在此处循环输出
for(int i = 0 ; i < 10; i++)
{
out.println(i);
out.write("rn");
out.write("<br>rn");
}
out.write("rn");
out.write("</BODY>rn");
out.write("</HTML>rn");
out.write("rn");
}
catch (Throwable t)
{
if (!(t instanceof SkipPageException))
{
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handle
PageException(t);
}
}
finally
{
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_
page_context);
}
}
}
即使读者不了解上面提供的Java代码,也依然不会影响JSP页面的编写,因为这都是由Web容器负责生成的。图2.1显示了test1.jsp的执行效果。
根据图2.1的执行效果,再次对比test1.jsp和test1_jsp.java文件,可得到一个结论:该JSP页面中的每个字符都由test1_jsp.java文件的输出流生成。
根据上面的JSP页面工作原理图,可以得到如下四个结论:
— JSP文件必须在JSP服务器内运行。
— JSP文件必须生成Servlet才能执行。
— 每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。
— JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。
JSP和Servlet会有如下转换:
- JSP页面的静态内容、JSP脚本都会转换成Servlet的xxxService()方法,类似于自行创建Servlet时service()方法。
- JSP声明部分,转换成Servlet的成员部分。所有JSP声明部分可以使用private,protected,public,static等修饰符,其他地方则不行。
- JSP的输出表达式(<%= ..%>部分),输出表达式会转换成Servlet的xxxService()方法里的输出语句。
- 九个内置对象要么是xxxService()方法的形参,要么是该方法的局部变量,所以九个内置对象只能在JSP脚本和输出表达式中使用。
-----------------------------------------
1:原来的servlet,中,要进行业务逻辑出来,还有出来html,用out。pirnt(“<html.....”)很麻烦
2:jsp中,有html,如果进行业务出来,直接用java代码<% java %>
但服务器端,会编译成servlet
3:servlet源码,直接下,tomcat的源码,因为tomcat中实现了,servlet,
apache-tomcat-6.0.20-src\java\javax中,
el,mail,servlet,xml,等
由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,这的确让人不胜其烦。JSP的出现弥补了这种不足,JSP通过在标准的HTML页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用Java脚本控制。
从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。
看下面一个简单的JSP页面:
<!-- 表明此为一个JSP页面 -->
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>第一个JSP页面</TITLE>
</HEAD>
<BODY>
<!-- 下面是Java脚本-->
<%for(int i = 0 ; i < 10; i++)
{
out.println(i);
%>
<br>
<%}%>
</BODY>
</HTML>
当启动Tomcat之后,可以在Tomcat的Catalinalocalhostjsptestorgapachejsp目录下找到如下文件(假如Web应用名为jsptest,上面JSP页的名为test1.jsp):test1_jsp.java和test1_jsp.class。这两个文件都是Tomcat生成的,Tomcat根据JSP页面生成对应Servlet的Java文件及class文件。
下面是test1_jsp.java文件的源代码,这是一个特殊的Java类,是一个Servlet类:
//JSP页面经过Tomcat编译后默认的包
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
//继承HttpJspBase类,该类其实是个Servlet的子类
public final class test1_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent
{
private static java.util.Vector _jspx_dependants;
public java.util.List getDependants() {
return _jspx_dependants;
}
//用于响应用户的方法
public void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws java.io.IOException, ServletException
{
//获得页面输出流
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
//获得页面输出流
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
//开始生成响应
try
{
_jspxFactory = JspFactory.getDefaultFactory();
//设置输出的页面格式
response.setContentType("text/html; charset=gb2312");
pageContext = _jspxFactory.getPageContext(this, request,
response, null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
//页面输出流
out = pageContext.getOut();
_jspx_out = out;
//输出流,开始输出页面文档
out.write("rn");
//下面输出HTML标签
out.write("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">rn");
out.write("<HTML>rn");
out.write("<HEAD>rn");
out.write("<TITLE>first Jsp</TITLE>rn");
out.write("</HEAD>rn");
out.write("<BODY>rn");
//页面中的循环,在此处循环输出
for(int i = 0 ; i < 10; i++)
{
out.println(i);
out.write("rn");
out.write("<br>rn");
}
out.write("rn");
out.write("</BODY>rn");
out.write("</HTML>rn");
out.write("rn");
}
catch (Throwable t)
{
if (!(t instanceof SkipPageException))
{
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handle
PageException(t);
}
}
finally
{
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_
page_context);
}
}
}
即使读者不了解上面提供的Java代码,也依然不会影响JSP页面的编写,因为这都是由Web容器负责生成的。图2.1显示了test1.jsp的执行效果。
根据图2.1的执行效果,再次对比test1.jsp和test1_jsp.java文件,可得到一个结论:该JSP页面中的每个字符都由test1_jsp.java文件的输出流生成。
根据上面的JSP页面工作原理图,可以得到如下四个结论:
— JSP文件必须在JSP服务器内运行。
— JSP文件必须生成Servlet才能执行。
— 每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。
— JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。
JSP和Servlet会有如下转换:
- JSP页面的静态内容、JSP脚本都会转换成Servlet的xxxService()方法,类似于自行创建Servlet时service()方法。
- JSP声明部分,转换成Servlet的成员部分。所有JSP声明部分可以使用private,protected,public,static等修饰符,其他地方则不行。
- JSP的输出表达式(<%= ..%>部分),输出表达式会转换成Servlet的xxxService()方法里的输出语句。
- 九个内置对象要么是xxxService()方法的形参,要么是该方法的局部变量,所以九个内置对象只能在JSP脚本和输出表达式中使用。
-----------------------------------------
1:原来的servlet,中,要进行业务逻辑出来,还有出来html,用out。pirnt(“<html.....”)很麻烦
2:jsp中,有html,如果进行业务出来,直接用java代码<% java %>
但服务器端,会编译成servlet
3:servlet源码,直接下,tomcat的源码,因为tomcat中实现了,servlet,
apache-tomcat-6.0.20-src\java\javax中,
el,mail,servlet,xml,等
发表评论
-
HTML页面加载和解析流程
2017-09-02 14:02 557HTML页面加载和解析流程 浏览器加载和渲染html的顺序 1 ... -
getAttribute和getParameter的区别
2017-06-03 18:28 604java中getAttribute和getParameter的 ... -
程序优化总结
2016-11-01 23:42 3891:把大的切割成小的 2:减少数据库分访问次数,放缓存中一次来 ... -
java webroot 下文件夹介绍
2016-10-04 11:22 705/WEB-INF/web.xml Web应用程序配置文件,描 ... -
Web.xml配置详解
2016-05-09 12:23 503Web.xml配置详解 Posted on 2 ... -
如何克隆一个网站
2015-10-25 22:56 15921、用firefox的firebug插件2 ... -
讲web程序本地,外网访问
2015-07-09 00:26 482ngrok -
页面添加水印
2015-06-23 17:39 7821:<body background='/gpmal ... -
MyEclipse-6.5注册码生成器源码
2014-11-26 10:54 735MyEclipse-6.5注册码生成器源码 分类 ... -
eclipse生成war文件
2014-06-16 16:40 8741:在项目上点右键->properties 2:在'To ... -
表格第一固定
2013-11-26 13:17 770<html> <head> <s ... -
我心目中最好的框架组合是
2013-06-06 09:46 852我心目中最好的框架组合是: 表示层:spr ... -
apache,tomcat,jk集群配置
2013-05-31 15:47 755终于搞好了哦!本人测试过,绝对可以用,就是session同步问 ... -
如何查看端口号被哪个程序占用了
2012-12-15 21:59 1194如何查看端口号被哪个程序占用了? 一, 1 ... -
免安装tomcat配置
2012-12-07 12:15 51171、 下载 到Apache的官 ... -
eclipse tomcat 问题
2012-12-04 14:17 7251:配置tomcat问题 1.1 配置tomcat,java ... -
tomcat apach 配置
2012-04-09 10:59 1094Apache 与tomcat实现分布式应用部署 一:原理 to ...
相关推荐
【JSP Servlet MVC 模式详解】 在Web开发领域,JSP(JavaServer Pages)、Servlet和MVC(Model-View-Controller)模式是常见的技术组合,用于构建动态、交互式的Web应用程序。本教程将深入探讨这三种技术以及它们在...
Servlet和JSP之间的关系可以用"后端处理器"和"前端展示"来理解。Servlet通常处理业务逻辑和数据操作,而JSP则负责呈现视图。在实际开发中,常常使用Servlet来处理请求,调用JavaBean(Java类,封装业务逻辑)进行...
【JSP与Servlet简介】 JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者在HTML、XML或其他标记语言中嵌入Java代码,从而实现动态内容的生成。JSP的优势在于其分离了视图和逻辑,使得前端开发和...
【标题】: "Java Web开发中的JSP、Servlet、Struts、Hibernate和Spring技术详解" 【描述】: "本文深入探讨Java Web开发中常见的技术,包括JSP、Servlet、Struts、Hibernate和Spring,讲解它们的工作原理和实用技巧...
**三、JSP与Servlet的关系** JSP和Servlet通常一起使用,以实现MVC(Model-View-Controller)设计模式。Servlet处理HTTP请求,执行业务逻辑,而JSP则负责展示视图。Servlet可以将数据存储在request或session对象中,...
### JSP与Servlet的关系 #### 一、Servlet简介 Servlet技术是Java EE平台的重要组成部分,主要用于构建动态Web应用。在理解JSP与Servlet的关系之前,首先需要了解Servlet的基本概念。 **Servlet**是一种运行在...
**JSP与Servlet的关系** JSP和Servlet常一起使用,形成“视图-控制器”模式。Servlet通常作为控制器,负责业务逻辑和数据处理,而JSP作为视图,负责展示数据。这种分工使得代码结构清晰,易于维护。 **上机实践中...
《JSP Servlet通用学生管理系统详解》 在信息技术领域,Web应用程序开发是不可或缺的一部分,而JSP(JavaServer Pages)和Servlet则是构建动态Web应用的重要工具。本系统——"JSP Servlet通用学生管理系统",旨在为...
2. **编译关系**:JSP在第一次被请求时会被服务器自动编译为Servlet,然后按照Servlet生命周期进行执行。 **三、Servlet_example_02实例详解** 这个例子可能包含以下几个部分: 1. **创建Servlet**:首先,我们...
【JSP和Servlet的关系】 JSP和Servlet在Java Web开发中密切相关。JSP主要负责视图层的展示,而Servlet则更多地承担控制器和部分模型的职责。在JSP内部,服务器会将其转换为Servlet,通过jspService()方法处理请求。...
【标题】"jsp servlet javabean连接oracle系统"涉及了Web开发中的关键技术,包括JavaServer Pages(JSP)、Servlet以及JavaBean,同时结合了Oracle数据库的使用。这是一个典型的三层架构模型,常用于构建动态、数据...
【旅游管理系统 jsp+servlet.zip】是一个基于Java Web技术的毕业设计或课程设计项目,它利用了JavaServer Pages (JSP) 和Servlet技术,结合MySQL数据库来构建一个完整的旅游管理平台。这个系统的设计和实现涵盖了多...
在本项目中,"jsp servlet实现 学生管理系统.zip"是一个基于Java技术栈的Web应用程序,主要用于管理和操作学生数据。这个系统利用了Java Server Pages (JSP) 和Servlet技术,结合MySQL数据库,来构建一个简单易用的...
【标题】"jsp/servlet 在线考试系统"是基于Java技术栈实现的一个初学者级别的项目,旨在帮助开发者熟悉和掌握JSP(JavaServer Pages)和Servlet这两种核心的Java Web技术。JSP是一种动态网页开发技术,它允许在HTML...
在线考试系统是一个基于Java技术,特别是使用JSP(JavaServer Pages)和Servlet的Web应用程序,它为用户提供了在线进行考试和自动评估成绩的功能。这样的系统通常由几个关键组件构成,包括用户界面、后端服务器处理...
### JSP与Servlet的关系 在"JSP+servlet的后台管理系统"中,Servlet常作为控制器,处理HTTP请求,进行业务逻辑处理,而JSP则作为视图,负责展示数据。Servlet通过转发或重定向将请求传递给JSP,JSP根据传递的数据...
书中详细介绍了Servlet/ JSP与Web容器之间的关系,必要时从Tomcat源代码分析,了解Servlet/ JSP如何与容器互动。本书还涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例。 ...
【标题】"jsp+servlet+hibernate+购物车系统"是一个基于Web的电商应用程序,它结合了三种核心技术:JavaServer Pages(JSP)、Servlet和Hibernate。这个系统旨在实现一个完整的购物过程,包括商品浏览、选择商品加入...
**JSP和Servlet的关系** JSP最终会被编译成Servlet,因此两者之间有紧密联系。JSP更适合视图层的展示,而Servlet则更适用于控制逻辑。在MVC(Model-View-Controller)架构中,JSP通常作为View,Servlet作为...
【标题】:“jsp+servlet+javabean学生信息管理系统”是一种基于Web的教育管理软件,它结合了三种核心技术——JavaServer Pages(JSP)、Servlet和JavaBeans,用于实现对学生信息的有效管理和操作。这个系统旨在提高...