Head First Servlet&JSP(beta版)


一.Servlet&JSP概述

1.1 简单的访问流程

每个人在学习编程时候都想自己创建一个网站,这时候,Servlet和JSP就是很好的选择。
当我们访问一个网站时候,最简单的流程是:

  1. 用户在web浏览器上输入url,请求(request)一个资源
  2. 请求发送到web服务器上,服务器根据url来查找资源
  3. 没找到,就会显示404;找到了,就会把资源-----例如html页面,响应(response)到客户

1.2 http协议

http协议是处于TCP/IP协议的应用层。

TCP端口:共有0~65536个逻辑端口

  • HTTP:80
  • FTP(文件传输协议):21
  • Telnet:23
  • SMTP:25
  • TIME:37
  • POP3:110
  • HTTPS:443

一般在0~1023的端口号已经被占用,所以定义时最好不要选择

1.2.1请求request

1.2.1.1 GET方法

GET:请求任务并获得资源返回,get请求中的字数有限(取决于服务器),若用户在搜索框中输入很长一段文字,就会出现异常

如图所示,用get发送的数据会出现在url后面,显示在地址栏中,这样信息就全部暴露了,所以这种方法不适用于发送私密信息,不过可以用它来建立书签
我们还要注意Accept这行,决定了能接受的从服务器返回的类型

1.2.1.2 POST方法

POST:可以请求,同时向服务器发送表单数据。浏览器可以用它做复杂的请求,加到最后的消息体当中去,也可以发送加密信息,因为他的信息不会存在url上

1.2.2 HTTP响应response

但你向浏览器发出请求get,post时,服务器就会返回你想要的资源,附在最后

MIME类型:响应首部+资源=http响应。在响应首部中Content-type的值称为MIME类型,他的作用是告诉浏览器要接收的数据是什么。
例如response.setContentType("text/html");告诉浏览器要显示text/html类型的数据

1.3 URL---统一资源定位器

之前一直再说URL,那URL到底是什么呢?
顾名思义,定位服务器上的资源,一般是一个地址

1.4 web服务器

web服务器擅长读取静态页面,那怎么处理动态内容呢?比如实时显示服务器时间?
CGI(Common Gateway Interface)来辅助服务器处理动态信息,使用Perl编写。现在好像用fastCGI(先不管)。
我们javaweb中用Servlet扮演辅助应用程序的角色,把参数(请求和响应)分配其中,并且再处理
下面是流程:

目前有两种Web服务器软件:IIS和Apache
j2ee(Java 2 Enterprise Edition),一个完整的web服务器由一个web容器(Tomcat)与一个EJB容器(weblogic和websphere)组成

二.Web应用体系

2.1 容器

Servlet是web服务器器的辅助应用程序,又受控于容器。
当客户发送一个请求时,由容器来分发给Servlet,容器又称web容器,本文中一般指代Tomcat。

容器把各种必备的j2se代码封装起来,例如Socket、线程安全、servlet的生命周期管理、jsp支持和日志等等。不需要我们再去写,只需要调用方法就可以了。
分发请求的流程如下,虽然我觉的并不需要了

2.2 Servlet的映射

tomcat怎么找到Servlet的呢?
可以使用xml属性映射来找到

Servlet的文件路径名称在WEB-INF的classes下,一般的Servlet有3个名字
如图:

  1. URL名<url-pattern>
  2. 秘密的内部名,也就是<servlet-name>
  3. 实际的文件名,<servlet-class>一般写的Servlet文件的路径名

    为什么要这么多名字,不能直接写路径名称吗?
    通过映射,你只需要修改xml文件就好了,不用在jsp或html里面改动文件,而且客户不会直接得知你文件的位置,即灵活又安全。

xml文件又称为部署文件(DD),它的作用除了映射外,还有其他很多作用,比如定制安全角色、错误页面、标记库、初始配置init()等等强大作用


时间: 2024-10-13 04:21:43

Head First Servlet&JSP(beta版)的相关文章

构建Apache Tomcat 6.0 Servlet/JSP 容器

构建Apache Tomcat 6.0 Servlet/JSP 容器 这个子项目包含了Tomcat 6.0的源代码,一个实现了Java Community Process http://www.jcp.org/ 的Servlet2.5和JSP2.1标准的容器. 注意:如果你只需要运行Tomcat,没有必要去构建它,你可以非常方便的下载一个二进制发布包.它是跨平台的.阅读RUNNING.txt文件,它介绍了怎样去运行它. 请按以下步骤来从源代码构建一个Tomcat的二进制发布版本: 下载并安装JD

javax.servlet.jsp cannot be resolved to a type

把MyEclipse里的项目导入到Eclipse Luna版中后出现了个莫名其妙的错误,注:Eclipse Luna是新装的. 错误描述:jsp页面中引用的js报错,鼠标放上去以后提示:javax.servlet.jsp cannot be resolved to a type.图片为证: 类似以上底下有红色波浪线的错误,好多jsp页面都有,还各不相同. 解决办法: 点击菜单栏:Window→Preferences→Validation,在右侧找"JSP Syntax Validator&quo

javax.servlet.jsp cannot be resolved to a type,javax.servlet

可能是jdk 里不包括servlet-api.jar这个包,到tomcat里找到这个包复制到java项目里. 项目名-->右键 Property-->选择 Java Build Path-->选择 Add External JARs-->选择 把servlet-api.jar的路径输入即可 该包在tomcat里有 搜索即课找到 javaxservletjspJspException cannot be resolved to a type javaxservletjspPageCo

Servlet&amp;jsp基础:第五部分

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4289323.html JSP. 80 JSP源码生成... 81 将JSP页面配置成Servlet 84 JSP基础语法... 84 JSP模板元素... 84 JSP表达式... 84 JSP脚本... 84 JSP声明... 85 EL

Servlet&amp;Jsp学习笔记归纳图(一)

转载请注明出处!!!版权必究!! 以下是Servlet&Jsp的学笔记归纳图,详细内容以及相关代码会在后面整理完成 后给出 使用的是思维导图工具:MindManager 6 最新版本是2013,有兴趣的自己百度下载,功能更多,安装有点麻烦 以下提供版本6绿色版免安装版下载: http://pan.baidu.com/s/1jGqlnXc 本节思维导图文件下载:http://pan.baidu.com/s/1eQGbMSU Servlet&Jsp学习笔记归纳图(一),布布扣,bubuko.c

[Java]Servlet&amp;JSP

在这里学习Servlet和JSP >> iAm333的专栏 [书籍] 孙鑫的<Servlet/JSP深入详解:基于Tomcat的Web开发> 林信良的<JSP&Servlet学习笔记(第二版)> Servlet容器处理请求的过程 在开始正文之前,让我们复习并细化一下Servlet容器处理请求的过程. 1)用户点击一个链接,指向了一个servlet而不是一个静态页面. 2)容器“看出”这个请求是一个Servlet,所以它创建了两个对象HttpServletRequ

alpha版、beta版、rc版

很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思. alpha版:内部测试版.α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的. beta版:公开测试版.β是希腊字母的第二个,顾名思义,这个版本比alpha版发布得晚一些,主要是给“部落”用户和忠实用户测试用的,该版本任然存 在很多BUG,但

Fedora 24 Beta 版发布下载!

Fedora 24 Beta 在经过三次延期后终于在 2016 年 5 月 10 日放出,除了对传统 32 位和 64 位架构的支持外,此次 Fedora 24 Beta 还额外增加了对 PPC64.PPC64el 和 ARM64 的支持.此外,你还可以下载和测试基于云和 Docker 的 Beta 映像.为了满足不同的测试环境和特定用例,此次的测试版主要发布了 Fedora 24 Cloud Beta.Fedora 24 Server Beta 和 Fedora 24 Workstation

Servlet.service() for Servlet jsp threw exception javax.servlet.ServletException:File &amp;quot;/pageFoo

1.错误描述 Servlet.service() for Servlet jsp threw exception javax.servlet.ServletException:File "/pageFoot.jsp "not found 2.错误原因 <jsp:include page="../../pageFoot.jsp"></jsp:include> 3.解决办法 利用<jsp:include></jsp:includ