一、 web.xml
--------------------------------------------------------------------------------------------------------------------------
l 启动一个web项目时,web容器会读取配置文件web.xml。
index.jsp是默认优先访问的。
<welcome-file-list>
<welcome-file>xxx.jsp</welcome-file>
</welcome-file-list>
添加以上配置信息可以修改首页显示。
注:需要严格按照标签排列顺序进行添加
--------------------------------------------------------------------------------------------------------------------------
l Tomcat启动时就执行的servlet配置。
在对应的<servlet>标签下添加以下配置信息。
(这个servlet就不需要重新配置mapping)。
<load-on-startup>1</load-on-startup>
启动tomcat时按照加载等级初始化servlet,数字越大加载顺序越靠后。
这样在tomcat启动时会调用servlet的init方法。可以在init方法中初始化公用资源信息等等 。
l ServletConfig对象
servlet config对象可以使用一个或多个<init-param>标签为servlet配置一些初始化参数,servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
二、 JSP路径问题
--------------------------------------------------------------------------------------------------------------------------
l JSP文件是否有必要放在WEB-INF下
放到WEB-INF下的JSP文件,如果你直接去访问这个JSP是不可以的,必须通过Action的跳转。
对于用户,一些是可以直接访问的,如登录、注册页面。根据系统的需求,可以直接放在webroot下。
现在的mvc模式,JSP而仅仅充当view层的模板,必须要填入model数据后进行渲染,才能生成可读的页面,这样的模板是不能让用户直接访问的。直接访问的话要么是一堆各种空白,或者一堆占位符,甚至一堆NullPointException。
“安全性问题”指的是“不允许你访问,否则会对我不好”。这里的情况是“不建议你访问,否则会对你不好”,属于健壮性的范畴。
三、 JDBC连接数据库
--------------------------------------------------------------------------------------------------------------------------
1、 加载JDBC驱动程序
连接数据库前,加载数据库驱动到JVM,Class.forName(“com.mysql.jdbc.Driver”);
2、 创建数据库连接
Connection con = DriverManager.getConnection(url, username, password);
3、 创建Statament
l 静态SQL语句:Statament实例
l 动态SQL语句:PreparedStatement实例
l 数据库存储过程:CallableStatement实例
Statement stmt = con.createStatement();
PreparedStatement pstmt = con.prepareStatement(sql);
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}");
4、 执行SQL语句
l ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
l int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
l execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
5、 关闭JDBC对象
l 关闭记录集
l 关闭声明
l 关闭连接对象