精华内容
下载资源
问答
  • sturts+hibernate技术的web技术与应用
  • Web技术与应用 聊天室系统 南京信息工程大学
  • web技术与应用和jsp学习通试题答案

    千次阅读 2019-12-11 12:48:31
    1)B/S模式是一种以Web技术为基础的新型的MIS系统平台模式。 2)Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能...

    如果对大家有帮助的话记得点个赞哦

    ====

    综合练习题1

    1. 假设Ganzhou是一个服务目录,其虚拟目录是sun。index.jsp位于Ganzhou的子目录zg中,Tomcat服务器端口为8080。写出访问index.jsp页面的URL地址。

    2. JSP和客户端交互的过程中,客户端的请求被存储在哪个对象中发给Web服务器?

    3. 写出获取表单提交的多值参数的方法,并说明参数的含义。

    4. 下面哪一个API包不是JSP服务器预加载的?

    5. 已知bean类有一个int型属性number,写出其setter方法。

      1)http://localhost:8080/Ganzhou/zg/index.jsp

      2)request

      3)request.getParameter(“数据名称”);

      4)jsp-api.jar,servlet-api.jar,bootstrap.jar

      5)public void setNumber(int number){

      this.number=number}

    正确写出JSP页面中访问Bean类tom.jiafei.Circle的标记,如何设置不同的作用域?
    
     写出从request作用域读取一个Account类型属性ac的语句。(考查getAttribute方法获取数据时需要强制类型转换)
    
    HTTP请求对应的隐含对象是什么?它属性哪个类?提供了哪些获取请求数据的方法?
    
     如何在web.xml中配置一个Servlet类,包括哪些标记,各有什么作用?
    
    写出setProperty动作标记的几种用法,并说明其含义。
    
    
    
    
    1) <jsp: useBean id="Circle" class=”tom.jiafei.Circle“ scope=”bean的有效范围“>  通过scope属性设置作用域
    
    2)int account =(int )request.getAttribute("ac");
    
    3)post 属于httpServletRequest类 方法有
    
    request.getMethod();     //请求方式
    request.getRequetURI();  //request.getRequetURL()   请求资源
    request.getProtocol();   //请求http协议版本
    
    request.getHeader("name")
    request.getHeadernames()
      request.getInputStream()
    request.getParamter("实数名”)只能获取一个值参数
    request.getParameterValue("参数名")可以获取多个值的参数
    request.getParameterNames() 获取所有参数名列表
    4)servlet-mapping  指向我们要注册的servlet的类的地址。
        servlet-name
      url-pattern   路径
      servlet
     servlet-name
     servlet-class
    5)<jsp:setProperty name="bean的名字" property="Bean 的属性" value =“<%= experssion>”/>
     含义:将bean属性的值设置为一个表达式的值或者字符串
    2)<jsp:setProperty name="bean的名字" property="Bean 的属性" value =字符串/>
     含义:将bean属性的值设置为一个字符串的语法形式
    3)<jsp:setProperty name="bean的名字" property="*"/>
     含义:用HTTP表单的所有参数的值设置Bean相对应的属性的使用格式(即不指定某个参数)
    4)<jsp:setProperty name="bean的名字" property="属性名",param=”参数名“/>
     含义:用HTTP表单的某个参数的值设置Bean相对应某个属性的使用格式(即指定某个参数)
    
    1. 将一个页面重定向到另一个页面的语句是什么?

      能够保留请求作用域中数据的页面跳转方式是哪个?有哪几种转发的方法?

      假设在jsjapp应用中有一个HelloServlet类,它位于jxust.ieschool包下,那么这个类的class文件应该放在什么目录下?

      A页面的表单提交参数name至B页面,写出在B页面中输出参数值的语句。

        1)  response.sendRedirect("界面名")
        2)重定向  用户可以有多种方式请求Servlet,如  浏览器直接   
           调用,页面     form中提交调用   、  超链接调用 、   Servlet调用  等。
        3)jsjapp.jxust.ieschool.HelloServlet
        4)String name = request.getparameter("name");
        out.println("name");
    

    综合习题二

    1

    Tomcat的端口号可以在哪个文件中修改?
    
    按作用域由大到小的顺序列出4个作用域隐含对象的名字。
    
    列举常用的几种会话跟踪技术。
    
    写出JSP页面在不同作用域中访问Bean类tom.jiafei.Circle的正确语句。
    
    1)sever.xml
       2) application,session,request,page
       3) URL重写,隐藏表单域,cookie,sesion
        4)使用page指令导入 JavaBean 类:    <%@page import="包名 . 类名" %>
        使用<jsp:useBean>标签声明JavaBean对象:    <jsp:useBean id="实例名" class="包名 . 类名" scope="作用范围"/>
        使用<jsp:getProperty><jsp:setProerty>标签访问JavaBean属性:
        <jsp:getProperty name="实例名" property="Bean中的属性名">    调用Bean中的get方法得到某属性的值
        <jsp:setProperty name="实例名" property="Bean中的属性名">      调用Bean中的set方法给某属性赋值
    

    2

     何谓MVC模式?各扮演什么角色?这种模式有什么好处?
    
    在web.xml中配置Servlet访问路径的标记是哪个?
    
    通过地址栏访问一个Servlet是以get还是以post方式提交数据?表单提交数据的默认方式是get还是post?两者有什么区别?
    
    1)   MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”。javabean充当model,servlet充当control,jsp界面或html页面充当view。
    
        好处:在jsp技术中,视图是一个或多个jsp界面,其作用主要是向控制器提交必要的数据和为模型提供数据展示;模型是一个或多个Javabean对象,用于存储数据;控制器为一个或多个servlet对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到javabean中,然后servlet使用重定向方式请求视图中的某个jsp界面更新显示
    
    2)servlet-mapping和servlet
    
    3)get,post
    
    区别:
    
    1.get是从服务器上获取数据,post是向服务器传送数据
    
    2.get是把参数数据队列加到提交表单的action属性所指的url中,值和表单内各个字段一一对应,在url中可以看到。post是通过HTTP的post机制,将表单内各个字段与其内容放置在HTML header中一起传送到action属性所指的url地址,用户是看不到这个过程的。
    
    3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据
    
    4.get传送的数据量较小,不能大于2KB,post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB
    
    5.get安全性非常低,post安全性较高
    

    3
    sesson对象的主要方法有哪些?哪个用于判断是否新会话?

     Servlet如何向客户端浏览器输出信息?
    
    通过哪个隐含对象的哪个方法可以实现页面重定向?
    
     1) 主要方法:setAttribute(String key,Objct obj)
    
                    getAttribute(String Key)
    
                    getAttributeNames()
    
                    removeAttribute(String name)
    
                    getCreationTime()
    
                    getLastAccessedTime()
    
                getMaxInactiveInterval()
    
                setMaxInactiveInterval()
    
                isNew() : 用于判断是否为新会话
    
                2)PrintWriter out=response.getWriter();
                out.println("<html>");//输出的内容要放在body中
    
                3)response的sendRedirect()方法
    

    综合习题三

    1
    设bean类有一个double型属性result,写出该属性的setter方法。

    写出从Servlet中重定向到另一个页面的语句。
    
     response.getWriter()方法返回的是什么类型的对象?它与隐含对象out有什么不同?
    
     1)public double setResult(Double Result)
    
        { this.Result=Result;}
    
        2)response.sendRedirect("a.jsp");
    
        3)PrintWrite
    
        区别:1. 这两个对象的类型是完全不同的:内置对象out的类型是JspWriter;response.getWrite()返回的类型是PrintWriter
        2. 获取方式不同:JspWriter是JSP的内置对象,直接使用即可,对象名out是保留字,也只能通过out来调用其相关方法。此外还可以通过内置对象pageContext.getOut();获得;PrintWriter则是在用的时候需要通过内置对象response.getWriter();
    

    2

     编写Servlet的doPost或doGet方法时通常需要抛出哪两种异常?
    
    useBean动作标记的主要属性有哪3个?scope属性有哪些取值?
    
    含param子标记的include动作标记,在被包含的页面中应如何读取参数的值?
    
    在JSP页面中能够执行输出操作的内置对象是哪个?
    
    1) IOException和ServletException
    
    2)<jsp:useBean id="" class="" scope="">
    
    scope取值:page request session application
    
    3)request.getparameter()
    
    4)out
    

    3
    目标页面如何输出请求页面提交的数据?

    当一个Servlet首次被请求时,服务器会首先调用哪个方法?
    
    设testapp中有个Servlet类为HelloServlet,它在web.xml中的url映射配置为/welcome,则浏览器访问的正确地址是?
    
    用<%! />标记声明的变量,它的作用域是什么?不同访问者会共享吗?
    
       1)  system.out.println("parameter name");
    
       2)init()
    
       3)localhost:8080/testapp/welcome
    
       4)在<%! %>之间放置java的变量   不同访问者会共享
    

    综合习题四

    1

    1)client/service 模式 客户端服务器模式C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。
    
    2)所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
    
    3)javabean是一种JAVA语言写成的可重用组件
    
    4)request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。
    

    2

        1)B/S模式是一种以Web技术为基础的新型的MIS系统平台模式。
    
        2)Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
    
       3) HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体
    
        4)request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。
    

    3

     1) JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。简言之,JDBC就是Java用于执行SQL语句实现数据库操作的API。
    
    2)jsp是一种动态网页技术标准。
    
    3)session对象用于存储特定的用户会话所需的信息 。
    
    4)MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑
    

    综合习题五

     1)<%!   %>声明的变量将为所有访问该界面的用户共享,知道web应用停止
     2)相同点:都能实现界面跳转或者是服务器资源的跳转
        不同点:
        1.sendRedirect("目的地")是response对象的方法,forward(request,response)是request.getRequestDispatcher("目的地")方法,返回的对象requestDispatcher的方法;
        2.sendRedirect() 在客户端运行,会产生新的请求,地址栏显示新地址,forward()在服务端运行,地址栏的地址不变
        3.sendRedirect()跳转之后,不能获取request中的对象,而forward()可以获取
        4.forward()速度更快。
     3)1.get是从服务器上获取数据,post是向服务器传送数据
        2.get是把参数数据队列加到提交表单的action属性所指的url中,值和表单内各个字段一一对应,在url中可以看到。post是通过HTTP的post机制,将表单内各个字段与其内容放置在HTML header中一起传送到action属性所指的url地址,用户是看不到这个过程的。
        3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据
        4.get传送的数据量较小,不能大于2KB,post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB
        5.get安全性非常低,post安全性较高
    

    综合练习七

    1)提高代码的可复用性:对于通用的事务处理逻辑,数据库操作等都可以封装在javabean中,通过使用javabean的属性和方法可快速就行程序设计程序易于开发和维护:实现逻辑类的封装,是事务处理和显示互不干扰支持分布式运用:多用javabean,尽量减少java代码和html的混编
    2)应用范围不同:session是对应某一个用户的,而application是整个网站共用的
       存活时间不同:session是在站点的页面从打开到被关闭之前一直存活的,关闭或跳转到其他网站就会使session死掉。而application是从站点发布以来一直存活的,除非重启了服务站点。
       session的中文是“会话”的意思,asp中的session代表了服务器与客户端之间的“会话”
       利用session可以存储浏览者的一些特定信息,如:浏览者的姓名,性别。所用服务器的类型以及访问时间application对象是一个应用程序级的对象,它包含的数据在整个web站点中被所有用户使用,并且可以在网站运行期间持久的保存数据
    3)servlet:它的作用就是一个连接桥梁的作用,相当于mvc结构中的c→control控制层,它可以获得前台数据,并调用后台方法对数据进行处理之后再将结果发回给前台。
    在容器tomcat启动之后,servlet不会立即被访问,除非在配置文件中加上了启动即初始化,否则,servlet将会在第一次被访问的时候被初始化,然后用这个初始化对象响应用户请求,当该请求结束了,servlet将不会被销毁,等到第二次,第三次....之后所有的请求都将是同一个servlet对象在处理,知道tomcat容器关闭,servlet被销毁。
    4)相同点:都用于包含其他页面
        不同点:1)语法格式
                      文件包含指令:<%@ include file="path" %>
                      动作包含指令:<jsp:include page="url"/>
                2)包含文件的编译
                       文件包含的include指令是静态包含。即使被包含的文件中有jsp代码,在包含时也不被编译执行。将两个页面组成一个后,编译处理为一个java文件,最后返回结果界面
                       <jsp:include>动作标识的原理是将被包含的页面编译处理后将结果包含在页面中。当该标识被执行时,程序会请求转发到被包含的页面并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码。
                3)属性表达式支持
                       include指令通过file属性指定被包含的文件,该属性不支持任何表达式
                       <jsp:include>表示通过page属性指定被包含的文件,该属性支持jsp表达式
                4)变量/方法能否重命名
                       在应用include指令包含文件时,由于被包含的文件最终会生成一个文件,所以包含文件不能有重名的变量和方法
    
                在应用<jsp:include>包含文件时,由于每个文件单独编译,所以变量和方法名不冲突
    

    综合练习8

    login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
      <head>
        <title>login.jsp页面</title>
      </head>
      <body>
        <form action="logincheck.jsp" method="post" name=form >
         <font size="5">登录界面</font><br>
         用户名:<input type="text" value=""name="username"><br>
         密    码:<input type="text"value="" name="password"><br>
         <input type="submit"value="提交"name="submit">
         <input type="reset"value="重置">   
        </form>
    <%=(String)request.getAttribute("usertxt") %>
      </body>
    </html>
    

    logincheck.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
      <head>
        <title>login.jsp页面</title>
      </head>
      <body>
    <%
    String referer = request.getHeader("Referer");
    if(referer==null||referer.trim().length()==0||
    !referer.equals("http://localhost:8888/loginDemo/login.jsp")){
    response.sendRedirect("login.jsp");
    return;
    }
    request.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    String name=request.getParameter("username");
    String password=request.getParameter("password");
    //判断登陆界面的用户名和密码,根据输入的不同情况进行不同的处理
    if(name.trim().equals("admin")&&password.trim().equals("admin"))
    {
    request.setAttribute("usertxt", "欢迎您!");
    request.getRequestDispatcher("login.jsp").forward(request, response);
    }
    else if(name.trim().equals(null)&&password.trim().equals(null))
    {
    request.setAttribute("usertxt", "请先输入用户名和密码再提交哦!");
    request.getRequestDispatcher("login.jsp").forward(request, response);
    }
    else{
    request.setAttribute("usertxt", "用户名或密码错误,请重新输入");
    request.getRequestDispatcher("login.jsp").forward(request, response);
    }
    %>
      </body>
    </html>
    

    综合练习9

    one.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
     <form action="two.jsp" method="post" name=form >
    
         <font size="5">登录界面</font><br>
    
          长  :<input type="text" value=""name="length"><br>
    
          宽  :<input type="text"value="" name="width"><br>
    
         <input type="submit"value="提交"name="submit">   
    
        </form>
    </body>
    </html>
    

    two.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <jsp:useBean id="sumBean" class="Bean.sumBean" scope="request"/>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <jsp:setProperty name="sumBean" property="*"/>
    矩形的长和宽
    长:<jsp:getProperty name="sumBean" property="length"/>
    宽:<jsp:getProperty name="sumBean" property="width"/>
    <br>
    面积:<jsp:getProperty name="sumBean" property="area"/>
    </body>
    </html>
    

    sumbean.java

    package Bean;
    
    public class sumBean {
    double length=0;
    public double getLength() {
        return length;
    }
    public void setLength(double length) {
        this.length = length;
    }
    public double getWidth() {
        return width;
    }
    public void setWidth(double width) {
        this.width = width;
    }
    public double getArea() {
        area=length*width;
        return area;
    }
    public void setArea(double area) {
    
        this.area = area;
    }
    double width=0;
    double area=-1;
    }
    

    综合练习10

    input.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
     <form action="insert.jsp" method="post" name=form >
    
         
    
          姓名  :<input type="text" value=""name="name"><br>
    
          性别  :<input type="text"value="" name="sex"><br>
          
           籍贯  :<input type="text"value="" name="from"><br>
    
         <input type="submit"value="提交"name="submit">   
    
        </form>
    </body>
    </html>
    

    insert.jsp

    <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%>
    <%@ page contentType="text/html;charset=utf-8"%>
    <%  
       request.setCharacterEncoding("UTF-8");  
       response.setCharacterEncoding("UTF-8");  
       response.setContentType("text/html; charset=utf-8");  
    %>  
    <html>
    <head>
    <title>add message into table </TITLE>
    </head>
    <body>
    <%
    String name=request.getParameter("name"); //从表单获得
    String sex=request.getParameter("sex"); //从表单获得
    String from=request.getParameter("from"); //从表单获得
    
    java.util.Date date=new java.util.Date();
    String datetime=new Timestamp(date.getTime()).toString();
    try
    {
    String driverName = "com.mysql.jdbc.Driver";
    String DBUser = "root";
    String DBPasswd = "123456";
    String DBName = "html_db";
    String connUrl = "jdbc:mysql://localhost:3306/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd;
    Class.forName(driverName).newInstance();
    Connection conn = DriverManager.getConnection(connUrl);
    Statement stmt = conn.createStatement();
    stmt.executeQuery("SET NAMES UTF8");
    String insert_sql = "insert into person_tb values('" + name + "','" + sex + "','" + from+ "')";
    String query_sql = "select * from person_tb";
    
    try {
    stmt.execute(insert_sql);
    }catch(Exception e) {
    e.printStackTrace();
    }
    try {
    ResultSet rs = stmt.executeQuery(query_sql);
    while(rs.next()) {
    %>
    姓名:<%=rs.getString("name")%> </br>
    性别:<%=rs.getString("sex")%> </br>
    籍贯:<%=rs.getString("from")%> </br> </br>
    <%
    }
    }catch(Exception e) {
    e.printStackTrace();
    }
    //rs.close();
    stmt.close();
    conn.close();
    }catch (Exception e) {
    e.printStackTrace();
    }
    %>
    </body>
    </html>
    

    综合练习11

    purchase.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
     <form action="balance.jsp" method="post" name=form >
    
         <font size="5">登录界面</font><br>
    
          产品名称  :<input type="text" value=""name="name"><br>
    
         购买数量  :<input type="text"value="" name="number"><br>
    
         <input type="submit"value="提交"name="submit">   
    
        </form>
    </body>
    </html>
    

    balance.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <jsp:useBean id="sumBean" class="Bean.sumBean" scope="request"/>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    产品名称和购买数量
    产品名称:<jsp:getProperty name="sumsBean" property="name"/>
    购买数量:<jsp:getProperty name="sumsBean" property="number"/>
    <br>
    总金额:<jsp:getProperty name="sumsBean" property="sum"/>
    </body>
    </html>
    

    sumsBean.java

    package Bean;
    
    public class sumsBean {
    String  name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getNumber() {
        return number;
    }
    public void setNumber(double number) {
        this.number = number;
    }
    public double getSum() {
        sum=number*100;
        return sum;
    }
    public void setSum(double sum) {
        this.sum = sum;
    }
    double number;
    double sum;
    
    }
    

    综合练习12

    radio.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    
    <html>
    
      <head>
    
        <title>答题页面</title>
    
      </head>
    
      <body>
    
        <form action="check.jsp" method="post" name=form >
    
         <font size="5">1.驾驶机动车在道路上违法交通安全法的行为,属于什么行为?</font><br>
    
         <input type="radio" value="A"name="R">A:违章行为<br>
         <input type="radio"value="B" name="R">B:违法行为<br>
         <input type="radio"value="C" name="R">C:过失行为<br>
         <input type="radio"value="D" name="R">D:违规行为<br>
    
         <input type="submit"value="提交"name="submit">
        </form>
        
        
    <%=(String)request.getAttribute("usertxt") %>
    
      </body>
    
    </html>
    

    check.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <%
        
        String res=request.getParameter("R");
        if(res.equals("B"))
        {
            request.setAttribute("usertxt", "恭喜你,答对了!");
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }else
        {
            request.setAttribute("usertxt", "打错了,很遗憾!");
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
        %>
    </body>
    </html>
    
    展开全文
  • Web服务技术与应用

    千次阅读 2019-05-03 16:54:10
    一些基本的Web理论知识...Web是Internet上一种应用或者服务,使人们能方便快速的发布和获取信息。Web服务由Web服务器和浏览器共同提供。 Web服务器就是由软件和硬件构成的能提供Web服务(相应用户请求,处理请求并...

    一些基本的Web理论知识适当结合了一些实例。

             主要涵盖内容有:HTML+CSS+JSP+JDBC+AJAX+XML+WebService+EJB+Servlet。

    1. Web 概述
    1. Web是Internet上一种应用或者服务,使人们能方便快速的发布和获取信息。Web服务由Web服务器和浏览器共同提供。
    2. Web服务器就是由软件和硬件构成的能提供Web服务(相应用户请求,处理请求并返回处理结果的)的系统。
    3. 静态页面和动态页面:静态页面是网站发布时就写好的,动态页面是用户请求时生成的。
    4. Web服务器与浏览器之间通过HTML进行交互。
    5. Web站点体系结构:静态模式(所有页面都是提前编辑好的静态页面),一般动态(增加了数据库服务器,通过实时获取数据库信息更新页面),多层动态(增加了一层服务器,将显示和逻辑分离同时减轻了Web服务器的负担:ASP.net,EJB).
    6. URL:统一资源定位术:protocol :// hostname[:port] / path / [;parameters][?query]#fragment
    7. HTTP:超文本传输协议,定义了浏览器怎么将请求发送给服务器以及服务器怎么将响应返回给客户端:

    GET :浏览器将参数和值通过?附加在URL后面进行传递,服务器将资源放在响应报文的数据部分

    POST :将用户请求以键值对形式封装在保温数据部分,用于传输大量数据

    HEAD PUT DELETE OPTIONS TRACE CONNECT  8

    1. 客户端动态技术:JS,由浏览器解释执行的脚本代码(这里应该有JS代码)

    服务器端动态技术:JavaBean,JSP,Servlet,ASP,PHP

    异步刷新技术Ajax:异步JS和XML,不刷新整个页面而更新其中的一部分

    1. Applet是下载到本地运行的.class为后缀的JAVA编写的小程序,出于安全考虑访问本地信息受限
    2. JavaScript是位于Java和HTML之间的事件驱动的编程语言,由浏览器而非JVM*解释*执行
    3. DHTML在下载网页后仍能实现实时的元素变换,是CSS,HTML4.0,HTML DOM(文档对象模型)技术的体现
    4. Servlet,在服务器端运行,能处理HTTP请求产生响应的动态页面,缺点是页面和逻辑交织,自己写的Servlet应继承HttpServlet类并重写doGet(),doPost()
    5. JSP(Java Server Page)服务器的JSP引擎解释JSP,并以HTML形式返回浏览器,JSP可通过JDBC链接数据库。JSP和其他服务器端动态技术的区别是它最终被编译为Servlet并由JVM执行,且编译只发生在第一次请求JSP页面时,所以执行效率高。
    6. JavaBean:可重用组件。
    7. WebService:向外界暴露一组能通过Web调用的API,实现通过Web调用完成一些功能。可被描述,发布,查找以及调用:

    XML做数据的基本格式+SOAP做信息交换的协议+WSDL做描述文档的语言+使用RPC调用WebService+UDDI实现注册,查找,调用。

    Question:脚本语言的工作原理是什么?

    客户端动态技术和服务器端动态技术的区别?

     

    1. HTML
    1. 每个HTML元素都可以看成是一个在浏览器中显示的对象。HTML是一种文档结构语言,HTML文件结构包含HEAD(描述浏览器所需信息)和BODY两部分.
    2. HTML文档中标签的id属性和name属性有什么区别①Id是html中所有元素都有的元素,而非表单元素没有name属性,如:div,span等。②使用css是通过元素id来选择元素的,而request对象是操纵name属性获取元素的。(比如表单发送给Servlet,Servlet调用request.getParam()中参数是表单元素的name名)③id在整个页面中应是唯一的,而不同表单中可以出现相同name属性的元素。
    3. 对于HTML中的单选框radio,value="aihao1"都是name属性一样时表示为同一组单选框,用checked表示默认选中。

     

    1. CSS层叠样式表
    1. Cascading Style Sheets使用CSS的好处:①将样式与结构分离,使得样式得到复用,一个html中可以包含多个样式文件,实现了对样式的集中管理。②对网页上的元素精准定位。
    2. CSS中的三种选择器:类选择器,id选择器,元素选择器。

    元素选择器就是直接是元素名称,如p,div,span......

    类选择器的格式是“.类名”

    Id选择器是“#id名”

    交集选择器格式:元素选择器.类选择器/id选择器,选择该元素下特定id或class的元素

    并集选择器:使用“,”将三种选择器相连

    后代选择器:一种表示嵌套关系的选择器,用space来连接各个选择器名,如:div div .class 选中的是div下div下的所有具有类名的元素

    子代选择器:使用大于号表示:父代>子代,且只选中直接子代,若父代和子代还有其他层的则不被选中

    *行内样式>ID样式>类别样式>元素样式

    以下两个有些浏览器中并不兼容。(虚元素和虚类都是用:连接的)

    虚类:选择符虚类(link,visited,active,hover)一般用于<a>元素

    虚元素:一般用于p,div,span的首行或首字母的显示。选择符/选择符.类first-letter/first-line

    1. 链入外部样式表的文件以.css为文件后缀名文件中只包含样式,通过在html中用:
      <link href="style.css" rel="stylesheet" type="text/css" />

    导入外部样式表(通常用于CSS文件中导入另一CSS文件)在CSS文件中可以通过@import url("public.css");导入另一个CSS文件,但是需要将该指令放在CSS文件的第一句。

    联入样式表:写在页面的<Head>下的<Style>

    内联样式:混合在HTML标记中使用,最不推荐这种写法,通过style=”属性:值;......”

    *内联样式>联入(<style>)样式>导入外部样式,同级之间后定义优先。

    1. CSS中的margin和padding的区别:

    1. CSS元素的定位position:absolute/relative
    2. CSS的滤镜:alpha,blue通过“opacity:0.2;”设置透明度
    1. 动态网页制作(主要就是JavaScript技术的应用)

    1.JavaScript能对浏览器中用户事件做出响应,JS的特性简单性  JavaScript是简化的编程语言,不像高级语言有严格的使用限制,使用简洁灵活。例如在JavaScript中可直接使用变量,不必事先声明,变量类型规定也不十分严格。

    基于对象  JavaScript是一种基于对象(object-based)的语言,允许用户自定义对象,同时浏览器还提供大量的内建对象,可以将浏览器中不同的元素作为对象处理,体现了面向对象编程的思想。但JavaScript并不完全面向对象,不支持类和继承。

    可移植性  JavaScript可在大多数浏览器上不经修改直接运行。

    动态性  JavaScript是DHTML的重要组成部分,是设计交互式动态特别是客户端动态页面的重要工具。

    安全性  JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。

    2.Java与JS的区别

    ①Java是SUN公司推出的新一代面向对象的程序设计语言,主要应用于网络编程;JavaScript主要用于Web页面编写脚本,是Netscape公司的产品。

    ②JavaJava虚拟机去执行。JavaScript源代码嵌入HTML文件中,由浏览器对它进行识别、解释并执行.

    ③Java采用强变量检查,即所有变量在编译之前必须声明。JavaScript中变量声明,采用弱变量,在使用前不需作声明,而是解释器在运行时检查其数据类型。

    ④Java程序可单独执行,而JavaScript程序只能嵌入HTML中,不能单独执行。

    ⑤Java程序的编写、编译需要专门的开发工具,如JDK(Java Development Kit)、Visual J++等;而JavaScript程序只是作为网页的一部分嵌入HTML中,编写JavaScript程序只要用一般的文本编辑器即可。

    1. 理论上JS可以插入HTML的任何位置,但一般将他放在<Head>标签下的<Script>标签下。或者通过<script src=””>来引入一段JS代码。<!-- //-->用来兼容不支持JS的浏览器,不支持则不执行。
    2. JS的数据类型有字符型,数值型和布尔型。字符型用单引号或双引号包围,如果字符串中有单引号,则用双引号包围,如果有双引号则用单引号包围。JS默认所有数值型为浮点数,以0打头表示8进制数,以0x打头为16进制数。冷知识!JS没有8进制和16进制的小数形式。JS中的null表无值/无对象,undefined表示对象属性不存在或者未赋值。变量命名和C相同,无最大长度限制。 JavaScript 中 null 和 undefined 的主要区别是 null的操作如同数字0,而 undefined 的操作如同特殊值NaN (不是一个数字)。对null 值和undefined值作比较总是相等的。(55=='55') è true,JS中“===”来判断相等

    JS函数中变量作用域:在函数内用var保留声名的变量是局部变量,作用域仅局限于该函数;在函数外用var声明的变量是全局变量,作用域是整个HTML文件。函数内未用var声明的变量也是全局变量。局部变量与全局变量同名时,其操作互不影响。

    天哪!一定要注意中间的大小写行嘛!!!!坑skr人!!!!!!!!!且JavaScript脚本程序必须放在按钮和文本框定义之后

    1. Number.NaN 是一个特殊的属性,被定义为“不是数值”。例如被0除返回 NaN。试图解析一个无法被解析为数字的字符串同样返回Number.NaN。把NaN与任何数值或本身作比较的结果都是不相等。不能通过与Number.NaN比较来测试 NaN 结果,而应该使用isNaN() 函数。PurseInt函数用来将String类型转换为Int类型。
    2. escape函数和unescape函数用于将URL中的非ASCII字符进行编码和解码:(在用于发送中文数据的时候很有作用)

           escape(string) //用%xx 16进制形式编码

                 unescape(string) //将用escape编码过的字串复原

     

    1. JS创建自定义对象的几种方法:

    ①对象字面常量的方式,创建的对象不能复用,创建时就完成初始化工作。赋予一组属性和方法,在后面的使用中调用方法操作对象:

             图1                    图2                        图3

    ②工厂模式创建自定义对象:先创建一个Object类型对象,再使用实参为它初始化属性。返回这个对象,并在以后使用它。

    ③构造函数方式。

    1. HTML DOM:HTML的文档对象模型,是一种结构化的文档对象。HTML DOM将网页上的各个元素也看成是对象,可以通过JS获取各个对象,动态的完成对文档中元素的控制。提供存取和更新文挡内容、结构和样式的编程接口。W3C推荐使用document.getElementById(“...”);来操纵对象
    2. DOM的浏览器对象navigator,使用它可以获取有关浏览器信息和实现窗口的跳转打开关闭等操作:alert("浏览器平台:"+navigator.platform+"浏览器语言:"+navigator.language+"浏览器版本:"+navigator.appVersion);

    使用location对象可以实现网页的定位:

    window.location.href="http://www.qq.com";  //在同一页面中打开网页

    window.location.assign("http://www.qq.com");//前进后退功能不丧失

    window.location.replace("http://www.qq.com");//后退功能丧失,回到主页

    window.navigate("http://www.qq.com?x=5");

    在页面中使用location.search就可以获得上面传递的参数

    history.go(-1); //实现返回以前页面的过程

    简单的用于在cookie中保存用户名和密码等信息使用的代码:

    设置cookie信息,获取cookie信息并设置cookie有效时间的方法:

    <script type="text/javascript">

       var cookie = {

              set:function(key,val,time){//设置cookie方法

                  var date=new Date(); //获取当前时间

                  var expiresDays=time;  //将date设置为n天以后的时间

                date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化为cookie识别的时间

                  document.cookie=key + "=" + val +";expires="+date.toGMTString();  //设置cookie

              },

              get:function(key){//获取cookie方法

                  /*获取cookie参数*/

                 var getCookie = document.cookie.replace(/[ ]/g,"");  //获取cookie,并且将获得的cookie格式化,去掉空格字符

                 var arrCookie = getCookie.split(";")  //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中

                 var tips;  //声明变量tips

                 for(var i=0;i<arrCookie.length;i++){   //使用for循环查找cookie中的tips变量

                     var arr=arrCookie[i].split("=");   //将单条cookie用"等号"为标识,将单条cookie保存为arr数组

                     if(key==arr[0]){  //匹配变量名称,其中arr[0]是指的cookie名称,如果该条变量为tips则执行判断语句中的赋值操作

                         tips=arr[1];   //将cookie的值赋给变量tips

                         break;   //终止for循环遍历

                     }

                 }

                 return tips;

             },

             todelete:function(key){ //删除cookie方法

                 var date = new Date(); //获取当前时间

                 date.setTime(date.getTime()-10000); //将date设置为过去的时间

                 document.cookie = key + "=v; expires =" +date.toGMTString();//设置cookie

             }

         }

         function save(){

         var uname = document.getElementById("name").value;

         var upwd = document.getElementById("pwd").value;

          cookie.set("uname",uname,24);//设置为24天过期

          cookie.set("upwd",upwd,24);

          alert("您的信息已经保存啦!");

         }

         

         function put(){

          alert(cookie.get("uname")+cookie.get("upwd")+cookie.get("expires"));

         }

       </script>

      </head>

      

      <body>

      <input type="text" id="name" placeholder="请输入用户名"></br>

      <input type="password" id="pwd" placeholder="请输入密码"></br>

       <input type="button" value="点击保存cookie"  Onclick="save()"></br>

       <input type="button" value="点击查看cookie"  Onclick="put()">

     </body>

     

    14.JQuery是JS的一个框架,JQuery对于JS的优化是:
    获取文档中的元素。jQuery为准确地获取需要检查或操作的文档元素,提供了可靠而富有效率的选择符机制。

    修改页面外观。jQuery提供了跨浏览器的标准解决方案,即使在页面呈现以后,仍能改变文档中某个部分的类或者个别的样式属性。

    改变文档的内容。jQuery能够影响的范围并不局限于简单的外观变化,使用少量的代码,jQuery就能改变文档的内容。

    响应用户的交互操作。jQuery提供了形形色色的页面事件的适当方式,而不需要使用事件处理程序使HTML代码看起来杂乱。此外,它的事件处理API也消除了经常困扰Web开发人员的浏览器不一致性问题。

    为页面添加动态效果。为了实现某种交互行为,设计者必须向用户提供视觉上的反馈。jQuery内置的一批淡入、擦除之类的效果,以及制作新效果的工具包,为此提供了便利。

    无需刷新页面从服务器获取信息。这种编程模式就是众所周知的AJAX,它能帮助Web开发人员创建出反应敏感、功能丰富的网站。jQuery通过消除这一过程中的浏览器特定的复杂性,使开发人员得以专注于服务器的功能设计。

    简化常用的JavaScript任务。除了这些完全针对文档的特性之外,jQuery也提供了对基本的JavaScript结构(例如迭代和数组操作等)的增强。

     

    1. JQ选择器::$()。所有能在样式表中使用的选择器,都能放到这个圆括号中的引号内

    $(“#div1”).addClass(“green”);           //向div1添加green类

    $(“#div1”).removeClass(“red”);          //向div1删除red类

    jQuery就是用$(document).ready()方法来代替传统JavaScript的window.onload方法的。

     

    JQ事件绑定的例子:
    $(document).ready(function(){

                     $(‘#panel’).bind(‘click’,function(){   //绑定click事件

                     $(‘body’).addClass(‘large’);        //单击ID为#panel的元素时添加large类样式

                    });

                 });

    JQ的hover,连续定义了鼠标覆盖和鼠标移除的操作

    $(document).ready(function(){

           $(‘#panel’).hover(function(){              

           $(this).addClass(‘large’);        //鼠标移动到该元素上时添加large类样式

       }, function(){

           $(this).removeClass(‘large’);     //鼠标移出该元素时移除large类样式

         });

    });

    1. JSP与数据库

    1.JSP的优势:

    与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。

    与纯Servlets相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。

    与SSI相比:SSI无法使用表单数据、无法进行数据库链接。

    与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。

    与静态HTML相比:静态HTML不包含动态信息。

    1. JSP的处理流程:
    1. 就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。
    2. Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。
    1. JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
    2. JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
    3. Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
    4. Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
    5. 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。

     

    1. JSP的生命周期:

    JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。

    编译阶段:servlet容器编译servlet源文件,生成servlet类

    初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

    执行阶段:调用与JSP对应的servlet实例的服务方法

    销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

     

    1. JSP声明<%!  %>   JSP表达式<%=  %>   JSP代码<%  %>    JSP注释<%--  --%>

    JSP指令<@% page/include/taglib  ...%>

    1. JSP的九种自定义对象
    2. Request对象

      request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。

      getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。

      getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkobx类型

      getParameterNames():该方法可以取得所有变量的名称,该方法返回一个Emumeration。

      getInputStream():调用此方法来读取来自客户端的二进制数据流。

       

      response对象

      response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。

      out对象

      out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。最初的JspWriter类对象根据页面是否有缓存来进行不同的实例化操作。可以在page指令中使用buffered='false'属性来轻松关闭缓存。JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过,JspWriter新增了一些专为处理缓存而设计的方法。还有就是,JspWriter类会抛出IOExceptions异常,而PrintWriter不会。

      session对象

      session对象是 javax.servlet.http.HttpSession类的实例。和Java Servlets中的session

      对象有一样的行为。每个客户端维持一个session对象

    3. application对象

      服务器启动后就产生了一个application对象,不同客户在所访问的各个页面间只有这一个对象。(整个应用中只有一个Application对象)

      Cookies

      Web服务器保存在用户硬盘上的一段文本。Cookies允许一个Web站点在用户电脑上保存信息并且随后再取回它

    4. JDBC整体架构(Java Database connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库人员能够编写数据库应用程序,同时,JDBC也是个商标名。

    数据库连接过程:导入JDBC包: 添加import语句到Java程序导入所需的类在Java代码中。import java.sql.* ; // for standard JDBC programs

    注册JDBC驱动程序:这一步会导致JVM加载所需的驱动程序实现到内存中,因此它可以实现JDBC请求。try {

       Class.forName("oracle.jdbc.driver.OracleDriver");

    } catch(ClassNotFoundException ex)

    {

    System.out.println("Error: unable to load driver class!");

    System.exit(1);

    }

    指定数据库URL:这是创建格式正确的地址指向到要连接的数据库。

    1. Ajax(异步JS和XML)

    1.Ajax基本概念:

    将javaScript和XML联合应用并称作AJAX,Ajax并不是一门新的语言,而是一种用于创建更好、更快及交互性更强的Web应用程序的技术。

    通过Ajax,可以用JavaScript的XMLHttpRequest对象来直接与服务器进行通信,无需重新加载页面。

    Ajax和Web服务器之间通过异步数据传输,实现只请求部分信息,而不是整个页面。

    它实际上是几项技术按一定的方式组合在一起共同协作: HTML、CSS 、DOM、JavaScript、 XML 、XSLT和 XMLHttpRequest 。    

    2.使用Ajax技术和普通网页技术的差别点:

    创建连接对象:最后,代码调用DriverManager对象的getConnection()方法来建立实际的数据库连接。

    String URL = "jdbc:oracle:thin:@amrood:1521:EMP";

    String USER = "username";

    String PASS = "password"

    Connection conn = DriverManager.getConnection(URL, USER, PASS);

    在客户端与服务器之间传输的数据不再是样式+结构和XML,而是同一用XML作为传输的格式,在客户端根据Ajax引擎进行解释得到所需的数据。

     

    1. XMLHttpRequest对象

    Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。XmlHttpRequest使开发者可以使用JavaScript向服务器提出异步请求并处理响应,而不阻塞用户。

    1. Ajax使用步骤

    需要进行Aj'a'x请求的页面,实现刷新局部页面来响应用户请求:当前两个页面同样处于/Ajax文件夹下!!!

     <script type="text/javascript">

      function check(){

          var xmlHttp;

      try{

         xmlHttp=new XMLHttpRequest();

      }catch(e){

         try{

         xmlHttp=new ActiveXObject("Msxml12.XMLHTTTP");

         }catch(e){

           try{

         xmlHttp=new ActiveXObject("Microsoft.XMLHTTTP");

           }catch(e){

           alert("您的消息不支持AJax");

           return false;

           }    

         }      

      }  

      var name=document.getElementById("name").value;

      var url="ajax/helloworld.jsp?name="+name;    //相对于应用程序WebRoot的相对路径

      xmlHttp.open("GET",url,true);

      xmlHttp.onreadystatechange=myfunc;

      xmlHttp.send();

       

      function myfunc(){

      if(xmlHttp.readyState==4)

        if(xmlHttp.status==200){

        var data=xmlHttp.responseText;

        //alert(data);

        if(data)

        document.getElementById("namestatue").innerHTML=data;

        else

        alert("false");

      }

     }

      }

      //作业,使用ajax完成一个判断是否登陆的页面,jsp的调试方法,js的调试

      

      </script>

      

      <body>

          <form>

             <input type="text" id="name" placeholder="用户名"  onchange="check()"><span id="namestatue"></span><br>

             <input type="password" placeholser="密码"> 

             <input type="submit"  value="提交">    

          </form>

      </body>

    进行Ajax处理的页面:

    <%@ page language="java" contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>

    <% 

         String username=request.getParameter("phone");

         Connection con;

             //驱动程序名

             String driver = "com.mysql.jdbc.Driver";

             //URL指向要访问的数据库名mydata

             String url = "jdbc:mysql://localhost:3306/patent";

             //MySQL配置时的用户名

             String user = "root";

            //MySQL配置时的密码

             String password = "123654";

             //遍历查询结果集

             try {

                 //加载驱动程序

                 Class.forName(driver);

                 //1.getConnection()方法,连接MySQL数据库!!

                 con = DriverManager.getConnection(url,user,password);

                 //if(!con.isClosed())

                  //   System.out.println("Succeeded connecting to the Database!");

                 //2.创建statement类对象,用来执行SQL语句!!

                 Statement statement = con.createStatement();

                 //要执行的SQL语句

                 String sql = "select * from user";

                 ResultSet rs = statement.executeQuery(sql);

                 while(rs.next()){

                     String username1 = rs.getString("username");

                     if(username1.equals(username))  out.print("exist");

                     //输出结果

                    //System.out.println(username);

                 }

                 rs.close();

                 con.close();

             } catch(ClassNotFoundException e) {   

                 //数据库驱动类异常处理

                 System.out.println("Sorry,can`t find the Driver!");   

                e.printStackTrace();   

                 } catch(SQLException e) {

                 //数据库连接失败异常处理

                 e.printStackTrace();  

                 }catch (Exception e) {

                 // TODO: handle exception

                 e.printStackTrace();

             }finally{

             }

    %>

    1)创建XMLHttpRequest对象;

    (2)指定处理函数:给XMLHttpRequest对象的onreadystatechange属性赋值,指示哪个函数处理XMLHttpRequest对象状态的改变;

    (3)指定请求的属性。open方法的三个参数分别指定将发送请求的方法(通常是GET或POST)、目标资源URL串以及是否异步请求;

    (4)发送请求到服务器:send方法把请求传送到指定的目标资源,send方法接受一个参数,通常是一个串或DOM对象。这个参数会作为请求体的一部分传送到目标URL。向send方法提供参数时,要确保open中指定的方法是POST。如果没有数据要作为请求体的一部分发送,则使用null

     

    5.传统的WebFrom和Ajax方式实现区别对比:

    传统的Web应用允许客户端填写表单,当提交表单时就向Web服务器发送一个请求。服务器接收并传递传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML码往往是相同的。由于每次应用的沟通都需要向服务器发送请求,应用的响应时间久依赖于服务器的响应时间。这导致了用户界面的响应比本机应用慢得多。

     

    1. XML
    1. XML语法要求:

    了解了XML文档的基本结构后,接下来还需要熟悉创建XML文档的语法要求。创建XML文档的语法要求如下:

    þ  (1)XML文档必须有一个顶层元素,其他元素必须嵌入在顶层元素中。

         (2)元素嵌套要正确,不允许元素间相互重叠或跨越。

    þ  (3)每一个元素必须同时拥有起始标记和结束标记。这点与HTML不同,XML不允许忽略结束标记。

    þ  (4)起始标记中的元素类型名必须与相应结束标记中的名称完全匹配。

    þ  (5)XML元素类型名区分大小写,而且开始和结束标记必须准确匹配。例如,分别定义起始标记<Title>、结束标记</title>,由于起始标记的类型名与结束标记的类型名不匹配,说明元素是非法的。

    þ  (6)元素类型名称中可以包含字母、数字以及其他字母元素类型,也可以使用非英文字符,但不能以数字或符号“-”开头,同时也不能包含空格符和冒号“:”。

    þ  (7)元素可以包含属性,但属性值必须用单引号或双引号括起来(前后两个引号必须一致,不能一个是单引号,一个是双引号)。在一个元素节点中,属性名不能重复。

     

    2.XML中的注释

    XML文档的注释以字符串“<!--”开始,以字符串“-->”结束。由于XML解析器将忽略注释中的所有内容,这样便可以在XML文档中添加注释说明文档的用途,或者临时注释掉没有准备好的文档部分。

     

    3.特殊字符的处理方式:
    在XML文档中,有些字符会被XML解析器当作标记进行处理。如果希望把这些字符作为普通字符处理,就需要使用实体引用或CDATA段。

           (1)使用实体引用。为了避免系统将字符串中的特殊字符当成XML保留字符,XML提供了一些实体引用。在字符串中需要使用这些特殊字符时,就可以使用这些实体引用。

    1. 使用CDATA段。CDATA段是一种用来包含文本的方法,其内部的所有内容都会被XML解析器当作普通文本,所以任何符号都不会被认为是标记符。在CDATA标记下,实体引用将失去作用。"<![CDATA[" 开始,由 "]]>" 结束

     

    1. WebService      WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准通用标记语言下的一个子集)标准描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序.XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。

    3.1、XML+XSD

    WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的 返回结果是什么)。XML是WebService平台中表示数据的格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关 的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。 

    XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,64位?这 些细节对实现互操作性很重要。XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台就 是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合WebService标准,所 有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。

    3.2、SOAP

       WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明 HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。

      SOAP协议 = HTTP协议 + XML数据格式

      SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比 喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

    3.3、WSDL

    好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方 法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受 的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

    WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都 能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的 Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

    WSDL 文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。 WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

     

     

     

    1. EJB
    1. J2EE和EJB概念:
      EJB就是一组用Java语言编写的包含字段和方法的代码体,而这些代码的核心任务就是实现纯粹的业务逻辑。J2EE是Sun公司提出的一种多层次的分步式的软件体系结构
    2. J2EE的四层应用结构以及各层功能:

    一个多层次的J2EE应用结构包含如下4个层次

    客户层(Client)   Web层(Web)   业务层(Business)   企业信息系统层(EIS)

    业务层的业务逻辑由EJB组件来显示

    客户层:

    运行在客户机器上。客户层可以是普通的应用程序,直接访问业务层的EJB组件;也可以是浏览器程序,访问Web层的JSP和Servlet组件。

    Web层:

    运行在J2EE服务器上,Web层的组件主要包括JSP和Servlet,用户动态生成HTML页面。Web层组件会访问业务层的EJB组件。

    业务层:

    运行在J2EE服务器上,业务层的主要组件为EJB,它们负责实现业务逻辑。

     

    EIS层(Enterprice Information System):

    运行在数据库服务器上,用于存储业务数据。

    客户层、J2EE服务器层、数据库服务器层,也称三层架构

    ①EJB(企业JavaBean)在EJB容器中运行,运行时环境由容器建立。

    当完成EJB的开发后,需要将EJB组件部署到EJB容器中。只有正确部署后,EJB容器才能向客户提供业务服务。

    ②EJB对象由容器(JBoss)提供,因此不能在程序中使用创建实例的方法来生成 EJB对象,而需要要采用Java的JNDI(Java Naming and Directory Interface,Java命名和目录接口)来获得EJB对象的引用。在javax.naming包中提供了Context接口,该接口提供了通过名字检索对象的方法Object lookup(String name) 返回与指定的名字绑定的对象。

     

     

    1. EJB的分类:(就把EJB理解成处理逻辑的中间件)

    三中不同类型的EJB

    1.会话Bean(Session Bean)实现会话中的业务逻辑

    2.实体Bean(Entity Bean)实现一个业务实体

    3.消息驱动Bean(Message-Driven Bean)作为JMS(Java Message Service)Java消息服务的API的监听者,并且异步处理其中的消息。

     

    1. 开发EJB的步骤:
      开发EJB3.0组件的步骤,编写业务接口代码、Bean类,编译代码,提供部署描述符(不是必须),创建Ejb.jar文件,将Ejb-jar文件部署到容器中,编写并执行客户应用

     

    1. 一个具体的EJB的例子:

     

    1. Servlet

    1.Servlet与Jsp的不同之处:
    Servlet是使用Java Servlet接口(API)运行在Web应用服务器上Java程序,其功能十分强大,它不但可以处理Http请求中的业务逻辑,而且还可以输出HTML代码来显示指定页面。而JSP是一种在Servlet规范之上的动态网页技术,在JSP页面之中,同样可以编写业务逻辑处理Http请求,也可以通过HTML代码来编辑页面,在实现功能上,Servlet与JSP貌似相同,实质存在一定的区别,表现在以下方面:

    þ 1、角色不同2、编程方法不同3、Servlet需要编译后运行4、速度不同

     

    1. Servlet的技术要点:
      Servlet使用Java语言编写,它不仅继承了Java语言中的优点,而且Servlet还对Web的相关应用进行了封装,同时Servlet容器还提供了对应用的相关扩展,无论是在功能、性能、安全等方面都十分优秀,其技术特点表现在以下方面。

    1、功能强大2、可移植3、性能高效4、安全性高5、可扩展

     

    1. Servlet在web.xml中的配置:

      <servlet>

          <servlet-name>myServlet</servlet-name>

          <servlet-class>com.njust.Servlet.myServlet</servlet-class>

        </servlet>

       

        <servlet-mapping>

          <servlet-name>myServlet</servlet-name>

          <url-pattern>/servlet/myServlet</url-pattern>

        </servlet-mapping>

    2. 过滤器与监听 ①Servlet过滤器与Servlet十分相似,但它具有拦截客户端(浏览器)请求的功能,Servlet过滤器可以改变请求中的内容,来满足实际开发中的需要。
    3. ②Servlet监听器的功能比较接近Java的GUI程序的监听器,可以监听由于Web应用中状态改变而引起的Servlet容器产生的相应事件,然后接受并处理这些事件。

    展开全文
  • Web应用技术应用方式

    2020-10-09 09:28:08
    其中,客户端应用技术主要用于展现信息内容,而服务器端应用技术,则主要用于进行业务逻辑的处理和数据库的交互等。 FU 如需要跟多资料请点击下方图片⬇(扫码加好友→备注66,不备注拒绝添加哦) Web应用...

      在开发 Web 应用程序时,通常需要应用客户端和服务器端两方面的技术。其中,客户端应用的技术主要用于展现信息内容,而服务器端应用的技术,则主要用于进行业务逻辑的处理和与数据库的交互等。

    FU
    如需要跟多资料请点击下方图片⬇(扫码加好友→备注66,不备注拒绝添加哦)
    image

    Web应用技术应用方式

    • 客户端
    • 服务器端

    案例实操

    1)客户端应用的技术

      在进行 Web 应用开发时,离不开客户端技术的支持。目前,比较常用的客户端技术包括 HTML 语言、CSS、Flash 和客户端脚本技术。

      ✓ HTML HTML 语言是客户端技术的基础,主要用于显示网页信息,由浏览器解释执行,它不需要编译。

      ✓ CSS CSS 就是一种叫做样式表的技术,也有人称之为层叠样式表。在制作网页时才有用 CSS 样式,可以有效地对页面的布局、字体、颜色、背景和其他效果实现更加精确的控制。

      ✓ Flash Flash 是一种交互式矢量动画制作技术,它可以包含动画、音频、视频以及应用程序, 而且 Flash 文件比较小,非常适合在 Web 上应用。

      ✓ 客户端脚本技术 客户端脚本技术是指嵌入到 Web 页面中的程序代码,这些程序代码是一种解释性的语言,浏览器可以对客户端脚本进行解释。通过脚本语言可以实现以编程的方式对页面元素进行控制,从而增加页面的灵活性。常用的客户端脚本语言有 JavaScript 和 VBScript。目前,应用最广泛的客户端脚本语言是 JavaScript 脚本,它是 Ajax 的重要组成部分。

    2)服务器端应用的技术

      在开发动态网站时,离不开服务器端技术,比较传统和经典的 Web 服务器端技术主要有:CGI、ASP、SERVLET/JSP、PHP 等。

      ✓ CGI(公用网关接口) CGI 可以说是最早的 WEB 服务器端技术,它是个 HTTP 过滤程序,其大致的原理是:CGI 是在 WEB 服务器上运行的一个程序,该程序定义了 WEB 客户请求与应答的一种方法。客户向服务器的请求(主要是 HTML 表单)只要属于 CGI 定义范围,就启动 CGI 程序,其任务是把客户的请求从网管的环境变量中取出并加以转换,提交给服务器上的 CGI 应用程序,这些程序可以用 C/C++/PERL 等语言编写,这些程序具备访问服务器资源(比如数据库)的能力,这些程序的运行结果,通过 CGI 转换成 HTML 格式,发送到客户端。CGI 程序很容易实现对服务器资源的访问,但是向客户端输出则比较麻烦,程序员不能使用“所见即所得”的网页制作工具,只能一行行手写 HTML 代码,向客户端输出,不适合生成复杂页面,这项技术现在使用的人不多。但是,CGI 的基本原理却被后续的服务器端网页技术沿用。

      ✓ ASP ASP 是微软研发的技术,出现于 1997 年前后。它解决了 CGI 的输出麻烦。ASP 允许 HTML 和服务器端脚本混合编程。可以在 HTML 中插入括起来的代码段,这些代码可以用 JavaScript\VBScript 等脚本语言编写,但他们是在服务器上执行的。ASP 编程是非常方便的,你可以先用“所见即所得”的网页制作工具把页面效果做出来,然后再在其中插入服务器端脚本输出服务器端的计算结果。它的缺点是:HTML 和脚本混合编程,使程序的可读性很差,不利于维护大型 WEB 项目,脚本程序的调试也是个问题。2003 年前后退出的 ASP.NET 基本解决了上述问题。ASP 还内置了几个对象,这些对象不需要实例化即可使用,实现网页的状态维护、HTTP 模拟等功能,这些对象后来大都出现于 JSP 中。

      ✓ PHP PHP 语法类似于 C,另外混合了 Perl、C++和 Java 的一些特性。它是一种开源的 Web 服务器脚本语言,于 ASP 一样可以在页面中加入脚本代码来生成动态内容。对于一些复杂的操作可以封装到函数或类中。在 PHP 中提供了许多已经定义好的函数,例如提供的标准的数据库接口,数据库连接方面,扩展性强。PHP 可以被多个平台支持但被广泛应用于 UNIX/Linux 平台。由于 PHP 本身的代码对外开放,并且经过许多软件工程师的检测,因此到目前为止该技术具有公认的安全性能。

      ✓ JSP Java Server Page 简称 JSP。JSP 是以 Java 为基础开发的,所以它沿用 Java 强大的 API 功能。JSP 页面中的 HTML 代码用来显示静态内容部分,嵌入到页面中的 Java 代码与 JSP 标记用来生成动态的内容。JSP 允许程序员编写自己的标签库来完成应用程序的特定要求。JSP 可以被预编译,提高了程序的运行速度。另外,JSP 开发的应用程序经过一次编译后,便可随时随地运行。所以在绝大部分系统平台中,代码无需做修改即可在支持 JSP 的任何服务器中运行。

      ✓ Servlet Servlet 是 Java 早期的 Web 服务器端技术,用 Java 语言编写。无论是从原理和编程方式 上,几乎就是 CGI 的翻版,具有 CGI 的缺点和优点,与 CGI 主要不同的是,Servlet 对每个请求都是单独启动一个线程,而不是进程。

    扩展

    Web 应用程序的工作原理

      Web 应用程序大体上可以分为两种,即静态网站和动态网站。早期的 Web 应用主要是静态页面的浏览,即静态网站。这些网站使用 HTML 语言来编写,放在 Web 服务器上,用户使用浏览器通过 HTTP 协议请求服务器上的 Web 页面,服务器上的 Web 服务器将接收到的用户请求处理后,再发送给客户端浏览器,显示给用户。

      随着网络的发展,很多线下业务开始向网上发展,基于 Internet 的 Web 应用也变得越来越复杂,用户所访问的资源已不能只是局限于服务器上保存的静态网页,更多的内容需要根据用户的请求动态生成页面信息,即动态网站。这些网站通常使用 HTML 语言和动态脚本语言(如 JSP、ASP 或者是 PHP 等)编写,并将编写后的程序部署 Web 服务器上,由 Web 服务器对动态脚本代码进行处理,并转化为浏览器可以解析的 HTML 代码,返回给客户端浏览器,显示给用户。

      就好比,静态网站类似于 10 年前的手机,这种手机只能使用出厂时设置的功能和铃声,用户自己并不能对其铃声进行添加和删除等;而动态网站则类似于现在研制的手机,用户在使用这些手机时,不再是只能使用手机中默认的铃声,而是可以根据自己的喜好任意设置。

    展开全文
  • Web应用开发原理与技术Web应用开发原理与技术Web应用开发原理与技术
  • Web应用开发技术代码课件Web应用开发技术代码课件Web应用开发技术代码课件Web应用开发技术代码课件Web应用开发技术代码课件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,732
精华内容 7,892
关键字:

web技术与应用