Servlet基础
——JAVA程序(解决Web服务器创建动态内容的方案)
1、打包:在crm里面,e:(进入e盘) cd myWeb(进入e盘中的myWeb文件)
dir (得到文件下的所有文件夹)
2、配置
<user rolename=”manage”/>
3、eclipse 部署
1.7 —— 版本3.0
1.6 —— 版本2.5
4、ServletAPI (1)直接继承HttpServlet (2)实现Servlet接口 (3)继承gelarateServlet
5、Servlet编码和部署
——编码
HttpServletRequest:封装和请求相关
HttpServletResponse:封装和响应相关
根据流来创建一个Servlet;
——编译
——部署
在web.html里面(启动Web容器时):配置欢迎界面
----------注册Servlet-------------
<Servlet>
-----------注册Servlet名字,名字可以随便,但是见名知意,名字在为开发的Servlet 名字------------类名
<Servlet-name>HelloServlet</Servlet-name>
-------------Servlet文件所得在包名(不包含后面名)----------包名
<Servlet-class>com.lovo.Servlet.HelloServelt</Servlet-class>
</Servlet>
--------映射Servlet-----------
<servlet-mapping>
----------映射的Servlet的名字必须和注册的servlet名字一样-----------
<Servlet-name>HelloServlet</Servlet-name>
----------映射的路径名字可以随便取,最好是和开发的名字相同------------类名
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
映射路径可以多个
顺序:1.服务器到web容器 2. Web容器到web.html 3.到映射名字 2.找到映射内容 4.注册的servlet名字5.到指定的文件内容
Java默认后缀名 .do
——处理乱码
response.setContentType(“text/html;charset=utf-8”):
response.setCharacterEnconding(“utf-8”);
JDBC步骤:
1、加载驱动forname,调用包
2、连接数据库Connection connection = DriverManager,getConnection(“jdbc:mysql://127.0.0.1:3306/login”,”root”,”qwe”);
3、写入sql语句
4、得到预编译对象 preparedStatement prepareStatement = connection.prepareStatement(sql);
5、得到结果集 ResultSet resultset = prepareStatement.executeQuery();
6、遍历结果集 while循环
默认servlet第一次接受到请求是才会初始化和实例化
init():只会调用一次
servlet为单例模式
Service()服务阶段:从初始化之后一直在服务,当进行销毁的时候才会停止
在服务器启动之前的时候接受请求:load-on-startup>1 数字越大,启动的越前面(负数不加载) 数字从0开始,当数字相同时,从下往上调用
Servlet配置
1、由web.xml里的字符串组成
2、设置初始字符集:web.xml
<init-param>
<param-name>参数名字</param-name>
<param-value>参数内容</param-value>
</init-param>
每个servlet都有一个与之相对应的servletConfig
Ctrl+shift+o:导包的快捷键
3、在java文件中得到servletConfig conf = this.servletConfig();
Conf.getinitparameter(“参数名字”): ——返回一个字符串
4、ServletContext属于整个Web应用程序(全局)
配置全局参数:
<context-param>
<param-name>参数名字</param-name>
<param-value>参数内容</param-value>
</context-param>
配置多个参数:需要写多个
<context-param>
<param-name>参数名字1</param-name>
<param-value>参数内容1</param-value>
</context-param>
<context-param>
<param-name>参数名字2</param-name>
<param-value>参数内容2</param-value>
</context-param>
得到全局变量: this.getServletContext().getinitparameter(“参数名字”);
resp.sendRedirect(); 回到一个位置
虚拟路径:浏览器上
物理路径:具体路径