精华内容
下载资源
问答
  • 有时候我们看到很多网站是网址是没有后缀名的,其实.net中可以通过httpHandler来实现。
  • 1.首先安装iis,其中需要代asp.net这个插件2.去D盘新一个文件夹wwwroot,并在该文件夹下面新建要跳转的网址为命名的文件夹,例如:23234.com3.打开IIS...新一个后缀为.config 文件 web.config 放入以下内容:&l...
    1.首先安装iis,其中需要代asp.net这个插件
    2.去D盘新一个文件夹wwwroot,并在该文件夹下面新建要跳转的网址为命名的文件夹,例如:23234.com
    3.打开IIS管理器,新建一个网站,网站名就是要跳转名称,例如:23234.com  
    4.把新建网站的目录指定到D:\wwwroot\23234.com
    5.新一个后缀为.config  文件  web.config  放入以下内容:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
          <system.webServer>
                <httpRedirect enabled="true" destination="http://www.baidu.com:8899" httpResponseStatus="Permanent" />
          </system.webServer>
    </configuration>

    6.网站即可以开始绑定网址,都跳转到上面文件内容的网址。
    7.如需要移动服务器,只需要把wwwroot下面各网站考出,并用【驿站备份2.0】这个软件备份IIS
    展开全文
  • Web前端开发学习2:动态网页

    千次阅读 2015-10-22 12:46:31
    式,而是以·aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号“?”。  二动态网页简介  所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网
            一动态网页概述
    

            动态网页是与静态网页相对应的,也就是说,网页 URL的后缀不是htm、html、shtml、xml等静态网页的常见形

    式,而是以·aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号“?”。

            二动态网页简介

            所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显

    示效果就基本上不会发生变化了,除非你修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容

    却是可以随着时间、环境或者数据库操作的结果而发生改变的。

           值得强调的是,不要将动态网页和页面内容是否有动感混为一谈。这里说的动态网页,与网页上的各种动画、滚

    动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只

    是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术生成的网页都可以称为动态网

    页。

           总之,动态网页是基本的html语法规范与Java、VB、VC等高级程序设计语言、数据库编程等多种技术的融合,

    以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级

    程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。

            从网站浏览者的角度来看,无论是动态网页还是静态网页,都可以展示基本的文字和图片信息,但从网站开发、

    管理、维护的角度来看就有很大的差别。

            三动态网页的特征

            (1)动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量;

            (2)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等

    等;

            (3)动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;

           (4)动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网

    页,或者出于技术方面的考虑,搜索之中不去抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推

    广时需要做一定的技术处理才能适应搜索引擎的要求。

           四动态网页设计新技术

           1PHP 即Hypertext Preprocessor,它是当今Internet上最为火热的脚本语言,其语法借鉴了C、Java、PERL等语

    言,但只需要很少的编程知识你就能使用PHP建立一个真正交互的Web站点。它与HTML语言具有非常好的兼容性,

    使用者可以直接在脚本代码中加入HTML标签,或者在HTML标签中加入脚本代码从而更好地实现页面控制。PHP提

    供了标准的数据库接口,数据库连接方便,兼容性强;扩展性强;可以进行面向对象编程。

           2ASP 即Active Server Pages,它是微软开发的一种类似超文本标识语言(HTML)、脚本(Script)与CGI(公用网关

    接口)的结合体,它没有提供自己专门的编程语言,而是允许用户使用许多已有的脚本语言编写ASP的应用程序。ASP

    的程序编制比HTML更方便且更有灵活性。它是在Web服务器端运行,运行后再将运行结果以HTML格式传送至客户

    端的浏览器。因此ASP与一般的脚本语言相比,要安全得多。

           ASP的最大好处是可以包含HTML标签,也可以直接存取数据库及使用无限扩充的ActiveX控件,因此在程序编制

    上要比HTML方便而且更富有灵活性。通过使用ASP的组件和对象技术,用户可以直接使用ActiveX控件,调用对象方

    法和属性,以简单的方式实现强大的交互功能。

           但ASP技术也非完美无缺,由于它基本上是局限于微软的操作系统平台之上,主要工作环境是微软的IIS应用程序

    结构,又因ActiveX对象具有平台特性,所以ASP技术不能很容易地实现在跨平台Web服务器上工作。

           3JSP 即Java Server Pages,它是由SunMicrosystem公司于1999年6月推出的新技术,是基于Java Servlet以及

    整个Java体系的Web开发技术。

           JSP和ASP在技术方面有许多相似之处,不过两者来源于不同的技术规范组织,以至 ASP一般只应用于Windows

     NT/2000平台,而JSP则可以在85%以上的服务器上运行,而且基于JSP技术的应用程序比基于ASP的应用程序易于

    维护和管理,所以被许多人认为是未来最有发展前途的动态网站技术。

           4asp.net 是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的 Web应用程序。aspx是微

    软的在服务器端运行的动态网页文件,通过IIS解析执行后可以得到动态页面,是微软推出的一种新的网络编程方法,

    而不是asp的简单升级,因为它的编程方法和asp有很大的不同,他是在服务器端靠服务器编译执行的程序代码,

         ASP 使用脚本语言,每次请求的时候,服务器调用脚本解析引擎来解析执行其中的程序代码,而asp.net 则可以

    使用多种语言编写,而且是全编译执行的,比ASP 快,而且,不仅仅是快的问题,有很多优点。

           五asp.net特点

           与以前的 Web 开发模型相比,asp.net 提供了数个重要的优点:

           1)增强的性能。asp.net 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,asp.net 可利

    用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。

           2)世界级的工具支持。asp.net 框架补充了 VisualStudio集成开发环境中的大量工具箱和设计器。WYSIWYG 编

    辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。

           3)威力和灵活性。由于 asp.net 基于公共语言运行库,因此Web应用程序开发人员可以利用整个平台的威力和灵

    活性。.NET 框架类库、消息处理和数据访问解决方案都可从 Web 无缝访问。asp.net 也与语言无关,所以可以选择

    最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 asp.net 时保留

    基于 COM 的开发中的现有投资。

            六动态网页缺点

            1首先动态网页在访问速度上不占优势

            动态网页首先获得用户的指令,然后网页拿着指令到数据库中找和指令相对应的数据,然后传递给服务器,通过

    服务器的编译把动态页面编译成标准的HTML代码,传递给用户浏览器,这样用户就看到了网页。问题出来了,每次

    访问网页都要经过这么一个过程,这一过程至少需要几秒钟的时间,访问的人数一多,页面的加载速度就会变慢,对

    服务器来说也是一种负担;从用户角度来说,网页加载的慢,迟迟没有反应,下次谁还会来访问你的网站。而静态网

    页就简单了,静态网页是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。由此可见,动态

    网页在访问速度上并不占优势。

           2在搜索引擎收录方面并不占优势

           上面从服务器和用户体验的角度说了一下,下面再从搜索引擎收录角度说一下,动态网页是在用户输入指令后才

    形成的页面,并不存在这个页面,而搜索引擎只会抓取现成的,并不会自己输入,因此网站在搜索引擎收录方面并不

    占优势。搜索引擎还是喜欢静态页面。不过搜索引擎在不断完善发展。到目前为止,绝大多数的搜索引擎都已支持动

    态页面的抓取。

    展开全文
  • web系统设计总结

    2020-11-25 11:12:50
    系统设计 什么是系统设计? (System Design) ​ 系统设计是一个定义系统架构、模块、接口和数据满足特定需求的过程 ...​ 转换之后网址后缀不超过7位(字符或者数字) 使用场景∶ ​ 提供短网址服务为公

    系统设计

    什么是系统设计? (System Design)

    ​ 系统设计是一个定义系统架构、模块、接口和数据满足特定需求的过程
    ​ 比如设计一个短网址服务、评论服务、Feed流系统、抢红包系统
    ​ 微服务架构很多系统被按照业务拆分,需要单独设计一个

    如何设计与实现一个短网址系统?
    什么是短网址系统? TinyUrl Service

    ​ 把一个长网址转成短网址的服务
    ​ 比如https://bitly.com/
    ​ 转换之后网址的后缀不超过7位(字符或者数字)

    使用场景∶

    ​ 提供短网址服务为公司其他各业务服务
    ​ 功能:一个长网址转成短网址并存储;根据短网址还原长url
    ​ 要求短网址的后缀不超过7位(大小写字母和数字)
    ​ 预估峰值插入请求数量级︰数百﹔查询请求数量级∶数千

    短网址系统的存储设计?需要存储哪些字段?
    id token(索引) url(原网址) create_at
    1
    2
    3
    如何设计算法生成短网址?

    ​ 两个API : long2short_url,shot2long_url

    ​ 1.md5摘要算法,取前7个字符。但是冲突

    import hashlib
    
    url = 'https://zhidao.baidu.com/question/380491182.html'
    code = hashlib.md5(url.encode()).hexdigest()
    print(code, len(code))
    
    

    ​ 2.递增序列算法。类似于62进制数值。二进制0,1

    '''
    	十六进制0-9 a-f
    	十进制->62进制
    	10进制->2进制
    	不断取余,倒序输出
    '''
    def mybin(num):  # 10进制->2进制
        if not num:
            return 0
        res = []
        while num:
            num, rem = divmod(num, 2)
            res.append(str(rem))
        return ''.join(reversed(res))
    
    
    CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
    
    
    def myEncode(num):
        if not num:
            return CHARS[0]
        res = []
        while num:
            num, rem = divmod(num, (len(CHARS)))  # 62
            res.append(str(CHARS[rem]))
        return ''.join(reversed(res))
    
    
    print(myEncode(0))
    print(myEncode(4))
    print(myEncode(61))
    print(myEncode(62))
    
    request -> redis incr index -> myEncode(index) ->save mysql
    
    
    如何设计一个秒杀系统

    难点∶
    **高并发:**时间极短、 瞬间用户量大
    **超卖:**售出数量多于设置的商品数
    **恶意请求:**机器人请求
    **链接暴露:**浏览器开发者模式查看秒杀请求链接
    **数据库:**QPS过大

    解决方案:
    **服务单一职责:**建立单独的秒杀库
    **URL动态化:**通过加密算法加密URL得到随机的字符串
    **Redis集群:**主从同步、读写分离,我们还搞点哨兵,开启持久化
    **Nginx:**负载均衡
    **资源静态化:**秒杀商品的页面实现前后端分离,单独部署前端页面
    **按钮控制:**秒杀按钮置灰,前端请求后端服务器最新时间,到时间再设置按钮可用
    **限流:**前端点击后隔几秒才能继续点击,后端商品销售完后直接return 不接受之后的无效请求
    **库存预热:**开始秒杀前你通过定时任务或者运维同学提前把商品的库存加载到Redis中去,
    让整个流程都在Redis里面去做,然后等秒杀介绍了,再异步的去修改库存
    **削峰填谷:**使用消息队列,对于突然到来的大量请求,可以配置流控规则,以稳定的速度逐步处理这些请求,
    起到“削峰填谷”的效果,从而避免流量突刺造成系统负载过高。

    展开全文
  • Java Web

    千次阅读 2012-11-12 23:57:48
    以超文本,超媒体的方式组织网络内的消息资源用户可以通过WWW浏览器获取Internet上任意网址的信息提供直观,易于使用的图形用户界面  WWW服务的核心技术是超文本语言HTML,信息资源的统一定位格式URL和超文本传送...

    第一章:JSP简介

       WWW服务具有的特点:

    • 以超文本,超媒体的方式组织网络内的消息资源
    • 用户可以通过WWW浏览器获取Internet上任意网址的信息
    • 提供直观,易于使用的图形用户界面

             WWW服务的核心技术是超文本语言HTML,信息资源的统一定位格式URL和超文本传送协议HTTP

     

    后缀名为htm或者html的网页时静态网页,其不足:

    • 不能及时更新信息,页面上提供的内容都是一成不变的
    • 当需要修改或者添加新的信息时,必须重写HTML文件,缺乏扩展性
    • 不能根据用户的需求提供不同的信息,不能满足多样性的需求

    HTML语言由一系列标记组成的,所有标记都必须用角括号"<"和“>"括起来。大部分标记都是成对出现的,包括开始标记和结束标记。同时每个标记包含若干个属性来定制网页。例如标记<font size="12" coler="red">......</font>,其中<font>是开始标记,</font>是结束标记,而size和color是font标记的属性。

    HTML对大小是不敏感的<html>和<HTML>是一样的,建议用小写。

    <head>和<body>标记是互相独立的标记,不能嵌套使用。

    HTML中,大部分标记的属性都可以分为可选属性,标准属性和事件属性3类

    文字内容通常被直接写在标记中,一个空格符号使用一个”&nbsp”表示,特殊字符用”&。。。”表示

    文字标题标记<h>,从<h1>到<h6>文字的字体大小依次递减,每个标题标记所标记的文字将独占一行且上下均留一行空白,aligh属性用于定义标题的对齐方式。

    注释标记:<comment>注释内容</comment>,       ,        , <!--注释内容-->

    CSS弥补HTML的不足,使HTML页面更美观:

    • 将显示格式和文档结构分离
    • 弥补HTML在显示属性设定上的不足,如字体,段落间隔。。。
    • 使网址的体积更小,网页的下载速度更快
    • 实现网页的动态更新。可以通过简单地更改CSS文件,改变网页的整体表现形式,减少工作量

    动态网页技术

            常用的动态网页技术有ASP,PHP和JSP

            JSP特点:

         1.将内容的生成和显示进行分离

         2.强调可重用的组件

         3.一次编写,各处运行

         4.移植性强

         5.多样化和功能强大的开发工具支持

    WWW服务的概念及WWW服务的工作原理:C/S模式

    静态网页与动态网页的区别:是否在服务器端执行

    HTML通过<form></form>标记对实现动态功能

    JSP页面结构:HTML语言中嵌入java代码

    JSP执行的过程和基本原理:JSP页面先被转化为Servlet代码,然后被编译成class文件,最后加载到内存运行,给客户端提供服务

    第二章:搭建JSP运行环境

           安装和配置JDK

           下载安装MyEclipse

            下载安装Tomcat

           安装配置MySQL

    第三章:JSP基本语法

          面向对象程序设计有3大特征:封装,继承,多态

    输出注释<!--comment [ <%= expression %> ] -->

    隐藏注释<%--comment--%>

    在JSP的page指令中,除了import属性能多次出现之外,其他的page指令所定义的属性都只能出现一次,import导入需要使用的包或类

    与Java类似,在默认情况下,JSP页面会自动导入一些常用的包:java.lang.*;javax.servlet.*;javax.servlet.jsp;javax.servlet.http.*

    buffer(输出流的缓冲模式)属性与autoflash(缓冲已满是,是否刷新缓冲区)属性通常放在一起使用,而且当buffer属性设置为none时,不能将autoflash属性设置为false

    Servlet采用ThreadSafe机制来控制多线程的处理,当Servlet需要同时处理多个用户的请求时,并不会创建新的进程,而只是在当前的Servlet进程中创建一个新的线程来处理客户端的请求,这样可以减少同时运行的进程数,从而减轻服务器端的压力。

    通常我们不建议使用extends属性,因为JSP容器会自动提供转换后的servlet类的父类,默认的父类是HttpJspBase类,而且使用extends属性可能会影响JSP容器的性能

    file属性指定的相对路径如果以”/"开头,则表示使用的将是相对于JSP服务器应用的根目录的路径;如果直接使用文件名或“文件夹/文件名”的形式,则表示使用的是相对于当前JSP页面文件所在的目录

         表达式<%=expression %>

        scriptlet 脚本程序<% code fragment %>        在scriptlet的语法式中,并没有等号的出现,而且,scriptlet中的java代码,都是需要分号作为结束符的,这是与表达式的一个重要区别。

          一个scriptlet能够包含多个Java语句,包括方法,变量等内容。

    • 声明将要用到的变量或方法
    • 编写JSP表达式
    • 使用任何隐含的对象和任何用<jsp:useBean>声明过得对象
    • 编写Java程序语句

    由于scriptlet中包含的是Java程序代码段,所以其他任何文本,HTML标记,JSP元素都必须编写在scriptlet之外。

    JSP中的声明:  <%! declaration; [ declartion; ]+... %>

    一次性声明多个变量和方法,只要以“ ;”(分号)结尾就可以

    这些声明,它们只在网页被加载时被计算一次。这一点就像在Visual C++中创建一个类并定义变量的初始化值,所以,无论如何加载页面,执行结果都是相同的

    一个声明仅在一个页面中有效,如果有多个页面都需要用到同样的声明,最好把它们写成一个单独的文件,然后用<%@ include %>或<jsp:include>元素包含进来,实现代码的复用

    当我们使用标准动作元素时,格式里的前缀应该使用"jsp"

    <jsp:param>动作是用来追加参数的标记。通常,在单独使用<jsp:param>动作时,是没有任何意义的,而且编译器在编译JSP页面时将会出错并提示你应该将<jsp:param>动作与<jsp:include>或<jsp:forward>等动作一起使用

     include指令和include动作的区别,通过指令元素与动作元素的区别可以得出:include指令静态地引用其他文件的内容,组合成一个新的文件,然后在编译时一起被编译;而include动作则是动态地引用其他文件,在运行时才会进行引用

         <jsp:include>动作通常与<jsp:param>动作一起使用,但是只有当<jsp:include>动作引用动态文件时,才需要通过<jsp:param>动作传递参数及其值

         <jsp:forward>动作用来重定向页面,即允许将请求发送到另一个JSP页面,Servlet或一静态资源文件

         <jsp:forward  page=" ... " />page属性用来定位将要跳转的页面的相对路径

    <jsp:useBean>中的scope取值范围page,request,session,application

    由于application对象是在应用服务器启动时创建的,且直到应用服务器被关闭才销毁,因此当scope属性的取值为application时,该JavaBean对象应该存在于整个application的生命周期中,任何共享一个application的JSP页面均能使用该JavaBean

          虽然在JSP页面的表单中传递的参数的数据类型都是String型的,但是在使用<jsp:setProperty>动作中的property属性时,JSP的内在机制会将String型的参数转化为与JavaBean中的属性相对应的数据类型。。。当JavaBean中的属性为基本数据类型时,<jsp:getProperty/>动作将其转化为String类型的值

          <jsp:plugin>动作用来在JSP页面中加载Java小程序,并在客户端的浏览器产生特殊标签,例如<object>或<embed>标签

     

    JSP页面的基本组成内容包括JSP的注释,脚本元素,指令元素和动作元素

    page指令用来定义JSP页面的全局属性,我们通常将其放在JSP页面的源代码首部

    include指令用来在使用该指令的地方静态地引用其他文件的内容

    taglib指令用来指定页面定义一个标记库和自定义标签的前缀

    JSP中的动作元素包括自定义动作元素和标准动作元素

    <jsp:param>动作用来追加参数

    <jsp:include>动作用来在JSP页面的动态地包含其他的文件

    <jsp:forward>动作用来重定向页面

    <jsp:useBean>动作用来在JSP页面中创建并使用一个JavaBean,同时指定它的名字和作用范围

    <jsp:setProperty>动作用来设置JavaBean的简单属性和索引属性

    <jsp:getProperty/>动作用与<jsp:setProperty/>动作相对应,用来获取一个JavaBean中的各属性值

    <jsp:plugin>动作用来在JSP页面中加载Java小程序

    <jsp:fallback>动作用来在Java插件无法正常启动时,向客户端显示一段提示性文字内容

    <jsp:fallback>动作必须与<jsp:plugin>动作一起使用

    JSP页面是在页面被编译时起作用,而JSP动作元素则是在页面请求的处理阶段才起作用,它将影响JSP页面的运行时的功能

    第四章:JSP的内置对象

    Web交互的最基本单位为HTTP请求。每个用户从进入网站到离开网站这段过程称为一个HTTP会话,一个服务器的运行过程中会有多个用户访问,就是多个HTTP会话。作用域如下:

    • application:服务器启动到停止这段时间
    • session:HTTP会话开始到结束这段时间
    • request:HTTP请求开始到结束这段时间
    • page:当前页面从打开到关闭这段时间

    在JSP服务器的运行过程中,仅有一个application对象,application对象是由服务器创建的,由服务器自动清除它,不能被用户创建,用户也不能清除application对象,我们只能创建这个application对象的同步副本。application就是由JSP引擎自动创建的第一个application对象的同步副本。特别需要注意的是这些副本是同步的,任何一个副本上发生的变化都会影响到其他的副本

    setAttribute()方法把参数和对象绑定在一起,getAttribute()和getAttributeNames()方法获取它们的值

    application对象和session对象并非不能被创建,但是,它们只能由JSP引擎自动创建。application对象在服务器启动时被创建,在服务器关闭时被删除,session对象在新的HTTP连接产生时被创建,在HTTP连接中断或者超时的时候被删除,同时,JSP程序员也可以调用invalidate()方法强行删除session对象,中断HTTP连接,这是application对象和session对象的不同点之一

          能够和application对象或者session对象绑定的只能够是Java对象,如String,Integer,Vector等,而不能是普通的数据类型,如int,double,float等,如果真的需要将它们绑定到application对象或者session对象上,那么它们必须首先转化为相应的Java对象

    • application对象用于在多个程序中保存信息,用来在多个程序中共享信息,并在Web应用程序运行期间持久地保持数据
    • session对象用于分别保存每一个用户信息的对象,以便于跟踪用户的操作状态。注意,不同的用户对应的session对象是不同的
    • request对象用于接收所有从浏览器发送到服务器的请求内的所有信息
    • page对象代表JSP对象本身,或者说代表编译后的servlet对象
    • config对象用于配置处理JSP程序的句柄,而且只在JSP页面范围内合法
    • exception对象代表JSP应用中的错误对象,只有在JSP页面的page指令中指定isErrorPage=true后,才可以在本页面中使用exception对象
    • out对象用于向客户端输出数据
    • respose对象的作用是处理HTTP连接信息,如cookie,HTTP文件头信息等,它有很多功能和request对象相匹配
    • pageContext对象用于管理属于JSP中特殊可见部分中的已经命名对象的访问。它是JSP内置对象中的集成者

    第五章:使用JDBC连接数据库

          关系的结构加上域的说明,以及对取值的所有约束,统称为关系的内涵(intension),它通常是固定的。除非关系的意义发生变化,需要加入新的属性。元组称为关系的外延(extension)或状态(state),它通常会发生改变

           一个关系通常具有如下性质:

    • 有一个唯一的关系名称
    • 关系中的每一个单元格都包含且仅包含一个单一值
    • 每个属性都有一个唯一的名称
    • 同一属性中的各个值都取自相同的域
    • 各个元组互不相同,即不存在重复元组
    • 属性的顺序并不影响关系
    • 理论上来说,元组的顺序并不重要。但实际上,这个顺序会影响对元组的访问效率

         为什么在有了关系表之后,还要引进视图的概念呢?这是因为视图能为我们提供以下用途:

    • 提供对特殊用户隐藏部分数据库信息,提供一个强大而灵活的安全机制
    • 允许用户根据自己的需要自定义访问数据的方法,因此不同的用户可以通过不同的路径同时看到相同的数据信息
    • 可以简化用户对基本关系的复杂操作

          SQL语言包括以下几个部分:

    • 数据定义语言。提供定义关系模式,删除关系及修补关系模式的命令
    • 交互式数据操纵语言。包括基于关系代数和元组关系演算的查询语言,还包括在数据库中插入,删除和修改元组的命令
    • 完整性。包括定义保存在数据库中的数据必须满足的完整性约束条件的命令。破坏完整性约束条件的更新操作都将被禁止
    • 视图定义。包括定义视图的命令
    • 事务控制。提供定义事务的开始和结束的命令
    • 嵌入式SQL和动态SQL。将SQL语句嵌入到通用或高级编程语言中
    • 授权。包括说明对关系和视图的访问权限的命令

       MySQL语句的一些特性:

    • 一条命令通常由SQL语句组成,以分号结束(有些特例不需要分号结束,例如QUIT命令)
    • MySQL将命令发送给服务器,随后显示结果,同时准备接收新的命令
    • MySQL通常以一张表格来显示输出结果。第一行包含列标签,随后的行即为输出结果。通常列标签是数据库表中列的名称,但是当查询请求是一个表达式而非表的列值,那么MySQL将使用表达式本身作为列的标签
    • MySQL每次输出结果时都会显示有多少个元组被返回,以及查询所消耗的时间值。但是由于它表示时钟时间,而不是CPU或机器时间,并且可能受到诸如服务器和网络延时的影响,所以这个值是不精确de

    一些字段属性的说明:

    • 如果不为某一字段指定null或not null的完整性的约束说明,那么它将被默认为null
    • 如果一个字段的数据类型为整型,那么可以为其加上auto_increment的附加属性。在进行值的插入操作时,可以不指定该列所对应的值,或者可以指定为null或0,其自动被赋予当前该列的最大值value再加1的值。需要注意的是,每个数据表中,都只能有一个auto_increment的列,而且它必须被索引。同时MySQL为了与一些ODBC或JDBC应用程序兼容,可以认为最后插入的元组的auto_increment列值为null,并且可以通过下面的语句对其进行查询:select * from tbl_name where auto_col is null
    • 当列的数据类型为TIMESTAMP时,对null值的处理与其他数据类型不同。无论你对该列赋予null或not null的完整性约束说明,都将被忽视。如果将该列设为null,那么MySQL自动将其转化为当前的日期和时间。在对该列进行赋值时,如果赋予了null值,虽然MySQL服务器不会提示非法错误的信息,但实际上TIMESTAMP是不可能包含一个null值的。但是,你可以为该列赋0值,因为0是一个有效的TIMESTAMP值
    • 如果没有为列指定default值,那么MySQL将自动为其分配。如果其数据类型允许它取值为null,那么该列的默认值则为null。如果该列已被声明为not null,那么其默认值则需要取决于它的数据类型:1.如果该字段是数字类型,且没有声明附加属性auto_increment,那么其默认值为0.如果声明了auto_increment附加属性,那么其默认值是自增序列中的下一个值  2.日期和时间类型中,除TIMESTAMP外,其默认值均为该类型适当的零值。而对于TIMESTAMP类型,其默认值则为当前的日期和时间
    • 字符串类型中,除ENUM外,其默认值均为空字符串。而ENUM类型的默认值则是第一个枚举值
    • key是index的一个同义词,在MySQL中发挥同样的作用
    • primary key(主键)可以是一个多列索引,但是所有的主键列都必须被定义为not null,且一个表只能有一个主键 

     JDBC中的url要与各种不同的驱动程序一起使用,因此关于它的约定非常灵活:

    • 允许不同的驱动程序使用不同的方案对数据库进行命名,例如ODBC子协议允许url中含有属性值
    • JDBC的url允许开发人员将一切需要的信息加入其中,使得与特定数据库连接的Applet能够直接打开数据库连接,而无须要求用户去进行任何系统管理操作
    • JDBC的url允许一定程度的间接性,即url指向逻辑主机或数据库名,而这种逻辑主机或数据库名将由网络命名系统动态地转换为 实际的名称。使得系统管理员不必将特定主机声明为JDBC名称的一部分

    Absolute()方法中的int型参数row可以为正数或负数

    • 为正数时:从记录的第一条数据开始移动指定的个数
    • 为负数时:则表示倒数,从最后一条数据向前进行移动

    通过JSP对数据库进行连接访问及操作的一般步骤:

    • 导入java.sql包。java.sql包中包含了Java语言中提供的所有与数据库相关的对象及其方法,并且包含了使用Java语言操作数据库的类和接口
    • 加载JDBC驱动程序。在这里我们通过使用Class.forName()方法显示地加载指定的JDBC驱动程序,这种方式与外部数据库设置无关
    • 指定数据库的连接所需信息。数据库的url对象与网络资源的统一定位方式类似。另外,根据需要,指定适当的数据库用户名和密码的信息
    • 建立与数据库的连接。在创建数据库连接时,首先需要提供数据库的url地址和JDBC的驱动程序类型,然后通过DriverManager类的getConnection()方法建立连接
    • 对数据库进行访问及操作。使用Connection类的creatStatement()方法从指定的数据库连接得到一个Statement类的实例对象,再通过这个实例对象来执行指定的SQL语句
    • 关闭数据库的连接。这一步至关重要,在数据库的访问结束后,需要及时关闭数据库的连接,释放其所占的资源

     

    • 一个典型的关系型数据库通常由一个或多个被称为表的对象组成,数据库中的所有数据或信息都被保存在这些数据库表中。关系型数据库是具有不同关系名称的规范化关系的一个集合
    • 关系数据库中的基本概念:表,属性,域,元组,维和基数等
    • 大部分数据库系统通常提供两类数据库语言:数据定义语言和数据操纵语言
    • SQL语言集数据定义语言DDL,数据操纵语言DML,数据控制语言DCL等功能于一体,语言风格统一
    • MySQL数据库的相关管理操作。MySQL数据库中的数据库类型和语言规范基本符合ANSI/ISOSQL92规范
    • JDBC主要包括3个部分:Connection(连接),Statement(语句)和ResultSet(结果集)
    • JDBC提供4类驱动程序:JDBC-ODBC桥驱动,JDBC-Native桥驱动,JDBC-Net桥驱动和Pure Java JDBC驱动
    • JDBC连接数据库的基本步骤为:1.导入java.sql包 2.加载JDBC驱动程序 3.指定数据库的连接所需信息 4.建立与数据库的连接 5.对数据库进行访问与操作 5.关闭数据库连接

    第六章:JSP与JavaBean

          JavaBean组件与EJB(企业级JavaBean)组件是完全不同的两个概念。EJB是J2EE的核心技术,是一个用来创建分布式,服务器端及基于Java的企业级应用程序组件的功能强大的组件模型

          JavaBean组件模型通常由3部分组成:方法,属性及事件

          JavaBean的一些基本特性:

    • 没有参数的构造函数:JavaBean类必须有一个公有的而且不具有参数的构造函数,这个构造函数将在使用<jsp:useBean>标签进行实例化JavaBean类的时候被调用。如果一个JavaBean类中没有任何构造函数,系统会默认自动生成一个没有参数的构造函数
    • 私有的属性:将属性都定义为私有的,是一种良好的编程习惯,因为这样能够使得这些属性都只能通过JavaBean中提供的方法进行间接访问或修改,较好地保证数据的完整性和封装性,也利于对某些数据进行约束,当然,这不是强制性的
    • 操作属性值的get/set方法:每一个属性均有其对应的get()方法和set()方法,来设置或获取属性的值
    • 支持自检:就是提供一种方法来获得该组件的内部信息,JavaBean API提供了很多用于自检的工具。通过自检,应用程序可以查询一个组件的功能或状态,然后与该组件进行相应的交互操作。自检功能是组件模型的一个重要因素,因为只有这样才能使得一个组件向应用程序及其他组件描述自己的功能
    • 支持定制:不同的用户对JavaBean组件模型的使用情况也不相同,因此,JavaBean组件模型要允许用户通过某些工具来定制组件的外观和行为操作
    • 支持持久化:组件被用户定制后,必须要保存其自身状态
    • 支持属性:不同的组件模型都有其自身的状态。JavaBean的属性其实就是对象的属性,只是它在此基础上提供了属性读取和设置API的支持。每个属性都要遵守一定的命名规范,这样开发工具和使用者可以按照这种规范找出JavaBean中提供的属性,继而查询或修改属性值。另外,JavaBean能够对属性值的更改做出及时的反应
    • 支持分布式计算:现在,基于互联网的B/S架构开发越来越被重视,也使得组件模型中支持分布式计算的要求越来越高
    •  
    • 软件复用是将已有的软件及其有效成分用于构造新的软件或系统。它不仅是对软件程序的复用,还包括对软件产生过程中其他劳动成果的复用
    • JavaBean是使用Java语言进行描述的,与平台无关的软件组件模型,通常用于设计可复用的组件
    • 从本质上来看,JavaBean其实就是一个遵循了某些命名方法及设计规范的类,并且用来完成特定的功能
    • JavaBean按功能可以分为可视化JavaBean和非可视化JavaBean
    • JavaBean组件模型通常由3部分组成:方法,属性及其事件
    • JavaBean的属性与普通Java程序中所指的属性是相同的概念,用来表示一些特性,共有4种:简单属性,索引属性,绑定属性和约束属性
    • JavaBean中的属性,都具有其相应的get()方法和set()方法
    • 在JSP页面中通过<jsp:useBean>动作元素使用JavaBean,通过<jsp:setProperty>动作元素和<jsp:getProperty>动作元素分别设置或获取JavaBean中的属性值

    第七章:JSP与Servlet

         Servlet的描述:

    • 效率:传统的CGI对每个HTTP请求都会使用一个新的进程,这样会花费很大的额外时间,而Servlet,Java虚拟机会一直运行,并用轻量级的Java线程处理每个请求。如果对同一CGI请求多次,则CGI程序代码会被载入多次,而使用Servlet则将启动多个线程,仅载入Servlet类的单一副本,减少了服务器对内存的需求
    • 易用:Servlet提供了强大的类库,可以自动分析解码HTML的表单数据,读取和设置HTTP报头,处理cookie,跟踪会话。而对于CGI,这类工作大部分需要我们自己来完成。
    • 强大:Servlet能完成CGI不能实现的功能,它能与Web服务器对话,而CGI在不使用专门的API情况下是做不到的。如服务器通信使得将相对URL转化为绝对路径变得更容易,多个Servlet可以共享数据,从而易于实现数据库连接共享和类似的资源共享
    • 移植性:Servlet是用Java语言编写的,且遵循标准的API,所有主要的Web服务器实际上直接或通过插件支持Servlet。所以在Apache Tomcat上编写的Servlet,可以不经任何修改就可以在Macromedia JRun,IBM WebSphere,Oracle9i As等主流Web服务器上运行
    • 廉价:使用Servlet我们可以通过使用免费的服务器开始,如Apache Tomcat。在项目获得成功后,可以移植到更高性能或高级管理工具的昂贵服务器上。而CGI在初期要购买专门软件包投入大量的资金

     Servlet是运行在Web服务器上的Java程序,它是一个中间层,负责连接来自Web浏览器或其他HTTP客户程序的请求与HTTP服务器上的数据库或应用程序

               service:被Servlet容器调用,用来服务客户端的请求,Servlet是线性安全的,Servlet容器可以让多个线程调用同一个Servlet对象实例的service()方法

    一般我们不应覆盖方法service,当Servlet接收到HTTP请求后会调用service方法,service方法检查HTTP请求的类型(GET,POST,PUT,DELETE)并相应地调用doGet,doPost,doPut,doDelete等方法。GET请求起因于正常的URL请求,或没有指定METHOD的HTML的HTML表单。POST请求起因于将表单中的METHOD设为POST。其他请求都可以由表单定制

            Session的默认的超时时间由Servlet容器来定义,而这个值我们可以用上述的方法getMaxInactiveInterval()获得,也可以通过setMaxInactiveInterval来设置。如果将超时时间设置为-1,则会话永远不会超时

               ServletConfig对象和ServletContext对象的区别在于,前者的参数是在Servlet启动时得到,而后者是在运行时使用

             在Servlet中得到参数的值时其参数名一定要和表单中的参数名一致,否则得不到其参数的值。如表单中name=“name”参数是指等号后面的名字,而不是前面的名字

             <load-on-startup>,此标签就是标记是否在容器启动时加载这个servlet。如: <load-on-startup>value</load-on-startup>

    当value为0或者大于0时表示容器在启动时就应该加载这个Servlet,如<load-on-startup>1</load-on-startup>.如果多个Servlet都有此标签,则值的大小表示启动时的优先级,值越小,越先被启动。如果没有此标签或者此值为负数,则在被请求时才启动。当容器加载Servlet后就会为该Servlet创建一个实例

    • Servlet与CGI相比效率更高,更易用,更容易移植,更廉价
    • 与Servlet实现相关的接口和类:Servlet,GenericServlet,HttpServlet
    • 为了克服HTTP无状态的缺点,介绍了与会话相关的接口HttpSession的各方法的使用,与上下文相关的ServletContext接口
    • 为了得到服务器配置信息介绍了ServletConfig接口的使用方法
    • 在介绍了Servlet的类结构后,介绍了Servlet的运行条件,配置部署Servlet的方法
    • 介绍了Servlet的整个生命周期,使用Servlet访问request对象的方法
    • 最后介绍了MVC架构,并将JSP,Servlet,JavaBean与之对应
    • 应用MVC模式实现了购物车和网上书店的大部分功能

    第八章:JSP与XML

    W3C是英文World Wide Web Consortium的缩写,中文意思是W3C理事会或万维网联盟。W3C与1994年10月在麻省理工学院计算机科学实验室成立。创建者是万维网发明者Tim Berners-Lee。W3C组织是针对网络标准的一个非盈利组织,像HTML,XHTML,CSS,XML的标准就是由W3C来定制的。W3C会员包括生产技术产品及服务的厂商,内容提供商,团体用户,研究室,标准制定机构和政府部门,一起协同工作,致力在万维网发展方向上达成共识

         XML声明:<?xml version="1.0" encoding="gb2312" standalone="yes"?>

         UTF-8,它是采用一个或几个字节来表示一个字符。对Unicode字符集中代码点0~127的字符,UTF-8将该字符编码为一个字节,且高位是0,也就是说UTF-8编码保留ASCII字符的编码。对Unicode字符集中代码点为128~2047d的字符,UTF-8采用2个字节编码,且高字节以“110”作为前缀,低字节以“10”作为前缀。对于Unicode字符集中的其他字符,UTF-8采用3个字节编码,并且3个字节分别用“110”,“10”和“10”作为前缀。尽管UTF-8编码会多占用一些空间,如一个汉字需要3个字节,但UTF-8很好地解决了国际化问题,能支持多国语言

          <title>JSP开发入行真功夫</title>元素和标签具有不同的意义,元素是指开始标签,结束标签,以及两者之间的一切内容,包括属性,文本,子元素,注释及子元素。标签是一对角括号(<>)和两者之间的内容,包括元素名和所有属性

          属性和子标签可以相互转化,那么是用属性还是子标签呢?属性不体现数据的结构,只是数据的附加信息,一个信息是否作为一个元素的属性或作为该元素的子元素,取决于具体问题。一个基本原则是:不要因为属性的频繁使用破坏了XML的数据结构

           XML元素的命名规则:

    • 名称只能以字母,下划线(_),或者冒号(:),而不能以数字或标点符号开头
    • 名称中不能包含空格
    • 如果不是表示名字空间,就不要使用冒号。因为冒号是在名称空间中被用于分隔名称空间前缀和本地部分的
    • 元素的名称不能以XML(或者xml,Xml,xMl等)开头,因为XML字母组合被定为保留字
    • 名称中可以包含字母,数字,下划线及其他在XML中允许的字符
    • 名称是区分大小写的

          XML的注释:<!--......注释.......-->           注释中不能有“--”,也不能以“--->"结尾

          CDATA段中包含的但是纯字符,它主要用于需要将整个文本解释为非标签的情况下。CDATA段中的任何内容不被XML处理器分析,所以在其中可以包含任意的字符。例如:在XML文档中,我们需要包含Java代码或者其他语言的代码,而代码中有一些特殊的字符如小于(<),与(&)等。那么它与注释有什么区别呢?当解析器遇到注释时,解析器会忽视它们,而解析器遇到CDATA时,解析器会认为它的内容是字符数据,而不是标签。这样就不会与其他标签的起始定界符发生冲突了。

             如字符:&,字符引用(十进制)是&#38,字符引用(十六进制)是&#x26,实体引用是&amp

           当标签的类名和通用类同名时,标签使用的是自己标签定义的类的格式

           XSL中,用<xsl:for-each>或<xsl:apply-templates>元素可以匹配很多节点,如果我们想对它们进行排序,可以使用<xsl:sort>元素。另外,还有一种指定排序的方法,就在<xsl:for-each>元素中加入order-by属性,如:<xsl:for-each select=“book” order-by=“title”>

          CSS和XSL属于样式单的一种,都可以用来设定文档的外观,它们的主要区别:

    • 用途不同:CSS最早是针对HTML提出的,后来又将其应用于XML中,它既可以为HTML文档中的各个成分设定样式,也可以为XML中的成分设定样式。XSL是专门针对XML提出的,它不能处理HTML文档。但它有一个CSS无法达到的功能,即用一个命令行将一个XML转化为另一个文档并保存
    • 处理结果不同:XSL采用的是一种转换的思想,它将一种不含显示信息的XML文档转换为另一种可以用某种浏览器浏览的文档,转换后的输出结果或者存为一个新的文档,或者暂存于内存中,但都不能修改代码。而CSS则没有任何转换动作,只是针对结构文档的各个成分,依照样式规定:设定外观式样,再由浏览器依据这些式样显示文档,在这个过程中没有新的代码的产生
    • 表现能力不同:在XSL中定义的90%的式样规定,实际上在CSS中都有定义。但仍然有一些效果由CSS无法描述的,必须使用XSL不可。这些功能包括文本的置换,例如将一个美国的时间表示格式转换为一个中国的时间表示格式,根据文本内容决定显示方式,例如,将60分以上的分数用黑色显示,60分以下的分数用红色显示,将文档中的成分按照某一个子成分的值进行排序,例如,将书本按其排序。此外,还有对于超级链接的支持,对于FRAME的支持等,都是XSL所独有的

       生成的XML文档的默认编码格式为“UTF-8”,文档中声明encoding的值为“UTF-8”

             当我们调用parse()方法得到文档对象时,给它传递的参数是XML文件名,程序中给的是XML文件的绝对路径,因为如果不给绝对路径,而是给定相对路径的话,当执行方法parse()时,会去安装目录的bin目录中去找指定文件名的XML文件。也就是说使用相对路径时,要把文件放入服务器安装目录下的bin目录。此目录与生成XML文件的默认路径是一样的。在程序中给定路径时,要用斜杠来表示转义,加“\”(右斜杠)在程序中要用“\\"(双斜杠)来表示

    • XML是由W3C提出的,它以一种开放的,自我描述的方式定义了数据结构,体现出了数据与数据之间的关系
    • XML文档结构包括逻辑结构和物理结构。从文档的逻辑结构上来讲,每个XML文档可以分为两个部分,即序言和文档元素
    • XML文档通常都以一个XML声明开始,它能指定文档的版本,内容可以是文本,子元素,或是二者都有
    • 虽然我们可以自定义标签,也就是可以自定义元素名。但是定义元素的时候,给元素取名必须遵循一定的规范
    • XML文档必须有且仅有一个根元素,其他元素都必须被包含在根元素内
    • 层叠样式单CSS是一种样式描述规则,它能指定XMl标记的显示格式
    • 可扩展样式单语言XSL不仅能指定XML文档的显示样式,而且还能对XML文档进行变换
    • DOM的全称是Document Object Model,即文档对象模型,通过DOM接口我们可以解析和生成XML文件

    第九章:EL与JSTL

           EL(Expression Language)表达式语言,是JSP的一个新特性,在JSP中使用可以简化对变量和对象的访问。所有EL表达式都是以${起始,以}结尾的

    ${表达式}  例如:${1+2+3}计算1+2+3的值并将结果返回       ${username}查找并返回username的值      ${user,name}访问JavaBean对象user的属性name

    在EL中,允许定义和使用函数,语法 ns:func(a1,a2,......an)

    前缀ns为该数据标签库的前缀,func为函数名,a1,a2,......为函数的参数

    例如:比较23和45,其中较大值是${myfn:max(23,45)}

            JSTL(JavaServer Pages Standard Tag Library)标准函数库,可以简化JSP页面的设计

    在使用JSTL时,可以不需要tld目录下的文件。当我们想要修改标签库的URI时,可以在web.xml文件中使用<taglib-uri>元素来设置,相应要修改<taglib-location>中TLD文件所在的位置,此时,可能将用到tld目录下的TLD文件

         在JSP中使用JSTL中的标签库时,必须使用<%@taglib%>指令,并且设定prefix和uri的值

      <%@taglib  prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%>

     所谓动态值,是指属性值可以是Java表达式,EL表达式或者通过<jsp:attribute>设置的值。一般,JSTL标签的属性值均可以指定为动态,但是保存JSTL标签结果的变量及其作用域属性,以及XML标签的select属性除外(该属性可以指定一个XPath表达式)

      <c:set>属性中的var和scope两个属性不能使用表达式来表示,我们不能写成scope=”${ourScope}"或var=“${a}”

    <c:forEach>属性中的items支持的类型包括数组和各类集合类型之外,还包括以逗号分隔的字符串。在迭代时,将以逗号作为分隔符,循环进行处理

      要跨Web应用程序访问资源,需要在当前Web应用程序的context元素设置中,指定crossContext属性的值为true

    例如:<context path="/ch09" docBase="F:\book\ch09" reloadable="true" crossContext="true"/>

    • 表达式语言是JSP2.0的一个新的特性,在JSP页面中使用EL,可以简化对变量和对象的访问
    • 所有EL表达式都是以“${”起始,以“}”结尾,可以使用“.”和“[]”操作符访问数据
    • EL变量的查找顺序是page,request,session,application
    • EL定义了11个隐含对象。有关请求和其他数据的所有信息都可以通过EL隐含对象来访问
    • JSTL是由JCP(Java Community Process)制定的标准规范,它为Java Web开发人员提供了一套标准通用的标签函数库
    • JSTL由5个不同的标签库组成
    • 在JSP中使用JSTL中的标签库时,必须使用<%@taglib%>指令,并且设定prefix和uri的值
    • Core标签库主要用于基本输入输出操作,条件控制,迭代操作和URL操作等通用性任务的操作
    • I18标签库主要用于编写国际化的Web应用程序,它分为2个部分,一部分是国际化标签,另一部分格式化标签
    • SQL标签提供了基本的访问关系数据库的能力,可以实现包括查询,更新,事务处理和设置数据源等强大的功能
    • XMl标签库让我们无须了解DOM和SAX,也可以对XML文档进行操作
    • Function标签库是在JSTL中定义的标准的EL函数库,主要用于对字符串进行操作,包括了16个函数

    第十章:JSP聊天室的设计与实现

        synchronized(application){}可以防止多个线程同时访问这个对象实例的synchronized方法。如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其他线程不能同时访问这个对象中任何一个synchronized方法。这时,不同的对象实例的synchronized方法是不相互干扰的。也就是说,其他线程照样可以同时访问相同类的另一个对象实例中的synchronized方法

         通过JavaBean进行数据库的操作,实现了代码的复用

    第十一章:基于JSP的网上购物系统

    软件工程开发的一般过程包括:问题定义,可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试,软件维护

    doGet()和doPost()方法的区别:doget在网页使用get方法时调用,dopost在接收post方法时调用。get方法在网页的地址栏显示传递参数信息,post方法将数据都打包进行传递

    getServletConfig()方法,功能是在servlet初始化时,容器传递进来一个ServletConfig对象并保存在Servlet实例中,该对象允许访问两项内容:初始化参数和ServletContext对象,前者通常由容器在文件中指定,允许在运行时向Servlet传递有关调度信息,比如说getServletConfig().getInitParameter(“debug”);后者为Servlet提供有关容器的信息。此方法可以让Servlet在任何时候获得该对象及配置信息

    第十二章:基于JSP的在线考试系统

    UML图是软件工程设计过程中,进行可视化建模的一个重要工具。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护

    需求分析的成果就是找出系统内的实体,实体的属性以及实体与实体之间的关系。概念结构设计的主要成果物就是通过建模工具画出E-R图。逻辑结构设计的成果物就是根据E-R图确定关系到的属性和主键。物理结构设计的成果物则是编写SQL语句,最终建立数据库

    可以通过建模工具Rose或者Microsoft Visio来实现E-R图的构造。有些工具还提供了另外一种方法进行模型图的生成,在数据库中的表结构建好之后,可以利用反向工程,将数据库中的表与表之间的关系导入到建模工具中,只需要做少量的修改即可生成模型图

    WebRoot文件夹下的JSP文件在访问时,不需要再加WebRoot/路径。需要访问某个页面时,直接在浏览器地址栏输入http:localhost:8080/工程名/test.jsp即可

    数据库连接用完后一定要关闭,在进行数据库访问之后的finally语句里面进行关闭操作。不管try,catch内的语句执行情况如何,finally里面的内容都会执行,这样的关闭方式是最保险的

    展开全文
  • Web Pictures Hunter

    2006-03-16 00:00:00
    通过它,你可以从一个或多个网站,按你设置的图片大小、图片文件名、后缀名自动、高速搜索并下载所有图片。而要做到这一切,你只需简单地拖动鼠标,或是输入网址即可。Web Pictures Hunter 还是一个功能强大的图片...
  • 碰到问题千万不要慌张,要冷静,一定有解决办法。 eclipse是标准版安装,web...网上有许多教程,都是说intall new software的,但是一定要注意网址要正确,和你的eclipse版本要对应,mars luno kelper这些后缀不要搞错
  • 目录前言backupsimple_phpxff_refererget_postsimple_...攻防世界网址:https://adworld.xctf.org.cn/task/task_list?type=web&number=3&grade=0&page=1 backup 基础知识: 常见的备份文件后缀名有: .gi...
  • 攻防世界之web新手篇

    2020-02-19 20:56:13
    1.robots robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限 所以进行如下操作 ...得到如下后缀名为.bak的文件,再更改文件后缀名以文本格式打开 在里面找到fl...
  • 打开owasp_broken_web_apps的网址并将文件上传漏洞安全级别为高级即只可以上传,后缀为jpg格式的图片,无法上传php文件,也无法通过代理绕过,(即使通过代理修改后缀绕过,一句话木马功能不能得到发挥,不可执行...
  • Web基础和HTTP基础

    2020-11-23 21:53:05
    FQDN=主机名.DNS后缀 域名注册 域名注册是lnternet中用于解决地址对应问题的一种方法 遵循先申请先注册原则 域名注册步骤 网页的概念 域名 浏览网页时输入的网址 HTTP 用来传输网页的通信协议 URL
  • www是worldwide wide web的意思 ,也叫万维网,或web,是一个由许多文本链接组成的超文本系统,通过Internet访问,若要进入万维网上一个网页,或者其他网络资源的时候,通常需浏览器上键入你想访问网页的...
  • 背景:我们的电脑需要开机登录一个网址输入信息才能够上网,这样对远程的话,很不友好。因此查了查vbs可以进行开机在网页上自动登录,实现开机联网。 一,编写vbs 网页其中DDDDD是账号的位置,upass为密码,我在网上...
  • 1.目录遍历 ...有提示,提示我们网站源码备份文件的文件名和后缀,一个一个试,其实我们试试zip和rar就行了,因为tar和tar.gz是linux下的压缩包; 我们在网址1008后输入 /www.zip 下载得到 里面有三个文件
  • 一动态网页概述 ...式,而是以·aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号“?”。 二动态网页简介 所谓的动态网页,是指跟静态网页相对的一种网页...
  • 网址: : :globe_showing_Europe-Africa: :clipboard: Web仪表板以检查Terraform状态 它是什么? Terraboard是一个Web仪表板,用于可视化和查询状态。 目前具有: 概述页面,列出了最近更新的状态文件及其活动 ...
  • backup 题目来源: Cyberpeace-n3k0 ...将index.php直接添加到网址后面发现没用,这种情况下我们打开度娘直接搜索,发现要加后缀,常见的备份文件后缀名有 .git .svn .swp .~ .bak .bash_history。于是我们在 ...
  • web靶机系列-命令注入

    2020-05-28 10:15:02
    主机:192.168.136.133 靶机:192.168.136.139 用nmap、nikto扫描操作 ...需要更改文件后缀,得到 登陆给出的网址,输入账户。密码再测试一下,发现是diana 用searchsploit查找页面架构下了漏洞 第一个可利用漏洞是
  • 转发只能在同一个容器内完成 转发的时候浏览器地址是不会变的,在客户浏览器里只会显示第一次进入的那个网址或者路径,客户看不到这个过程,只是得到了想要的目标资源。转发行为浏览器只做了一次
  • BUU_Web [SUCTF 2019]CheckIn

    2020-09-27 16:57:35
    打开解题网址,一看就是文件上传: 这里首先尝试了上传 一句话 php, 以及文本,测试后发现需要上传 jpg 格式图片,并且文件中不能含有 <? ,文件后缀不能是 php文件的所有后缀;到这里,涉及知识盲区了;翻看大佬...
  • Sunny-Ngrok启动工具 1.注册账号,网址:https://www.ngrok.cc(过程略) ...前置域名:服务器免费赠送的域名,不要带上后缀,如果要sunny.ngrok.cc 只需要填写 sunny 即可 ,千万不要填写成sunny.n...
  • 结构:FQDN=主机名.DNS后缀 域名注册 遵循先申请先注册原则 步骤:准备资料–寻找注册网站–查询域名–注册成功 网页:(静态) 纯文本格式文件 编写语言HTML 在用户的浏览器中被翻译成网页形式显示出来 网站:又一...
  • 打开题目网址,文件上传: 尝试上传 webshell.php ,一句话木马: 看来是不能上传 .php,抓包发现需要上传jpg格式图片: 将文件后缀格式改成 jpg 格式: <? 被检测,只能换一种一句话木马了,: <script ...
  • cookie 题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:...由此可知,答案可能在cookie.php之中,所以在网址后输入该后缀又得到了新的提示 再次在源代码中寻找线索,依旧选择220开头的文件,找到Header
  • (4)增加表WebType(网站类型)的内容 (5)增加表LawlessKey(不允许申请的域名前缀)的内容 (6)部署站点到me子目录(不需要有写的权限),站点中的IP地址不要填,才能实现泛域名解析到me站点;再做转发域名...
  • Web前端高级作业一.txt

    2020-02-24 21:58:59
    2.3.7后缀选择器 例:$=,属性值以value结束的 2.4DIV+CSS组合选择器 注意box-sizing 三.JavaScript 用<script></script>标签包围,这里面的代码如同java里面的代码一样有操作性 这里面的数据是弱数据类型 有...
  • 定义输出格式—————————–path=request(“path”)if path =”” thenpath=”http://pcqc.86516.com/index.asp”‘这里定义的网址是百度,,注意一定要有文件后缀end if sPath = Pathif left(lcase(path),7) ...
  •  (4)增加表WebType(网站类型)的内容  (5)增加表LawlessKey(不允许申请的域名前缀)的内容  (6)部署站点到me子目录(不需要有写的权限),站点中的IP地址不要填,才能实现泛域名解析到me站点;再做转发域名后缀的泛...
  • vim在编辑文档的过程中如果异常退出,会产生缓存文件,第一次产生的缓存文件后缀为.swp,后面会产生.swo 还有一点值得注意的是,在后面输入的是网址输入的应该是: “.index.php.swp” 前面是有一个点的 然后就可以...

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

web网址后缀