javaweb复习笔记

  1. 理解“动”态网站
    HTML、CSS、JavaScript(动态效果)——(界面层,运行在客户端浏览器);
    Java、SQL、JSP、Servlet——(运行在服务器)
    上边老师总结的,不看,看下边的
    动态网站指数据是活的,也就是说数据是存在数据库中的,静态网站是指数据就在前端页面上,如果要改静态页面上的数据,就得改代码。静态网站上有种东西叫JavaScript,这个只是搞一些动态效果或者和后端交互数据(Ajax),有这个不叫动态网站。

  2. JavaBean
    javaBean分为实体JavaBean和业务JavaBean
    实现实体的JavaBean,叫做封装数据的JavaBean,俗称实体类(entity)。
    实现功能的JavaBean,叫做封装业务的JavaBean,比如dao,biz。
    典型的JavaBean,是指封装数据的JavaBean(entity),它的特征:
    (1) 必须是public类
    (2) 私有成员变量(private)
    (3) public的无参构造方法
    (4) 围绕每个属相生成set方法和get方法

  3. JSP工作原理
    第1次执行JSP页面时,经过转译(.jsp->.java)、编译(.java->.class)、执行的过程。
    第2次以后再执行时,直接执行.class,这个.class就是Servlet。
    例题:
    JSP文件在第一次运行的时候被JSP引擎编译为( A )文件
    A. Servlet
    B. Class
    C. HTML
    D. XML

  4. HTTP协议发送消息的方法:get和post
    get方法特征:明文传输数据,发送数据大小有限制。

    <form method="GET">
    …
    </form>
    <a href="#">…</a>
    response.sendRedirect("list.jsp?boardId=1");
    

    post方法特征:密文传输数据,发送数据大小没有限制。

    <form method="post">
    …
    </form>
    

    post相比get要安全点儿

  5. HTTP协议具有"无状态"的特点。
    点击超链接<a>,相当于发起新的HTTP链接,产生一个新的request对象。

  6. HTML

    <form method="post" action="……">
    	<input type="text" name="username" id="username"/>
    	<input type="hidden" name="temp" value="123"/>  <!--隐藏表单域 -->
    </form>
    <a href="next.jsp?a=1&b=2&c=3"></a>		
    <!--下级目录,上级目录,根目录-->
    <!--下级 直接写 next.jsp-->
    <!--上级 ../next.jsp-->
    <!--根目录   /next.jsp-->
    <!-- URL重写 (重定向)-->
    response.sendRedirect("list.jsp?boardId=1");
    
  7. JSP指令元素包括:page、include、taglib
    (1) jsp中import可以有多个
    (2) jsp中的include有两种,一种是静态引入(<%@ include file = frangmentURL%>),一种是动态引入(<jsp:include page= frangmentURL />),前者的页面将会直接插入包含该页面中该指令的位置,然后jsp编译器再对合成的文件进行编译,最终编译的页面只有一个;后者的jsp程序将会将请求forward到被包含页面,并将执行结果放入输出至浏览器中,并返回页面继续执行后面的代码,包含文件和被包含文件将会分别编译。简单来说,前者得到一个Servlet,后者得到两个Servlet。
    (3) 当jsp页面使用第三方标签库时,使用taglib指令"导包",url是第三方标签库定义的,prefix是标签的前缀,使用这个库里的标签时,前边要加一个前缀。

    <%@ page import="entity.*,dao.*,java.util.Date" contentType="text/html;charset=utf-8" %>
    <%@include file="other.jsp"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <c:out value="renliang"></c:out>
    
  8. JSP脚本元素包括:表达式(<%=… %>)、脚本代码(<%… %>)、声明(<%!… %>)
    例题:
    JSP标记都是以<%<jsp开头,以%>/>结尾。

  9. 9个内置对象: response、out、request、pageContext、session、application、config、exception、page
    常用的:request、response、out、pageContext、session、application
    比较作用域范围:pageContext、request、session、application
    (1) pageContext:当前页面(默认的作用域)

    <% pageContext.setAttribute("color","yellow");%>
    <%=pageContext.getAttribute("color")%>	<!--用JSP表达式输出 -->
    	${pageScope.color}					<!--用EL表达式输出 -->
    <c:forEach item="list" var="obj">		<!—obj默认是定义在pageContext内置对象中 -->
    	…${obj.attr}
    </c:forEach>
    

    (2) request:当次HTTP链接中

    String变量名 = request.getParameter("变量名");
    request. setAttribute("变量名",值);
    request. getAttribute("变量名");
    

    (3) session:当前会话中(只要不注销session即关闭浏览器)
    如果当前已展开会话,就返回当前session对象;如果当前没有session,创建一个新的session对象:

    HttpSession session = request.getSession();
    HttpSession session = request.getSession(true);
    

    如果当前已展开会话,就返回当前session对象;如果当前没有session,返回null:

    HttpSession session = request.getSession(false);
    

    (4) application:整个应用程序(所有页面、所有会话,只要服务器不关)
    一般用于计数的
    例题:
    request内置对象代表了客户端的请求信息,主要用于通过HTTP协议传送给服务端的数据。out对象主要用来向客户输出各种数据类型的内容。
    page对象用于指定当前JSP本身。
    pageContext对象提供了对JSP页面内使用到的所有对象及名称空间的访问。
    application对象保存应用程序中公有的数据。
    response对象实现了HttpServletResponse接口,可对客户的请求作出动态响应,向客户端发送数据。
    如果希望在多个页面间共享数据,可以使用(A)作用域
    A. request,session
    B. application.session
    C. request,application
    D. pageContext,request

  10. 页面跳转的两种方式:重定向和转向的区别
    重定向:response.sendRedirect("index.jsp");
    相当于发起新的HTTP链接;
    地址栏会发生变化;
    效率低;
    安全性较高。
    转向:request.getRequestDispatcher("index.jsp").forward(request,response);
    不发起新的HTTP链接,服务器内部资源的跳转;
    地址栏不变化;
    效率较高。

  11. EL表达式支持关键字:eq、ne、lt等等、empty

    算数运算符 描述
    ( ) 括号,改变运算优先级
    - 负号
    *,/(div),%(mod) 乘除取余,若除以0,返回值为无穷大而不是错误
    +,- 加减
    关系运算符 说明 范例 结果
    ==或eq 等于 ${5==5}或${5eq5} true
    !=或ne 不等于 ${5!=5}或${5ne5} false
    <或lt 小于 ${3<5}或${3lt5} true
    >或gt 大于 ${3>5}或${3gt5} false
    <=或le 小于等于 ${3<=5}或${3le5} true
    >=或ge 大于等于 ${3>=5}或${3ge5} false
    逻辑运算符 范例
    &&或and ${A && B}或${A and B}
    ||或or ${A || B}或${A or B}
    !或not ${!A}或${not A}

    empty主要判断值是否为空 ${empty A}
    条件运算符 ${A?B:C}
    例题:
    EL表达式,${10 mod 3}的执行结果为( B )
    A. 10 mod 3
    B. 1
    C. 3
    D. null

  12. EL表达式与JSP表达式区别
    EL表达式取出一个变量的值时,要求这个变量必须来自某个内置对象中;

    <!--name 必须来自pageScope、requestScope、sessionScope或applicationScope作用域-->
    ${name} 
    

    JSP表达式取出一个变量的值时,这个变量是一个局部变量;
    <%=name%>
    EL表达式,如果表达式结果为NULL,不会有任何显示;
    JSP表达式,如果表达式结果为NULL,显示NULL。
    给定以下JSP代码片段,有2个客户依次浏览该JSP;且每个客户只浏览一次,第2个客户会看到浏览器显示(A)

    <% int x = 1; %>
    <%! int x = 10; %>
    X = <%=x %>
    

    A. x = 1
    B. x = 2
    C. x = 10
    D. x = 11

  13. JSTL标签:Core库和Format库
    Core库
    format库
    Core库:

    <c:if test="${}">…</c:if>
    <c:choose>
    	<c:when test="${}">
    		….
    	</c:when>
    	<c:otherwise>
    		….
    	</c:otherwise>
    </c:choose>
    <c:forEach item="${list}" var="obj" >		
    	…${obj.attr}
    </c:forEach>
    

    Format库:格式化日期或数字,本地化和国际化
    <fmt:formatNumber />、<fmt:formatDate>

  14. Servlet的理解
    Servlet继承javax.servlet.http.HttpServlet类。
    HttpServlet是抽象类,它的Http处理方法只有定声明没有具体实现。
    开发Servlet类,一般需要重写**doGet( )或doPost( )**方法。
    例题:
    Servlet的优点有(ABC)
    A. 执行效率高
    B. 可移植性好
    C. 功能强大
    D. 运行速度快
    Servlet和JSP的区别是(BCD)
    A. 性能更强
    B. 编程方式不同
    C. 运行速度不同
    D. 编译顺序不同

  15. Servlet的访问:web.xml中配置

    <servlet>
    	<servlet-name>firstServlet</servlet-name>
    	<servlet-class>servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>firstServlet</servlet-name>
    	<url-pattern>/hello</url-pattern>
    </servlet-mapping>
    
  16. Servlet的生命周期:
    加载类实例化
    init()初始化
    请求处理
    destroy()
    第1次访问某Servlet时,会调用init()方法;
    之后访问Servlet的doGet()或doPost()方法;
    关闭服务器时候,会调用destroy()方法。
    例题:
    当访问一个Servlet时,以下Servlet中的哪个方法先被执行( D )
    A. destroy
    B. doGet()
    C. service()
    D. init()

  17. session对象是HttpSession接口类型;application对象是ServletContext接口类型。

  18. 过滤器

    <filter>
     	<filter-name> EncodingCharacterFilter </filter-name>
    	<filter-class> filter. EncodingCharacterFilter </filter-class>
    </filter>
    <filter-mapping>
     	<filter-name> EncodingCharacterFilter </filter-name>
    	<url-pattern>/admin/*</url-pattern >
    </filter-mapping>
    

    例题:
    编写一个filter,需要( B )
    A. 继承Filter类
    B. 实现Filter接口
    C. 继承HttpFilter类
    D. 实现HttpFilter接口
    在编写过滤器时,需要完成的方法(A)
    A. doFilter()
    B. doChain()
    C. doPost()
    D. doDelete()

  19. Model1和Model2模型对比
    Model1是JSP+JavaBean
    Model2是JSP+Servlet+JavaBean
    Model1中,JSP页面独自响应请求,并将处理结果返回客户端,所有的数据通过Bean来处理,JSP页面显示数据。Model实现了视图层和业务层的分离。大量Model1会使JSP页面嵌入大量脚本代码,使整个页面程序变得很复杂,造成了代码开发和维护的困难。
    Model2中,通过JSP页面显示数据,通过Servlet完成大量的事务处理工作。这样的话,JSP页面中没有任何数据处理逻辑,所有数据处理逻辑均出现在Servlet中。Model2具有更清晰的页面表现、清楚的开发者角色划分,做到了基本的前后端分离。
    例题:
    JSP的两种体系结构是model1model2

补充:

  1. 能够保留请求作用域中数据的转向方式是(D)
    A. response.forward()
    B. response.sendRedirect()
    C. session.getRequestDispatcher().forward(request,response)
    D. request.getRequestDispatcher().forward(request,response)
  2. Login.jsp为登录页面,表单代码如下:
    <form action="index.jsp" method="post">
    	<input type="text" name="name" />
    	<input type="submit" value="login" />
    </form>
    
  3. index.jsp中直接显示用户名,以下哪种代码正确(C)
    A. ${requestScope.name}
    B. <%=name %>
    C. ${param.name}
    D. <%=param.name%>
  4. 按作用域从大到小排列正确的是(D)
    A. application,page,request,response
    B. session,pageContext,request,application
    C. public,application,session,request
    D. application,session,request,pageContext
  5. 在编写Servlet时,需要继承HttpServlet类,在Servlet中声明doGet()和doPost()需要HttpServletRequestHttpServletResponse类型的两个参数
  6. jsp主要内置对象有:responseexceptionpageContextrequestsessionapplicationoutconfigpage
  7. 使用useBean动作标记的时候scope属性有4种选项,作用范围由小到大是pageContext、request、session、application,其中session是指当关闭浏览器的时候这个javabean失效,application是指当关闭服务器的时候这个javabean失效。
  8. 三种常用的动态网页技术是ASP,PHP,JSP
  9. JSP利用JDBC操作数据库的步骤:
    (1) 加载驱动程序,调用 Class.forName()将自动加载驱动程序类。
    (2) 建立连接,若连接字符串为String url = "jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPwd,其中dbName、userName和userPwd3个分别代表
    数据库名
    数据库的用户名密码
    (3) 建立StateMent
    (4) 执行sql语句,其中,查询数据库里的表内容是Statement接口使用**executeQuery()**方法
    (5) 关闭数据库

题目来自百度文库:https://wenku.baidu.com/view/0620ecafd1d233d4b14e852458fb770bf78a3b8a.html和https://www.doc88.com/p-645858552264.html

猜你喜欢

转载自blog.csdn.net/qq_42094066/article/details/103664516