Servlet 第一天
package com.servlet;
import java.io.IOException; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; public class HelloServlet implements Servlet{ public void destroy() {
System.out.println("destroy");
} public ServletConfig getServletConfig() {
System.out.println("getServletConfig");
return null;
} public String getServletInfo() {
System.out.println("getServletInfo");
return null;
} public void init(ServletConfig arg0) throws ServletException {
System.out.println("init");
} public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("service");
} public HelloServlet() {
System.out.println("构造器先调用");
} }
先调用构造器,然后调用init方法,初始化。然后调用service方法。每请求一次调用一次。然后关闭服务器的时候调用destroy
ServletConfig: 封装了 Serlvet 的配置信息, 并且可以获取 ServletContext 对象
1). 配置 Serlvet 的初始化参数
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class>
<!-- 配置 Serlvet 的初始化参数。 且节点必须在 load-on-startup 节点的前面 -->
<init-param>
<!-- 参数名 -->
<param-name>user</param-name>
<!-- 参数值 -->
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>ha</param-name>
<param-value>123456</param-value>
</init-param>
<load-on-startup>-1</load-on-startup>
</servlet>
2). 获取初始化参数:
> getInitParameter(String name): 获取指定参数名的初始化参数
> getInitParameterNames(): 获取参数名组成的 Enumeration 对象.
String user = servletConfig.getInitParameter("user"); //这是参数名
System.out.println("user: " + user);
输出参数值
Enumeration<String> names = servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
System.out.println("name的值---》"+name);
String value = servletConfig.getInitParameter(name);
System.out.println("^^" + value + ": " + value);
}
ServletContext:
1). 可以由 SerlvetConfig 获取:
ServletContext servletContext = servletConfig.getServletContext();
2). 该对象代表当前 WEB 应用: 可以认为 SerlvetContext 是当前 WEB 应用的一个大管家. 可以从中获取到当前 WEB 应用的各个方面的信息.
①. 获取当前 WEB 应用的初始化参数
设置初始化参数: 可以为所有的 Servlet 所获取, 而 Servlet 的初始化参数只用那个 Serlvet 可以获取.
<!-- 配置当前 WEB 应用的初始化参数 -->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
方法:
getInitParameter
getInitParameterNames
代码:
ServletContext servletContext = servletConfig.getServletContext(); String driver = servletContext.getInitParameter("driver");
System.out.println("driver:" + driver); Enumeration<String> names2 = servletContext.getInitParameterNames();
while(names2.hasMoreElements()){
String name = names2.nextElement();
System.out.println("-->" + name);
}
②. 获取当前 WEB 应用的某一个文件在服务器上的绝对路径, 而不是部署前的路径
getRealPath(String path);
String realPath = servletContext.getRealPath("/note.txt");
System.out.println(realPath);
③. 获取当前 WEB 应用的名称:
getContextPath()
String contextPath = servletContext.getContextPath();
System.out.println(contextPath);
④. 获取当前 WEB 应用的某一个文件对应的输入流.
getResourceAsStream(String path): path 的 / 为当前 WEB 应用的根目录.
InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
Servlet 第一天的更多相关文章
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
什么是Serlvet? Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们编写java程序想要在网上实现 ...
- Servlet第一篇(Tomcat)
Tomcat 什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 为什么我们需要用到Tomcat 提供能够 ...
- javaweb回顾第一篇servlet的学习和理解
前言:关于servlet相信学过java的都不会陌生,我最近又把这些基础知识整理一遍,便于自已能更好的理解ssm或者ssh,下面开始 1:Servlet接口 servlet有5个方法下面分别简单的介绍 ...
- servlet实现文件下载
之前没怎么用过这个,这次项目中用到了,于是总结一下: 应该说主要注意三方面: 1.写一个servlet 2.在web.xml中配置这个servlet 3.页面上调用这个servlet 第一: 写 ...
- servlet三种实现方式之一实现servlet接口
servlet有三种实现方式: 1.实现servlet接口 2.继承GenericServlet 3.通过继承HttpServlet开发servlet 第一种示例代码如下(已去掉包名): import ...
- javaWeb学习总结(3)- Servlet基础
Servlet的应用 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web浏览器或其他http客户程序发出请求. 与http服务器上的数据库或应用程 ...
- javaWEB之Servlet
Servlet 1. 什么是Servlet * Servlet是JavaWeb三大组件之一(Servlet.Filter.Listener) * Servlet是用来处理客户端请求的动态资源 * ...
- Javaweb学习笔记——(九)——————Servlet的进入,及ServletConfig、GenericServlet、HttpServlet、ServletContext、获取类路径资源
Servlet1.什么是Servlet? *Servlet是Javaweb三大组件之一(Servlet,Filter,Listener) *Servlet是用来处理客户端请求的动态资源 *Servle ...
- 创建servlet程序知识点详解---servlet-day01
方法调用完后,其中的所有局部变量都会消失 ###网络架构 -CS:Client Server 客户端服务器 特点:每种平台都需要开发相对应的app, 开发成本高 功能升级需要下载最新的客户端,用户 ...
随机推荐
- git subtree模块化代码管理
Git Subtree 的原理 首先,你有两个伟大的项目——我们叫他P1项目.P2项目,还有一个牛逼的要被多个项目共用的项目——我们叫他S项目.我们通过简要讲解使用Subtree来同步代码的过程来解释 ...
- [转载]Java中异常的捕获顺序(多个catch)
http://blog.sina.com.cn/s/blog_6b022bc60101cdbv.html [转载]Java中异常的捕获顺序(多个catch) (2012-11-05 09:47:28) ...
- Dos.ORM(原Hxj.Data)- 目录、介绍
引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与My ...
- MySQL DDL-对库和表的操作
#DDL /* 数据定义语言 库和表的管理 一.库的管理 创建.修改.删除 二.表的管理 创建.修改.删除 创建:create 修改: alter 删除:drop */ 一.库的管理 #1.库的创建 ...
- [LeetCode] 72. Edit Distance(最短编辑距离)
传送门 Description Given two words word1 and word2, find the minimum number of steps required to conver ...
- [LeetCode] 461. Hamming Distance(位操作)
传送门 Description The Hamming distance between two integers is the number of positions at which the co ...
- OSPF多区域配置;骨干区域与非骨干区域;ABR边界路由器;LSA和SPF算法
SPF:链路状态路由算法.基本用于OSPF中,但是要求路由器路由数据库足够大,因为链路状态信息包括很多内容,这也是一个缺点. OSPF是一种内部网关协议(IGP) OSPF路由协议是一种典型的链路状态 ...
- C. DZY Loves Sequences
C. DZY Loves Sequences time limit per test 1 second memory limit per test 256 megabytes input standa ...
- XSS——跨站脚本攻击
跨站点脚本攻击:通过对网页注入恶意脚本,成功地被浏览器执行,来达到攻击的目的. 一.XSS攻击类型与原理1. 反射型XSS攻击非持久性攻击,黑客使用社交性的交互技巧诱导用户点击访问目标服务器的链接,但 ...
- 关于在IE下JavaScript的 Stack overflow at line 错误可能的原因
该错误只在IE中出现,出现该提示的原因主要有两种: 1. 重定义了系统的触发事件名称作为自定义函数名如: onclick / onsubmit … 都是系统保留的事件名称,不允许作为重定义函数名称 ...