day18(javaEE三大组件之一servlet(简介(一)))
Servlet
servlet是小型服务器语言,使用它可以处理前台传递来的信息,servlet进行处理后在响应给前台,其中servlet起到了关键性的作用。前端输入的信息可以持久化的存储在数据库中,并且可以进行信息的校验。
配置文件
一般servlet的配置信息是在web.xml中,在项目加载时会加载web.xml文件,这是web.xml的servlet会加载到我们项目中去。那么我们应该怎么去配置呢。在web.xml文件中会有<servlet>标签和<servlet-mapping>标签,其中<servlet>标签是帮助我们找到servlet对应的实类,而<servlet-mapping>则是通过访问的url来映射到我们servlet的实类中去。位置在:<web-app>标签里面一般书写格式是:
<!--servlet的实类标签-->
<servlet>
<servlet-name>name</servlet-name>
<servlet-class>类的全路径</servlet-class>
</servlet>
<!--servlet的映射标签-->
<servlet-mapping>.
<!--寻找对应的servlet的实类标签-->
<servlet-name>name</servlet-name>
<!--通过访问到url来进行关联-->
<url-pattern>url</url-pattern>
</servlet-mapping>
生命周期
初始化>>>>运行>>>>销毁
init>>>>>service>>>>destory
初始化:是指servlet的第一次调用则是给servlet初始化的过程,这个动作是服务器完成的。
它的调用有两种方式:
第一种:服务器启动时让servlet初始化(需要手动配置)
<!--设置其其级别可以是2,3,4,5等 数字越小级别越高-->
<load-on-startup>2</load-on-startup>
第二种: 是这个servlet类别调用时则会执行初始化方法,整个过程不要我们配置。
运行:
表示服务器进行一系列的操作。即提供的服务。最终都是执行doGet()或doPost(),具体是由请求的方式决定。
销毁 :
一般是服务器关闭时会销毁servlet
创建的方式(两种)
1.实现servlet接口
public class Demo01 implements Servlet {
@Override
public void destroy() {
// 销毁
}
@Override
public ServletConfig getServletConfig() {
// 获取servletConfig对象
return null;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
// 初始化
}
@Override
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
//服务 服务底层还是调用的doGet或doPost方法
}
}
2.继承GenericServlet类或者他的子类
public class Demo1 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 直接使用服务 不需要考虑服务器的初始化和销毁
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);//简化代码 为了都跳转到doGet方法中
}
}
重要方法
ServletConfig getservletConfig 获取它的servlet配置信息
1.获取初始化参数
<servlet>
<servlet-name>Demo05</servlet-name>
<servlet-class>servlet.Demo05</servlet-class>
<init-param>
<!--设置初始化参数-->
<param-name>name</param-name>
<param-value>zhangsan</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Demo05</servlet-name>
<url-pattern>/Demo05</url-pattern>
</servlet-mapping>
ServletConfig servletConfig = this.getServletConfig();
String initParameter2 = servletConfig.getInitParameter("name");
System.out.println(initParameter2);
2.获取ServletContext对象
ServletContext servletContext2 = servletConfig.getServletContext();
3.获取servlet的名字
String servletName = servletConfig.getServletName();
System.out.println(servletName);// 即 表示该servlet在xml中的实类对应的名字。
<servlet>
<servlet-name>E</servlet-name>
<servlet-class>servlet.Demo05</servlet-class>
</servlet>
则打印结果为E
ServletContext getservletContext 获取上下文信息
1.获取文件类型
ServletContext servletContext = this.getServletContext();
//判断文件的类型
String type = servletContext.getMimeType("a.txt");
System.out.println(type);
2.获取项目路径
ServletContext servletContext = this.getServletContext();
//getContextPath()获取项目路径
String path = servletContext.getContextPath();
System.out.println(path);
3.获取全局化参数配置
配置全局化参数
<context-param>
<param-name>user</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>root</param-value>
</context-param>
测试 查询
ServletContext servletContext = this.getServletContext();
Enumeration<String> enumeration = servletContext.getInitParameterNames();
while(enumeration.hasMoreElements()){
String name = enumeration.nextElement();
String value = servletContext.getInitParameter(name);
System.out.println(name+" "+value);
}
day18(javaEE三大组件之一servlet(简介(一)))的更多相关文章
- (day20)javaEE三大组件之一Servlet (简介(二)servletconfig,servletContext,session,cookie,request,response,out)
javaEE是服务器编程,javaEE提供了服务器的接口让具体的服务器去创建实现的对象 JavaEE是sun公司为了解决企业级开发定义的一套技术,只提供了规范,具体的实现是由服务器完成的 servle ...
- SpringBoot 注册Servlet三大组件【Servlet、Filter、Listener】-原生代码+@Bean+效果展示
由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件,class MyServlet()/clas ...
- JavaWeb三大组件(Servlet、Filter、Listener)
JavaWeb三大组件指的是:Servlet.Filter.Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet.Filter,比 ...
- 0017SpringBoot注册Servlet三大组件(Servlet、Filter、Listener)
由于SpringBoot默认是以jar包的形式启动嵌入式servlet容器来启动SpringBoot的web应用,所以没有web.xml文件,那么如何配置Servlet.Filter.Listener ...
- JavaWeb三大组件之Servlet
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/Servlet.html 一.Servlet继承结构体系图 从结构图中 ...
- Javaweb三大组件之一 servlet
1.servlet基本使用 注意:单例:init只会执行一次 线程不安全 1.1 创建方式 (1)实现servlet接口[不使用] package cn.getword.servlet; imp ...
- 大白话Web三大组件之一Servlet
很多学习到Servlet这里的童鞋,听到那么多专业名词解释这个Servlet,相信都是很蒙圈的,在这里我先不跟大家扯Servlet的大概念,先跟大家探讨一下关于Servlet的作用 相信MVC这个概念 ...
- java web(五):java web三大组件之另外两个和八大监听器
java的三大组件指Servlet.Filter.Listener.八大监听器指八个接口.前面介绍了Servlet,现在介绍一下Filter拦截器以及拦截地址的设置, Listener监听那些事件. ...
- JavaEE--JavaWeb三大组件Servlet、Filter、Listener
Servlet.Filter.Listener是JavaEE Web服务规定的服务器动态组件,由开发者编写由Web容器创建,并保证单例以及线程安全性,其中加载顺序为Linstener -> Fl ...
随机推荐
- hdu 2119(简单二分图) Matrix
http://acm.hdu.edu.cn/showproblem.php?pid=2119 一个由0和1构成的矩阵,每次选取一行或者一列将其中的1变成0,求最小删除次数 简单的二分图应用,矩阵的横坐 ...
- __PRETTY_FUNCTION__, __FUNCTION__, __func__
__PRETTY_FUNCTION__, __FUNCTION__, __func__这三者的区别是什么? http://stackoverflow.com/questions/4384765/wha ...
- javascript 高级程序设计 十
理解JS对象(2)创建对象 JS中创建对象的方式有很多,我们把他们统称为模式. 工厂模式: 优点:解决了创建多个相似对象的问题. 缺点:没有解决对象识别问题.(不知道一个实例对象的类型) func ...
- JoyOI1035 棋盘覆盖
原题链接 对棋盘染色,坐标和为奇数的染黑,偶数为白.这时会发现对于相同颜色的格子,是无法放置骨牌的,这样我们就将所有格子分成两类,然后根据能否放置骨牌连边,最后就是求二分图最大匹配了. 这里我是用的匈 ...
- 安装php_sqlsrv扩展
https://www.cnblogs.com/wtcl/p/7727636.html
- SSRF-php初探
0x00 前言 1) SSRF的概念很好理解,请自行百度. 2) JAVA/PHP/PYTHON都存在SSRF漏洞(至于其他语言的情况,了解粗浅尚不得知). 3) SSRF的利用方式 ...
- 关键词提取_textbank
脱离语料库,仅对单篇文档提取 (1) pageRank算法:有向无权,平均分配贡献度 基本思路: 链接数量:一个网页越被其他的网页链接,说明这个网页越重要 链接质量:一个网页被一个越高权值的网页链接, ...
- windows server 2008 - 隐藏磁盘分区 (2)
二 创建策略并设置给指定用户 1 打开“组策略管理”(在这里创建策略) cmd下输入GPMC.MSC 打开组策略管理 随后在域上右键选择“在这个域中创建GPO并在此处链接”,输入名字“磁盘管理策略 ...
- 回文日期(NOIP2016)
题目:回文日期 这题虽然说不难,但是也不能算水了. 我先讲讲思路.60分的算法很好写,就是判断一下是不是回文串,分离每个数位,判断即可. 但我们的目标是满分,所以我来讲讲满分算法. 首先,给的是区间, ...
- C语言实现用位移运算符进行加减乘…
最近,在百度知道上回答问题,然后看见有的人问如何用位移运算符去进行加减乘除运算,于是巩固今天就在这总结一下. 先讲讲总体思路: 加法运算:将一个整数用二进制表示,其加法运算就是:相异(^)时, ...