Java Web(一)Servlet/JSP HTML介绍

学习编程,不光要知道结果是什么,更要问一下为什么是这个结果,才能真正提升水平,避免沦为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 {
	@Override
	public 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是紧密相关的。









 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值