web复习

有些话、适合烂在心里 提交于 2020-01-19 00:52:01

web复习

  • HTTP协议的特点

    1)支持客户端(浏览器就是一种Web客户端)/服务器模式。

    (2)简单快速:客户端向服务器请求服务时,只需传送请求方式和路径。常用的请求方式有GET、POST等,每种方式规定了客户端与服务器联系的类型不同。由于HTTP简单,使得HTTP服务器的程序规模小,因而通信速度很快。

    (3)灵活:HTTP允许传输任意类型的数据,正在传输的数据类型由Content-Type加以标记。

    (4)无状态:HTTP是无状态协议。无状态是指协议对于事务处理没有记忆能力,如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大

  • 简述POST请求和GET请求有什么不同?(至少2点)

    1. POST传输数据大小无限制

    2. POST比GET请求方式更安全

  • 请列举出Tomcat安装目录下的子目录,并对其进行简要说明?(至少列出5个)

    bin:用于存放Tomcat的可执行文件和脚本文件(扩展名为.bat的文件),如tomcat7.exe、startup.bat;

    conf:用于存放Tomcat的各种配置文件,如web.xml、server.xml;

    lib:用于存放Tomcat服务器和所有Web应用程序需要访问的JAR文件;

    logs:用于存放Tomcat的日志文件;

    temp:用于存放Tomcat运行时产生的临时文件;

    webapps:Web应用程序的主要发布目录,通常将要发布的应用程序放到这个目录下;

    work:Tomcat的工作目录,JSP编译生成的Servlet源文件和字节码文件放到这个目录下。

  • 请列举Servlet接口中的方法,并分别说明这些方法的特点及其作用。

    1、Servlet接口中有init、service、destroy 、getServletConfig和getServletInfo这 5个方法,这些方法的特点及其作用具体如下:

    1)init(ServletConfig config)方法,该方法在服务器对Servlet第一次访问时调用,负责Servlet初始化工作。在一个Servlet的生命周期中只执行一次。该方法接收一个ServletConfig类型的参数,Servlet容器可以通过这个参数向Servlet传递初始化配置信息。

    2)service(ServletRequest request,ServletResponse response)方法,该方法负责响应用户的请求,当容器接收到客户端访问Servlet对象的请求时,就会调用此方法。

    3)destroy()方法,该方法方法负责释放Servlet对象占用的资源。当Servlet对象被销毁时,容器会调用此方法。

    4)getServletConfig()方法,该方法返回容器调用init(ServletConfig config)方法时传递给Servlet的ServletConfig对象。

    5)getServletInfo()方法,该方法返回一个字符串,其中包含了关于Servlet的信息,例如,作者、版本和版权等信息。

  • 简述ServletContext接口的三个主要作用。

​ 1)获取Web应用程序的初始化参数

​ 2)实现多个Servlet对象共享数据

​ 3)读取Web应用下的资源文件

  • 请求转发与重定向的异同点如下。

1) 请求转发和重定向都可以实现访问一个资源时转向当前应用资源

2) 请求转发是一次请求一次响应,而重定向为两次请求两次响应

3)一般情况下应该使用请求转发,减少浏览器对服务器的访问,,减轻服务器压力

4)如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向

  • 简述什么是会话技术

    会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程。在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和Session。

  • 简述Cookie与Session的区别

1)Cookie和HttpSession是保存会话相关数据的技术,其中Cookie将信息存储在浏览器端,是客户端技术,Session将数据保存在服务器端,是服务器端技术

2)Cookie是基于HTTP协议中的Set-Cookie响应头和Cookie请求头进行工作的

3)默认情况下HttpSession是基于一个名称为JSESSIONID 的特殊Cookie工作的

4)浏览器对Cookie具有严格的限制,一个网站能在浏览器中保存多少Cookie是有限制的

5)HttpSession默认是基于Cookie运作的。

  • 简述JSP的9个隐式对象

    1)out:主要用于页面输出;

    2)request:用于得到用户请求信息;

    3)response:表示服务器向客户端的回应信息;

    4)config:包含服务器的配置信息,可以使用该对象获得Servlet初始化参数;

    5)session:主要用来保存用户信息;

    6)application:包含所有用户的共享信息;

    7)page:指当前页面转换后的Servlet类的实例;

    8)pageContext:表示JSP页面容器,它提供了对JSP页面内所有的对象及名字空间的访问;

    9)exception::表示JSP页面所发生的异常,在错误页中才起作用。

  • JavaBean概念和编码规范。

    本质是一个java类,

    必须有一个公共的,无参的构造方法,这个方法可以是编译器默自动产生的构造方法

    提供setter方法和getter方法,让外部可以设置和获取到JavaBean的值

  • Javabean规范如下

1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的缺省构造方法。

2)它提供公共的setter方法和getter方法让外部程序设置和获取JavaBean的属性。

3)它是一个公有类。

4)通常需要实现java.io.Serializable,用于序列化。

  • EL标识符的规范如下:

1) 可以由任意顺序的大小写字母、数字和下划线组成

2) 不能以数字开头

3) 不能是EL中的保留字,如and、or、gt;

4) 不能是EL隐式对象,如pageContext;

5) 不能包含单引号(’)、双引号(")、减号(-)和正斜线等特殊字符

  • 过滤器的实现

    public class MyFilter implements Filter{
        public void init(FilterConfig config){
            //过滤器对象在初始化时调用,可以配置一些参数
        }
        
        public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException ,ServletException{
            //用于拦截用户请求,如果和当前过滤器的拦截路径匹配,该方法会被调用
        }
        
        
        public void distory(){
            //过滤对象在销毁时自动调用,释放资源
        }
    
    }
    
    
    
    <filter>
      <filter-name>MyFilter</filter-name>
      <filter-class>XXX.XXX.XXX</filter-class>
    </filter>
    
    <filter-mapping>
     <filter-name>MyFilter</filter-name>
      <url-pattern>/*</url-pattern>   <!--对所有进行拦截 -->
    </filter-mapping>
    
  • 简述过滤器的作用

    Filter被称作过滤器或者拦截器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理前后实现一些特殊功能。

  • 3、已知有一个名为MyServlet的程序,程序可向浏览器输出“Hello MyServlet”。请编写一个用于拦截MyServlet程序的MyFilter拦截器。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
 HttpServletResponse response)throws ServletException, IOException {
		response.getWriter().write("Hello MyServlet ");
	}
public void doPost(HttpServletRequest request, 
HttpServletResponse response)throws ServletException, IOException {
		doGet(request, response);
	}
}
import java.io.*;
import javax.servlet.Filter;
import javax.servlet.*;
public class MyFilter implements Filter {
	public void destroy() {
		// 过滤器对象在销毁时自动调用,释放资源
	}
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// 用于拦截用户的请求,如果和当前过滤器的拦截路径匹配,该方法会被调用
		PrintWriter out=response.getWriter();
		out.write("Hello MyFilter");
	}
	public void init(FilterConfig fConfig) throws ServletException {
		// 过滤器对象在初始化时调用,可以配置一些初始化参数
	}
}
<servlet>
		<servlet-name>MyServlet</servlet-name>
		<servlet-class>cn.itcast.chapter08.servlet.MyServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>MyServlet</servlet-name>
		<url-pattern>/MyServlet</url-pattern>
	</servlet-mapping>
	<filter>
		<display-name>MyFilter</display-name>
		<filter-name>MyFilter</filter-name>
		<filter-class>cn.itcast.chapter08.filter.MyFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>MyFilter</filter-name>
		<url-pattern>/MyServlet</url-pattern>
	</filter-mapping>

动服务器后,访问MyServlet,即可查看拦截效果。

  • JDBC
public static void mian(String [] args){
  Connection conn = null;
  PreparedStatement preStmt = null;
  
    try{
        //加载数据库驱动
        Class.forName("com.mysql.jdbc.Driver");
        String usl = "jdbc:mysql://localhost:3306/jdbc";
        String username = xxx;
        String password = xxx;
        conn = DriverManager.getConnection(url,usernmae,password);
        String sql = "xxx";
        //执行sql
        preStmt = conn.PreparedStatemnent(sql);
        preStmt.setString(1,"zl");
        //执行sql
        preStml.executeUpdate();
        
    }
    catch{
        .....
    }
  

}
  • 简述什么是JDBC

    JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等处理。

  • JDBC的实现步骤如下:

    1)加载并注册数据库驱动

    2)通过DriverManager获取数据库连接

    3)通过Connection对象获取Statement对象

    4)使用Statement执行SQL语句

    5)操作ResultSet结果集

    6)关闭连接,释放资源

  • 请思考数据库连接池的工作机制是什么?

​ 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不是直接创建Connection,而是向连接池“申请”一个Connection。如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。使用完毕后,连接池会将该Connection回收,并交付其他的线程使用,以减少创建和断开数据库连接的次数,提高数据库的访问效率。

  • 简述DriverManager和DataSource中的getConnection()方法的区别。

1)DriverManager每次调用getConnection方法都会初始化一个新的连接,而DataSource的getConnection只是从池中取出一个已存在的连接

2)DriverManager的close()是释放Connection,而DataSource的close()只会把Connection归还给连接池。

  • 简述什么是MVC设计模式。

MVC设计模式是编程语言的一种软件设计模式,提供了一种按功能对软件进行模块划分的方法。MVC设计模式将软件程序分为三个核心模块:模型(Model)、视图(View)和控制器(Controller)。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!