`

JSP Servlet基础知识(一)

阅读更多

下一页»

1.    HTML 是静态的,JSP是动态的,交互式的,而且可由用户定制。

 

2.    服务器:可能是物理主机(硬件),也可能是Web服务器应用(软件)。

客户:指人类用户,或浏览器应用。

Web客户允许用户请求服务器上的某个资源,并且向用户显示请求结果。

 

3.    服务器和客户的通信

服务器和客户之间对话的共同的语言是HTTP

服务器使用HTTP向客户发送信息。

4.    HTTP

请求:HTTP方法(GetPost),要访问的页面,表单参数。

响应:状态码,内容类型(文本、图片、HTML等),内容(具体的HTML、图片等)。

 

5.    HTTP请求:Get请求和Post请求

Get请求:资源的路径URL以及所有参数都会包括在请求行中。

    请求行:  GET /select/selectBeer.jsp?color=dark&taste=malty HTTP/1.1

    请求首部:Host: www.wickedlysmart.com

             User-Agent: Mozilla/5.0……

             Accept: text/htmlapplication/xmlapplication./xhtml+xml

text/html;q=0.9

             Accept-Language: en-us en;q=0.5

             Accept-Encoding: gizpdeflate

              Accept-Charset: ISO-8859-1utf;q=0.7*;q=0.7

             Keep-Alive:300

             Connection: keep-alive

    GET请求,没有体,参数只能放在请求行中,并且会显示在浏览器的输入地址中,不够安全。

POST请求:又称为“消息体”或“有效负载”,放在消息体中,长度不受限制。

    请求行:POST /advisor/selectBeer.do HTTP/1.1

    请求首部:同上

    消息体:(空行)color=dark&taste=malty

    简单的超链接默认是GET方法,如:<a href=”http://www.baidu.com”>link</a>

    Form表单默认也是GET方法。

    GETHEADPUT是幂等的(注:GETdoGet()不同,GET方法是HTTP的,doGet()Servlet)POST不是幂等的。

 

6.    HTTP响应

包括响应首部和体

首部告诉浏览器使用的协议,请求是否成功,以及体中放入内容是什么类型

    HTTP/1.1 200 OK

    Set-Cookie: jsessionID=adfiifeeni23499v99wernnwerr; Pat=/testEL

    Content-Type: text/html(内容类型响应首部的值称为MIME类型,MIME类型告诉浏览器要接受的数据是什么类型,其值与HTTP请求首部中的Accept所列的值相关)

    Content-Length:397

    Date: Wed 19 Nov 2003 03:25:40 GMT

    Server: Apache-Coyote/1.1

    Connection: close

体中包含了让浏览器显示的具体内容:

    (空行)

     <html>……</html>

 

7.    URL(Uniform Resource Locators)

http://www.smart.com:80/beeradvice/select/beer1.html

协议        服务器     端口          路径          资源

FTP的端口是 31Telnet23SMTP25Time37POP3110HTTPS443

 

8.    Web服务器不做的两件事情

a)      动态内容。Web服务器应用只提供静态页面,动态内容由Web服务器辅助应用(CGI)来完成。

b)      在服务器上保存数据。Web服务器把这些功能转给辅助应用进行处理。

 

9.    Web容器

 

Web服务器(Apache)得到一个指向servlet的请求,服务器不是把这个请求直接交给servlet本身,而是交给Web容器(Tomcat),由Web容器调用servlet

Web容器管理和运行servlet,容器知道自己与Web服务器之间的协议,Web容器控制者servlet的生命周期,容器会自动地为它接收每个servlet请求并创建一个新的线程,Web容器负责把JSP代发翻译成真正的Java代码。

利用配置文件(web.xml)将servlet部署到容器

一个完全兼容的J2EE应用服务器必须有一个Web容器和一个EJB容器

 

Tomcat是一个Web容器,而不是一个完整的j2ee应用服务器,因为Tomcat没有EJB容器。

 

 

 

10.    JSP-Servlet执行流程

    1) 浏览器把请求数据发送给容器

    2) 容器根据URL找到正确的Servlet,并把请求传递给这个Servlet

    3) Servlet调用辅助应用寻求帮助

    4) 这个辅助应用返回一个回答,Servlet把这个回答增加到请求对象

    5) Servlet把请求转发给JSP

    6) JSP 从请求对象得到回答

    7) JSP为容器生成一个页面

    8) 容器把这个页面返回给客户

 

 

 

 

11.    Servlet的生命周期

 

12.    Servlet的属性和参数

a)      属性

有三种类型的属性,应用上下文(ServletContext)、请求(HttpRequest)和会话(HttpSession)

设置方法: setAttribute(String name,Object value)

获取方法:getAttribute(String name), 返回类型是Object

上下文(ServletContext)属性不是线程安全的,因为每个Servlet都可以访问。让上下文属性线程安全的做法:

同步服务器方法(即对doGet()doPost()方法添加synchronized)

同步服务器方法意味着servlet中一次只能运行一个线程,但是并不能阻止其它servletJSP访问这个属性。

同步上下文( synchronized(getServletContext()))

synchronized(getServletContext()){

               getServletContext().setAttribute("foo", "22");

               getServletContext().setAttribute("bar", "42");

}

会话属性:通常,一个客户同时只有一个请求,就算多个servlet能在单独的线程中访问会话属性,每个线程都是单独的请求,所以,这时会话属性是线程安全的。但是一个用户同时有多个请求时(用户同时打开多个浏览器去访问),会话属性是非线程安全的,通过同步HttpSession来达到线程安全。代码如下:

           HttpSession session=request.getSession();

           synchronized(session){

               session.setAttribute("foo", "22");

               session.setAttribute("bar", "42");

    }

b)      参数

应用上下文初始化参数、请求参数、servlet初始化参数

设置方法:servlet初始化参数只能在DD中设置

获取方法:getInitParameter(String name)

 

13.    Servlet接受提交的参数

a)      接受单个参数

String username=request.getParameter(“username”);

b)      接受多个参数

String [] parameters=request.getParameterValues(“sizes”);//sizes可以看做是表单中的复选框,如:

            <form action=”**.do”>

<intput type=checkbox name=sizes value=”1”>1

<intput type=checkbox name=sizes value=”2”>2

<intput type=checkbox name=sizes value=”3”>3

<input type=”submit”>

</from>

 

14.    ServletConfigServletContext

a)      ServletConfig对象

每个servlet都有一个ServletConfig对象,用于向servlet传递部署信息。

servlet初始化之前不能使用servlet初始化参数。

ServletConfig构建过程如下:

1)      容器读取当前servletDD(web.xml),包括servlet初始化参数(<init-param>)

2)      容器为这个servlet创建(new)一个新的ServletConfig实例

3)      容器为这个servlet初始化参数创建一个String /值对

4)      容器向ServletConfig提供名/值初始化参数的引用

5)      容器创建(new)serlvet类的实例

6)      容器调用servletinit()方法,传入ServletConfig的引用

容器初始化一个servlet时,会为这个servlet创建一个唯一的ServletConfig,容器从DD中读出servlet初始化参数,并把这些参数交给ServletConfig,然后把ServletConfig传递给servletinit()方法。

初始化参数:在web.xml配置文件中的<servlet>标签中

                   <init-param>

                      <param-name>adminEmail</param-name>

                      <param-value>zzq_rj@163.com</param-value>

        </init-param>

       servlet中调用:getServletConfig().getInitParameter(“adminEmail”);

b)      ServletContext对象

每个Web应用才有一个ServletContext,用于访问Web应用参数。Web应用中的各个servletJSP都能访问ServletContext

初始化参数:在web.xml配置文件中的<web-app>标签中<servlet>标签外

                  <context-param>

                      <param-name>contextname1</param-name>

                      <param-value>contextvalue1</param-value>

           </context-param>

servlet中调用:getServletContext().getInitParameter(“adminEmail”);

           或者   ServletContext context=getServletContext();

                context.getInitParameter(“adminEmail”);

JSP中调用:

 

15.    使用响应

通常,使用响应只是向客户发回数据,会调用两个方法:setContentType()getWriter()。当然,还可以使用响应设置其它首部、发送错误以及增加cookie

response.setContentType(“application/jar”);

完成I/O

ServletContext ctx=getServletContext();

InputStream is=ctx.getResourceAsStream(“/book.jar”);//必须以“/”开头,表示Web应用的根。

两种输出方式

字符形式:PrintWriter writer=response.getWriter();

         writer.println(“some text and HTML”);

字节流形式: ServletOutputStream out=response.getOutputStream();

            out.write(aByteArray);

下一页>> 

  • 大小: 24.3 KB
  • 大小: 14.4 KB
  • 大小: 20.5 KB
  • 大小: 24.1 KB
分享到:
评论

相关推荐

    JSP Servlet基础知识测试题.pdf

    JSP Servlet基础知识测试题

    Servlet基础知识总结

    ### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...

    JSP和Servlet基础知识点

    通过阅读博文《JSP和Servlet基础知识点》(链接:https://greatwqs.iteye.com/blog/1040280),你可以深入理解这两个技术的实际应用和最佳实践,例如如何使用JSP标签库提高开发效率,以及如何在Servlet中处理会话和...

    java web(HTML+JSP+Servlet基础知识)

    本压缩包含有:第1章 背景知识简介;第2章 Java开发环境及开发工具;...第4章 JSP技术基础知识;第5章 Servlet技术基础知识。总计共5个pdf文档,从基础入手,适合初学者及中等水平!希望大家前来分享~

    jsp/servlet基础课件

    **学习JSP和Servlet基础,你需要理解它们的基本概念、生命周期、API使用以及如何协作处理Web请求。此外,熟悉EL和JSTL,以及如何在实际项目中应用MVC模式,对于提升开发效率和代码质量至关重要。本课件将逐步引导你...

    jsp,servlet基础理论知识

    本文将用通俗易懂的语言深入浅出地介绍JSP和Servlet的基础理论知识。 首先,我们来理解什么是JavaServer Pages(JSP)。JSP是Java平台上的一个标准视图技术,它允许开发者将HTML、CSS和JavaScript与Java代码相结合...

    Head First Servlet & JSP

    《Head First Servlet & JSP》是一本非常受欢迎的IT教程,专为准备SCWCD(Sun Certified Web Component Developer...通过阅读这本书,你可以熟练掌握Servlet和JSP的核心技术,为构建复杂的企业级Web应用打下坚实基础。

    jsp Servlet基础入门学习教程

    这个压缩包中的"jsp Servlet基础入门学习教程"可能包含了关于这两个主题的详细讲解,包括理论知识、示例代码和实践指导。建议按照教程步骤逐步学习,同时结合实际项目练习,加深理解。 总之,理解和掌握JSP与...

    jsp servlet 博客项目

    通过这个"jsp servlet 博客项目",初学者可以全面地学习到Web开发的基本流程,从页面设计到服务器端逻辑,再到数据库操作,是实践理论知识和提升技能的好材料。同时,详细说明文档会帮助理解每个部分的功能和实现...

    jsp Servlet基础入门学习教程.rar基础入门学习教程.rar

    五、Servlet基础知识 1. Servlet配置:在web.xml中通过&lt;servlet&gt;和&lt;servlet-mapping&gt;元素定义Servlet。 2. doGet与doPost:这两个方法是Servlet的核心,分别处理HTTP的GET和POST请求。 六、实战演练 1. 创建第一个...

    jsp&servlet电子书

    总之,《jsp&servlet电子书》是学习JSP和Servlet的理想教材,无论你是初学者还是有一定基础的开发者,都能从中获益匪浅。通过阅读这本书,你将能够熟练地运用这两种技术构建高效的Web应用程序,解决实际开发中的各种...

    java jsp servlet 通讯录

    【Java JSP Servlet 通讯录】是一个典型的Web应用程序示例,特别适合初学者用来学习Java Web开发技术。在这个项目中,我们主要会涉及到三个核心技术:Java、JSP(JavaServer Pages)和Servlet。 1. **Java**: Java...

    JSP&Servlet测试题

    【JSP&Servlet测试题解析】 1. JSP(JavaServer Pages...这些知识点涵盖了JSP和Servlet的基础概念、使用方法以及相关组件的特性,是理解JSP&Servlet开发的关键要素。了解和掌握这些内容对于进行Java Web开发至关重要。

    Servlet与JSP.ppt的基础知识

    了解这些基础知识对于初学者掌握Servlet和JSP至关重要。Servlet负责接收和响应HTTP请求,可以处理复杂的业务逻辑,而JSP则简化了视图层的开发,使得开发者能够更方便地在页面中插入Java代码来动态生成HTML。两者结合...

    JSPServlet新手学习资料

    **JSP和Servlet基础知识详解** **一、JSP内置对象** JSP提供了九种内置对象,它们是直接可用的,无需显式创建: 1. **request**:代表用户端请求,能够获取GET/POST请求中的参数。 2. **response**:用于向用户...

    北大青鸟Y2 JSP servlet 上机答案

    通过这样的上机实践,学生能够巩固理论知识,提高实际动手能力,为今后的Web开发工作打下坚实基础。在解答上机作业时,需注意代码规范、错误处理和优化,以提升代码质量和可维护性。同时,理解和熟练掌握JSP与...

    JSP+Servlet面试题

    一、JSP 和 Servlet 基础知识 * JSP 和 Servlet 都是服务器端执行的,通常返回给客户端的是一个 HTML 文本。 * JSP 在服务器上执行,并将执行结果输出到客户端浏览器。 * 客户端只要有浏览器就能浏览 JSP 或 HTML ...

    jspServletDemo

    在实际学习或开发过程中,JSPServletDemo项目涉及的知识点包括: 1. **JSP基本语法**:了解JSP的指令(如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;jsp:include&gt;`等)、动作元素(如`&lt;jsp:useBean&gt;`, `&lt;jsp:setProperty&gt;...

    JSP Servlet 学习笔记源码

    2. **Servlet基础**: Servlet是Java编写的小型服务器应用程序,它们接收HTTP请求并返回响应。Servlet生命周期包括加载、初始化、服务、销毁四个阶段。通过`@WebServlet`注解或在web.xml中配置,可以将Servlet映射...

    jsp servlet实现 学生管理系统.zip

    在本项目中,"jsp servlet实现 学生管理系统.zip"是一个基于Java技术栈的Web应用程序,主要用于管理和操作学生数据。这个系统利用了Java Server Pages (JSP) 和Servlet技术,结合MySQL数据库,来构建一个简单易用的...

Global site tag (gtag.js) - Google Analytics