2.简述实现Servlet的方法和步骤
实现Servlet有三种方法
实现javax.servlet.Servlet接口
继承javax.servlet.GenericServlet类
继承javax.servlet.http.HttpServlet类
创建web项目
开发步骤:
1.创建web项目
2.导入jar包
3.创建Servlet类
4.注册Servlet类
5.部署项目
6.访问Servlet
7.重新部署
3.简述Servlet的生命周期
1.实例化阶段:服务器对Servlet进行实例化,调用Servlet的构造方法
2.初始化阶段:服务器调用Servlet的init方法进行初始化(只是在第一次请求时调用)。
3.请求处理阶段:服务器调用Servlet的service方法然后根据请求方式调用响应的doxxx方法
4.服务终止阶段:服务器调用Servlet的destroy方法销毁Servlet实例
4.简述MVC编程思想
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑,数据,界面显示分离的犯法组织代码,将业务罗技聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来大道分离视图显示View和业务逻辑层Model。MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同表现形式。
比如一批统计数据可以分别用柱状图,饼图表示C存在的目的则是确保M和V的同步,一旦M改变V一个同步更新。
5.简述JDBC链接数据库的过程,包括主要的类和方法的调用
创建一个以JDBC链接数据库的程序,包含7个步骤
1.加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类,加载驱动失败!");
e.printStackTrace();
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2.提供JDBC连接的URL
连接URL定义了连接数据库时的协议,子协议,数据源标识。
书写形式:协议:子协议:数据源标识
协议:在JDBC中总以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称
数据源标识:标记找到数据库来源的地址与连接端口
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk;
useUnicode=true;标识使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true.characterEncoding=gbk;字符编码方式
3.创建数据库的连接
要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接
使用DriverManager的getConnection(String url , String usename, String password)方法传入指定的欲连接的数据库的路径,数据库的用户名和密码来获得
例如://连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "root";
try{
Connection con =
DriverManager.getConnection(url , username ,password );
}catch(SQL Excepiton se){
System.out.pritln("数据库连接失败!");
se.printStackTrace();
}
4.创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5.执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6.处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7.关闭JDBC对象
操作完成以后要把所用使用的JDBC 对象全部关闭,以释放JDBC资源,关闭顺序和声明顺序相反
1.关闭记录集
2.关闭声明
3.关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
6.简述jsp中内置对象以及含义
1.request对象:客户端的请求信息被封装到request对象中,通过request可以了解到客户的需求,然后做出响应。
2.response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
3.session对象:session对象指的是客户端与服务端的一次会话,从客户端到服务端的一个WebApplication开始,直到客户端与服务端断开连接为止。
4.out对象:out对象是JspWriter类的实例,是向客户端输出内容常用的对象。
5.page对象:page对象就是指向当前JSP页面本身。
6:application对象:application对象实现了用户间数据的共享,可存放全局变量。它开始服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在。这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的方法。服务器的启动和关闭决定了application对象的生命。
7:exception对象:exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,必须把isErrorPage设为true,否则无法编译。
8.pageContext对象:pageContext对象提供了对JSP页面所有对象及名字空间的方法,也就是,它可以访问到本页的所有session,也可以取本页面所在application的某一属性值,它相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
9.config对象:config对象是一个在Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。