Servlet&JSP随堂学习笔记

            为了赶java老师布置的大作业,表示这段视频没怎么好好的看,就是吧他们做的PPT上的知识点记了下来,为了以后自己回过头来还能在看看。

                                         Servlet&JSP随堂学习笔记
1.JSP本身就是一种Servlet。
2.Web服务器:很多的客户连接到主机山,读取或者操作上面的资源
3.常用的Web服务器:
    1.IIS
    2.Apache  Linux上面的服务器
    3.Tomcat  java写得,servlet&jsp的容器
4.通用的动态网页技术:
     CGI :C语言写得
     API常用的有 NSAPI,ISAPI
     ASP 已经被ASP.NET替代,一般运行在window上
     PHP
     JSP/Servlet
5.服务器的工作原理:
     有一台服务器,上面跑着一个Web 服务器,可以连接上这个服务器,从上面下载一些内容,进行解析
6.客户端访问web服务器时,只能静态的下载解析,servlet是服务器上得一个小java应用程序,响应处理客户端    
的请求
7.Servlet是服务器小应用程序
  用来完成B/S架构下,客户端请求的响应处理
平台独立,以线程方式运行
Servlet一般在容器中运行
8.常见的Servlet容器
   Tomcat
9.Tomcat的目录结构
bin/  二进制可执行文件和脚本程序 例如:启动和停止
common Tomcat本身和WEB应用可加载的类目录  
conf  配置文件目录,
logs 日志目录
server  服务器所需的类库目录,只能供服务器使用
shared    web app共享的类库,tomcat不能用
webapps   web应用所存放的目录applications
work   Tomcat的工作目录(存放jsp产生的class文件)
temp   存放临时产生的文件
10.Tomcat配置文件讲解
  conf/server.xml  服务器的主配置文件,经常改的地方,
    1.server启动的端口:<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />8080这个端口号可以改动
  conf/web.xml   定义所有Web应用的配置 ,一般这个配置不随意改
  conf/tomcat-user.xml   定义了tomcat用户的信息    ,
    把tomcat-user.xml文件改成:
<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove
  <!.. ..> that surrounds them.
-->
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->
</tomcat-users>
可以进行WEB应用程序的管理
11.Web Application的概念 创建一个WEB application,
  web application 是符合java ee标准的 ,java ee的标准是:
        WEB-INF 1.web.xml 是该web app的配置文件 2.lib 是该web app的配置文件  3.classes存放编译好的servelet
12.servlet程序要放到tomcat运行,然后配置tomcat。吧写好的servlet程序class文件放到apache-tomcat-5.5.17目录下的webapps
目录下test下WEB-INF下classes(没有这个文件需要自己创建)。然后在web.xml文件中定义,web.xml以前的内容保留,只是添加新的定义。
13.http无连接性:客户端从服务器拿下所需的内容后,假如拿下一个网页后,它们之间的连接就断掉了,scoket就close掉了。每个浏览器都有着自己独特
的编号。
1. 服务器可以向客户端写内容。
2.只能是文本内容
3.客户端可以阻止服务器写入
4.只能拿自己webapp写入的东西
5.Cookie分为两种:
   临时Cookie:存在窗口/子窗口
   存在文本
14.cookie保存到客户端的一个文本文件,与特定客户相关
15.cookie以“名-值”对的形式保存数据  cookie记录了浏览器内容前后的一个状态
16.Cookie记录一系列状态,在当前网页做了什么操作,在下一个网页依然能看的到
17.Session也是记录一些列状态,在当前网页做了什么操作,在下一个网页依然能看的到
18.Cookie跟Session的区别:Cookie记录的内容是再客户端的,Session记录的内容是在服务器端
19.当访问服务器时,浏览器会在服务器上开一个内存Session,与这个浏览器建立映射。http无连接性:
浏览器从服务器上取完内容就断掉了。
20.Session
    如果浏览器支持Cookie,创建Session的时候会吧SessionID保存到Cookie里
    如果浏览器不支持Cookie,必须自己编程使用URL重写的方式实现Session,此时需要用到函数:
        response.encodeURL(链接) 作用:1.转码   2.URL后面加入SessionId
      1.在某段时间一连串客户端与服务器端的“交易”
    2.Session两种实现方式:
        1.Cookie实现:每一个浏览器都有一个Session id号,与服务器上的Session相对应。浏览器上的Session id号存在临时Cookie中。浏览器允许cookie,session实现会依赖cookie   
        2.URL重写:就是将一些额外数据追加到表示会话的每个URL末尾,服务器在该标示符与其存储的有关的该会话的数据之间建立关联
21.可以通过程序来终止一个会话,如果客户端在一定时间内没有操作,服务器会自动终止会话。
22.通过HttpSession来读写Session,建立一个Session就是在服务器上分配一个内存
23.application是服务器上可以共享的内存,session内存只能对应一个客户端。application对应的这个类的名字叫ServletContext ,在一个web application上面可能跑着很多的servlet
24.bean:全称java bean。java是一种咖啡的名称,bena是豆。 组件:一系列的类组合在一起共同的对外服务。java bena广义的概念就是java的一个类
23.WEB上的概念以及原理
  1.原理3个: Cookie,Session,application
24.JSP的response隐藏对象在转换为Servlet之后,对应于HttpServletResponse型态对象,HttpServletResponse对象是有关于对客户端请求之响应,您可以利用它来设定一些要响应的讯息
25.JSP Java Server Pages   就是一个servlet,直接在Html中内嵌JSP代码,JSP程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行。只有当客户端第一次请求JSP
时,才需要将其转换,编译<%  java代码   %>
26.JSP性能优于 CGI,PHP,ASP
27.JSP编程基本语法分为4种
    1.JSP传统语法 Declaration声明  Scriptlet小程序端   Expression表达式  Comment注释  Directives指令  Action动作指令  内置对象
    2.JSTL
    3.JSF
    4.其他taglib(如struts)
28.JSP传统语法:
    1.Declaration 声明:<%  %>在此声明的变量,,方法都会被保留成唯一的一份,直到JSP程序停止执行
        声明变量1<%!加感叹号是成员变量,可以声明方法,相当于声明了servlet内部类的一个成员方法
            int accessCount = 0;
            void  m() {}
        %>
        声明变量2<%是局部变量,不能声明方法
                int accessCount2 = 0;
            %>
        <%= ++accessCount %>输出变量accessCount <%= %>表示输出
    2.Scriptlet 基本语法: <%程序代码区%> 里面可以放入任何的java程序代码 注释格式:<%--...--%> <%//..%> <%*..*/%>
    3.Expression基本语法: <%=...%>输出,相当于java 的out.println();在JSP中可以直接用session对象
    4.Directive(编译指令) 相当于在编译期间的命令 格式:<%@Directive 属性=“属性值”%> 常见的Directive:page  include  taglib
        1.指令page 指明与JSP Container的沟通方式,也就是当前页面的特点,这些方式重要的有4个:import 引入的java的类,java.util.*; errorPage="errorPageUrl",isErrorPage="true|false",contenType="contenTyepInfo"
        2.指令include将指定的JSP程序或者HTML文件包含进来 格式:<%@include file="fileURL%> JSP Engine会在JSP程序的转换时期先把file属性设定的文件包含进来,然后开始执行转换及编译的工作,编译期间就包含进来。不能向fileURL中传递参数 例如:不能是abc.jsp?user=aaa
        3.Action(动作指令)在运行期间的命令,常见的有:
            1.jsp:include/jsp.param  用于动态包含JSP程序或HTML文件等,除非这个指令会被执行到,否则它是不会被Tomat等jsp engine编译
                格式:  <jsp:include page="URLSpec(后面可以加参数)" flush="true"/>
                    <jsp:include page="URLSpec" flush="true">
                        <jsp:param name="ParamName" value="paramValue"/>
                    </jsp:include>
            2.jsp:forward/jsp:param 用于将一个jsp的内容传送到page所指定的JSP程序或者Servlet中处理(URL)由当前页面跳转到forward page="urlSpec"指定的页面
                格式:
                    <jsp forward page="urlSpec" flush="true"/>
                    <jsp forward page="urlSpec">
                        <jsp param name="paramName" value="paramValue"/>
                    </jsp forward>
                <jsp param>用于指定参数和对应的值
            3.jsp:useBean,可以在JSP中使用定义好的Bean. Bean的基本要素:
                                    1.必须要有一个不带参数的构造器。在JSP元素创建Bean时会调用空构造器】
                                    2.Bean类中得变量是private类型,变量名称首字母必须小写
                                    3.通过getter/setter方法来读/写变量的值,并且将对应的变量首字母改成大写
                                Bean基本用法:
                                    <jsp useBean id="beanName" scope="pagelrequestlsessionlapplication" class="package BeanClass" type="typeName" />
                                    <jsp useBean...>
                                    </jsp useBean>
                jsp:useBean各项参数含义: id:对象实例名称 scope:Bean作用的范围。class:Bean类名称 type:Bean实例类型,可以是本类,或其父类,或实现的借口,默认为本类
                Scope各项参数的含义:page仅覆盖使用JavaBean的页面,request有效范围仅限于使用JavaBean的请求。session有效范围在用户整个连接过程中(整个会话阶段均有效)application有效范围覆盖整个应用程序。也就是对整个网站均有效
            在JSP里面,Bean一般放在包里面,不能写成裸体类    
29.JSP的response隐藏对象在转换为Servlet之后,对应于HttpServletResponse型态对象,HttpServletResponse对象是有关于对客户端请求之响应,您可以利用它来设定一些要响应的讯息
30.request这个对象不用事先声明,就可以在JSP网页中使用,在编译为Servlet之后,是有关于客户端所发出的请求的对象,只要是有关于客户端请求的信息,都可以藉由它来取得,例如请求标头、请求方法、请求参数、客户端IP,客户端浏览器等等信息
31.JSP的内置对象:
    out  向客户端输出一个内容,内置对象是一个缓冲的输出流,用来给客户端返回信息。它是javax.servlet.jsp.JspWriter的一个实例
        out常用方法:println():向客户端输出各种类型数据  newLine()输出一个换行符 close()关闭输出流 flush()输出缓冲区里的数据
                clearBuffer()清除缓冲区里的数据,同时把数据输出到客户端clear()清除缓冲区里的数据,但不把数据输出到客户端  getBufferSize()返回缓冲区的大小
    request  request内置对象表示的是调用JSP页面的请求。常用的方法:getMethod():返回客户端向服务器端传送数据的方法 getParameter(String paramName):返回客户端向服务器端传送的参数值,该参数由paramName指定
                                    getParameterNames()获得客户端传送给服务器端的所有参数的名字,结果是一个枚举类型数据  getParameterValues(String name):获得指定参数的所有值,由name指定
                                    getRequestURL()获得发出请求字符串的客户端地址 getRemoteAddr()获取客户端的IP地址  getRemoteHost()获取客户端机器名称  getServerName()获取服务器的名字
                                    getServletName()客户端所请求的脚本文件路径   getServerPort()获取服务器的端口
    response 表示的是返回给客户端的响应 是javax.servlethttp.HttpServletResponse接口的一个实例
         常用方法:
            addCookie(Cookie cookie):添加一个Cookie对象,用于在客户端保存特定的信息
            addHeader(String name,String value):添加HTTP头信息,该Header信息将发送到客户端
            containsHeader(String name):判断指定名字的HTTP文件头是否存在
            sendError(int):向客户端发送错误的信息
            sendRedirect(String url):重定向JSP文件 和<jsp forward>的区别:sendRedirect通过客户端发起二次申请,不同的request对象    JSP forward是同一个request,在服务器内部转发
            setContentType(String contentType):设置MIME类型与编码方式
    Cookie  Http协议的无连接性要求出现一种保存C/S间状态的机制  cookie保存在客户端的一个文本文件 Cookie以名-值对的形式保存数据,通过getName和getValue的方式得到相应的名字和值
    Session <% @page session="true"%> 表示session功能已经在jsp页面中启动
            session的常用方法:
                void setAttribute(String name,Object value)
                Object getAttribute(String name)
                boolean isNew()
    application  
    response
    pageContext
    session
    application
    config
    exception
    page
32.Servlet和JSP的通信
    从JSP调用Servlet可用<jsp.forward>
    请求信息自动传递到Servlet,或者通过sendRedirect
    从Servlet调用JSP使用;
        RequestDispatcher接口的forward(req,res)方法
        请求信息需要显式传递(在req,res参数中)
        或者通过sendRedirect


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值