JSP我的认识,你呢?

一、JSP就是一个在服务器端的设计面板

百科说:它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。他实现了Html语法中的java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的

我说:jsp不是编程语言。JSP的三个英文是java server pages的缩写!

JSP是我们进行WEB开发的页面工具。页面开发,少不了图形,图形开发的时候有一个设计面板,你只需要将一个一个的控件拖进这个设计面板内进行直观设计,而不用自己写代码 ,如textbox,lable等等,jsp就相当于这个设计面板,JSP学习对比我们VB学习的可视化环境中的窗体,控件的设计。JSP会自动识别拖进来的控件并将你的设计、布局转化成java代码,这样就使得程序员可以专注于页面的设计而省的去写那些重复、繁琐的代码了,大大提高了开发效率。

二、、JSP 是Servlet的一个分支

在介绍JSP之前,先回顾一下Servlet。简单地理解Servlet,它就是控制从WEB前端到数据库后台的一个管理器,它主要是做业务逻辑。其实你知道吗?Servlet还可以控制WEB客户端的“输出”。这里的输出指的是和HTML+CSS一样的“页面输出效果。”

看一下如下示例:查询学生的信息

按照上篇博客中servlet的逻辑来进行,首先需要一个WEB,然后一个Servlet,最后一个Dbmanager(这里只演示到Servlet,所以不做数据库连接)

		<!--WEB中HTML代码-->
			<html>
			    <head></head>
			    <body>
			        <h1>
			            根据出生日期段查询
			        </h1>
			        <form action="queryStudentServlet">
			            			出生日期 :
			            <input type="text" name="beginDate"></input>   至
			            <input type="text" name="endDate"></input>
			            <input type="submit" value="查询学生"></input>
			        </form>
			    </body>

			</html>
		<!--Servlet中业务逻辑-->
public class StudentServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
           doPost(request, response);
	}

     public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

		String sBeginDate = request.getParameter("beginDate");
		String sEndDate = request.getParameter("endDate");

		Date beginDate = new Date();
		Date endDate = new Date();
		try {
			beginDate = new SimpleDateFormat("yyyy-MM-dd").parse(sBeginDate);
			endDate = new SimpleDateFormat("yyyy-MM-dd").parse(sEndDate);
		}catch(Exception e) {
			e.printStackTrace();
		}
		//System.out.println("sBeginDate=" + sBeginDate);
		//System.out.println("sEndDate=" + sEndDate);

		StudentManager studentManager = new StudentManagerImpl();
		List<Student> studentList = studentManager.findStudentList(beginDate, endDate);
		}

问题:在Servlet中查出了我们要查询的数据,接下来需要显示。怎么显示呢?

1、在WEB端写好“显示形式”,或表格,或者文本,或list。

2、在Servlet中写好“显示形式”。让我们来看看Servlet中控制HTML的显示

	StringBuffer sbHtml = new StringBuffer();
		sbHtml.append("<html>");
		sbHtml.append("\n");
		sbHtml.append("<head>");
		sbHtml.append("\n");
		sbHtml.append("<title>学生查询</title>");
		sbHtml.append("\n");

		sbHtml.append("table");
		sbHtml.append("\n");
		sbHtml.append("td ");
		sbHtml.append("\n");
		sbHtml.append("</head>");
		sbHtml.append("\n");
		sbHtml.append("<body>");
		sbHtml.append("\n");
		sbHtml.append("<h1>");
		sbHtml.append("\n");
		sbHtml.append("出生日期:" + sBeginDate + " 至 " + sEndDate + " 学生列表");
		sbHtml.append("\n");
		sbHtml.append("</h1>");
		sbHtml.append("\n");
		sbHtml.append("<hr>");
		sbHtml.append("\n");
		sbHtml.append("<table border=1>");
		sbHtml.append("\n");
		sbHtml.append("<tr>");
		sbHtml.append("\n");
		sbHtml.append("<td>学生代码</td>");
		sbHtml.append("\n");
		sbHtml.append("<td>姓名</td>");
		sbHtml.append("\n");
		sbHtml.append("<td>性别</td>");
		sbHtml.append("\n");
		sbHtml.append("<td>出生日期</td>");
		sbHtml.append("\n");
		sbHtml.append("<td>联系电话</td>");
		sbHtml.append("\n");
		sbHtml.append("<td>家庭住址</td>");
		sbHtml.append("\n");
		sbHtml.append("<td>班级名称</td>");
		sbHtml.append("\n");
		sbHtml.append("<td>年龄</td>");
		sbHtml.append("\n");
		sbHtml.append("</tr>");
		sbHtml.append("\n");
		for (Iterator<Student> iter=studentList.iterator(); iter.hasNext();) {
			Student student = iter.next();
			sbHtml.append("<tr>");
			sbHtml.append("<td>");
			sbHtml.append(student.getStudentId());
			sbHtml.append("</td>");
			sbHtml.append("<td>");
			sbHtml.append(student.getStudentName());
			sbHtml.append("</td>");
			sbHtml.append("<td>");
			sbHtml.append(student.getSex());
			sbHtml.append("</td>");
			sbHtml.append("<td>");
			sbHtml.append(new SimpleDateFormat("yyyy-MM-dd").format(student.getBirthday()));
			sbHtml.append("</td>");
			sbHtml.append("<td>");
			sbHtml.append(student.getContactTel());
			sbHtml.append("</td>");
			sbHtml.append("<td>");
			sbHtml.append(student.getAddress());
			sbHtml.append("</td>");
			sbHtml.append("<td>");
			sbHtml.append(student.getClasses().getClassesName());
			sbHtml.append("</td>");
			sbHtml.append("<td>");
			long b = 1000L*60L*60L*24L*365L;
			long a = System.currentTimeMillis() - student.getBirthday().getTime();
			sbHtml.append(a/b);
			sbHtml.append("</td>");
			sbHtml.append("</tr>");
			}
		sbHtml.append("</table>");
		sbHtml.append("</body>");
		sbHtml.append("</html>");
		response.setContentType("text/html;charset=GBK");
		response.getWriter().println(sbHtml.toString());
					}

那么这两种形式如何抉择呢?“业务逻辑”。我们需要分析数据。这些数据是什么?

回发数据。做过ASP.NET的朋友肯定会了解“html控件”和“WEB控件”的区别,在ASP.NET中我们有asp页面通过WEB控件来处理回发数据。在这个基础上,我们的JAVA 也是同样借鉴了WEB控件的优势,使用java 编写的“用于页面显示”的servlet。把这种特俗用途的servlet叫做JSP。把一个Servlet中的代码分成“业务逻辑”+“页面数据显示”。业务逻辑就是一个标准的Servlet,“页面数据显示”这个servlet就是一个JSP。所以说JSP是Servlet的一部分。 这样们就可以在JSP中写“回发数据”的显示了。

三、JSP 和HTML 的区别

HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性语言,为什么说是解释性 语言呢?因为,只要你有一个浏览器那么它就可以正常显示出来,而不需要指定的编译工具,只需在TXT文档中写上HTML标记就OK。

JSP(Java Server Page)看这个意思就知道是Java服务端的页面,所以它是动态的,它是需要经过JDK编译后把内容发给客户端去显示,我们都知道,Java文件编译后会产生一个class文件,最终执行的就是这个class文件,JSP也一样,它也要编译成class文件!JSP不止要编译,它还得要转译,首先把JSP转译成一个Servlet文件,然后在编译成class文件。当用户访问JSP时就执行了class文件。

但是值得提醒的是,JSP最终有服务器端发送到WEB客户端,都是也HTML得形式显示的。

下面是通过查找得出的几点:

1.最简单的区别就是,HTML能直接打开,jsp只能发布到Tomact等服务器上才能打开。

2.定义上HTML页面是静态页面可以直接运行,JSP页面是动态页它运行时需要转换成servlet。

3.他们的表头不同,这个是JSP的头“<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表头中有编码格式和倒入包等。

4.在jsp中用<% %>就可以写Java代码了,而html没有<%%>。

这里还要提一下的是:WEB控件和HTML 控件,在使用JSP编写客户端的时候,要合理运用HTML控件和WEB控件,提高系统的性能。



JSP我的认识,你呢?

时间: 2024-10-10 22:11:41

JSP我的认识,你呢?的相关文章

不用动手术的肝脏清洗法

几乎每个人体内都有肝胆结石,或许很多人只知道胆结石,不知道肝脏内也有结石,也不知道其实很多胆结石的初期就是在肝脏内形成的,更不知道吃夜宵.晚饭在7点之后吃.吃油炸食品.甚至喝水较少也会导致肝胆结石.就以上几个不良生活习惯,我们每个人占多少?简单的讲,肝脏是人体内最大的器官,它是人体的解毒工厂,它的构造极其复杂,所以至今为止,人类无法设计出人造肝脏,它的复杂度仅次于脑组织.所以让肝脏维持正常功能直接关系着人体的健康.肝脏可以使激素,酒精以及某些有害药物在体内失效.各种人体无法代谢的毒素都会由肝脏负

导演与明星老婆离婚 恋亲手捧红干女儿

http://www.ehotelier.cn/Thread.jsp?tid=182934http://www.ehotelier.cn/Thread.jsp?tid=182940http://www.ehotelier.cn/Thread.jsp?tid=182946http://www.ehotelier.cn/Thread.jsp?tid=182951http://www.ehotelier.cn/Thread.jsp?tid=182957http://www.ehotelier.cn/T

jsp获取当前项目跟路径

在jsp中获取当前项目的根路径: <% String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";%> 可以使用${basePath}获取.

Jsp通过Filter实现UrlRewriter原理

web.xml文件: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&q

jsp声明周期

https://www.w3cschool.cn/jsp/jsp-life-cycle.html 几点注意: jsp初始化期: 容器载入jsp文件后,它会在为请求提供任何服务前调用jspinit()方法.如果需要执行自定义的jsp初始化任务,就重写jspinit()方法就行了. public void jspInit() { //代码 } 一般来讲程序只初始化一次,servlet也是一样的.通常情况下您可以在jspInit()方法中初始化数据库连接打开文件和创建查询表. jsp执行期: jspS

JSP、JSTL、EF学习笔记

JSP 1)Java Server Page,在html中嵌入java代码 2)九个内置(隐式)对象 request response out page pageContext config session application Exception 3)JSP指令 <%@ page ... %> Page指令,定义页面属性 eg:<%@ page language="java" contentType="text/html;charset=UTF-8&qu

【JSP】配置错误页面

1,使用JSP方式 如果配置是Jsp时,需要把isErrorPage设置为true, 以及设置 <%@ page language="Java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8" isErrorPage="true"%> 错误页面: <%@page import="java.io.PrintStream"

jsp映射为其他地址上去 ???

在web.xml 里面配置servlet不起作用,所以配置jsp,然后在jsp里面跳转到servlet去   ???  第八天中的<08-jsp常用标签.avi> 在web.xml里面先设定 14.jsp 为默认首页,然后在14.jsp 里面设定跳转到servlet 代码里面去 映射到其他地址去:

关于tomcat JSP虚拟目录的这点事儿!

最简单的情况当然是将.jsp文件放在C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT目录下,运行tomcat, 在浏览器中直接访问http://localhost:8080/HelloWorld.jsp  即可运行.jsp文件 而在实际的开发运用中,我们是不可能将Tomcat应用程序安装在系统盘如C盘. 所以,我们需要运用到设置虚拟目录的知识: 为创建虚拟目录以在浏览器中运行jsp文件:1:假设我们将tomca

jsp&amp;el&amp;jstl-01

案例1-在页面中展示所有商品信息,不要使用jsp的脚本技术分析: jsp/el/jstl jsp: java 服务器页面 作用: 将内容的生成和信息的展示相分离 运行在服务器端,本质上就是一个serlvet,产生的java文件和class保留在tomcat的word目录下.jsp脚本: <%..%> java代码片段 <%=..%> 输出表达式 相当于out.print(); <%!...%> 声明成员jsp的指令 作用:声明jsp页面的一些属性和动作 格式: <