Java Web(一)Servlet/JSP HTML介绍

来源:互联网 发布:linux 文件内容替换 编辑:程序博客网 时间:2024/05/20 11:46

学习编程,不光要知道结果是什么,更要问一下为什么是这个结果,才能真正提升水平,避免沦为IT民工!

在JavaWeb阶段,很多人执着于对框架的操作,而忽略了对基础的深刻理!下面就对相关内容进行初步的整理。

一、HTML

HTML已标签的形式定义文件结构,是构建界面的基础,放在服务器上供客户访问,而了浏览器就是根据这些相关标签及其样式,绘制出网络页面;然而这个访问过程又是如何实现呢?先要知道“URL”,“URI”,“URN”。

1.URL:UniformResource Locator——统一资源定位符; 

2.URI:UniformResource Identifier——统一资源标识符;

3.URN:UniformResource Name­——统一资源名称符

URL代表的资源的地址信息,它的结构是<协议>:<特定协议部分>,例如http://www.baidu.com

URN代表某个资源独一无二的名称,

URI是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URL是URI的其中一种使用方式。

二、动态网页、静态网页

静态网页就是纯HTML的标签网页,网页的内容只有固定的模式,而不会根据时空变化;

动态的网页就可已根据客户端的请求参数及时间、地点的请求做出不同的响应;服务器根据客户端的请求参数等信息,通过执行程序的方式来产生响应内容,然后把内容返回给客户端。目前处理动态网页的技术有CGI、PHP、ASP、Servlet/JSP等,其中Servlet和JSP是写在一起的,这两样有着紧密的联系。

       三、Servlet/JSP

       一般在学习JavaWeb之前,都学过Java;我么你知道Java文件的后缀是.class;而这些文件运行在JVM中,我们知道这些文件最终都会被JAM解析、使用;类比Servlet/JSP是运行在HTTP服务器上,而包含Web容器的服务器才叫做HTTP服务器,所以可以说,Servlet/JSP是运行在Web容器中,Web容器是Servlet/JSP同喜的桥梁,Servlet/JSP最终被Web容器解析、使用。

       Web容器:定义了规范、标准,只要按照这些规范/标准来写,它就能实现特定的功能(产生静态/动态网页,实现各种效果,完成客户端和HTTP服务器之间的通信等)。而Servlet/JSP就是其中一项实现这一大堆规范和标准的技术。而大名鼎鼎的Tomcat就是一个Web容器;请求和响应过程如下:

1.    浏览器对服务器发出HTTP请求;

2.     受到Web请求后交给Web容器v处理,解析请求并创建相关对象(HttpServletRequet、HttpServletResponse、HttpSession等)。

3.     容器根据相应的请求,交给Servlet处理

4.     Servlet根据已经封装好的请求对象(HttpServletRequest)的信息决定如何处理,然后通过相应对象(HttpServletResponse)来创建响应(关键的一步,开发人员可以编写各种业务逻辑)

5.     Web容器通知HTTP服务器“响应已经创建好,并转换为HTTP响应”,并将响应传回浏览器。

 

Servlet/JSP的关系

JSP不只是用HTML,所有的JSP页面,最终都会被web容器编译成“.class”文件,然后加载到容器之中。web容器会将JSP页面首先转译为“.java”文件,这个“.java”文件通过直接或间接的继承HttpServlet,使得这个“.java”文件成为了一个Servlet,所以不管是Servlet还是JSP页面,最终提供服务的还是Servlet实例。

Servlet是通过Java代码实现页面的输出与输入,而JSP是通过HTML中嵌套Java代码实现界面输出和相关处理

代码如下实现相同功能:

Servlet

<span style="font-family:Microsoft YaHei;font-size:14px;">package com.web;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class SimpleServlet extends HttpServlet {@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");out.print("    This is ");out.print(this.getClass());out.println(", using the GET method, " + new java.util.Date());out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}}</span>

JSP:

<span style="font-family:Microsoft YaHei;font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>A Servlet</title>  </head>  <body>  <h1><%= new java.util.Date() %></h1>  </body></html></span>


        把这个JDP发布到Tomcat(Web容器)中,并开启Tomcat,访问发i页面后到Tomcat根目录,找到work/Catalina/localhost目录并进入,找到你发布的工程目录并进入,在里面你会发现,你写的JSP页面被编译为xxx_jsp.class、xxx_jsp.java;打开后,会发现Web把JSP界面转换成了.class文件,并且该文件继承于HttpJspBase,而HttpJseBase继承于HttpServlet(间接继承),所以说Servlet和JSP是紧密相关的。









 

0 0
原创粉丝点击